4.1 Beta - editorGadget/auto.Umbruch - mein Fehler oder Bug?

Fragen und Bugreports zur PureBasic 4.0-Beta.
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

4.1 Beta - editorGadget/auto.Umbruch - mein Fehler oder Bug?

Beitrag von Toshy »

Hi.
Habe länger nichts mit PB gemacht und auch sonst mit Gadgets nicht so viel erstellt.
ich wollte nun ein Editfeld erstellen (später disabled und mit scrollbalken) welches aber einen automatischen Zeilenumbruch haben und ich bekam es nicht hin, trotz Vorlage.
Nun habe ich bemerkt, das die Vorlage mit "gadgetid()" funktioniert (nutze ich nicht), aber die mit PBany nicht (pureform).
Wie kommt das?
Unter Nutzung von #pbany gibt es keinen automatischen Zeilenumbruch.

Code: Alles auswählen

If OpenWindow(0,0,0,500,500,"",#PB_Window_SystemMenu)
  If CreateGadgetList(WindowID(0))
    test = EditorGadget(#PB_Any,10,10,480,480,0)
  EndIf
  SendMessage_(test,#EM_SETTARGETDEVICE,#Null,#False)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf 

If OpenWindow(0,0,0,500,500,"",#PB_Window_SystemMenu)
  If CreateGadgetList(WindowID(0))
    EditorGadget(1,10,10,480,480,0)
  EndIf
  SendMessage_(GadgetID(1),#EM_SETTARGETDEVICE,#Null,#False)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf 
Ach ja, in der Vorlage sieht man wie man den Umbruch aktiviert, aber gibt es auch eine Message mit der man das wärend der Laufzeit wieder deaktivieren kann?
Gruß
Toshy
Zuletzt geändert von Toshy am 20.10.2007 17:48, insgesamt 1-mal geändert.
1. Win10
PB6.1
PMTheQuick
Beiträge: 630
Registriert: 05.05.2005 19:06

Beitrag von PMTheQuick »

Zuerst mal das aktivieren... <) Du hast einen ganz einfachen Fehler gemacht... Du speicherst die ID des Gadgets ja in test. Bei SendMessage() musst du allerdings dann GadgetID(test) und nicht nur test angeben :wink: Achja, verwende doch bitte Code-Tags für PB-Codes :D

Code: Alles auswählen

If OpenWindow(0,0,0,500,500,"",#PB_Window_SystemMenu)
  If CreateGadgetList(WindowID(0))
    test = EditorGadget(#PB_Any,10,10,480,480,0)
  EndIf
  SendMessage_(GadgetID(test),#EM_SETTARGETDEVICE,#Null,#False)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

If OpenWindow(0,0,0,500,500,"",#PB_Window_SystemMenu)
  If CreateGadgetList(WindowID(0))
    EditorGadget(1,10,10,480,480,0)
  EndIf
  SendMessage_(GadgetID(1),#EM_SETTARGETDEVICE,#Null,#False)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf 
Jetzt noch das deaktivieren. Dazu musst du beim letzten Parameter bei SendMessage_() einfach #True angeben. Hier ein kleiner Beispiel-Code:

Code: Alles auswählen

If OpenWindow(0,0,0,500,500,"",#PB_Window_SystemMenu)
  If CreateGadgetList(WindowID(0))
    test = EditorGadget(#PB_Any,10,10,480,480,0)
  EndIf
  SendMessage_(GadgetID(test),#EM_SETTARGETDEVICE,#Null,#False) ; Aktivieren
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  SendMessage_(GadgetID(test),#EM_SETTARGETDEVICE,#Null,#True) ; Deaktivieren
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Beim Deaktivier-Example is es so: Zuerst wird es aktiviert. Nach einem Klick auf's X (beim Fenster) wirds deaktiviert. Und nochmal ein Klick auf X beendets :) (Um es genau zu sehen, erzeuge am besten einen langen String, dann gibets einen Zeilenumbruch... Und dann klicke aufs X, et voila ist der Zeilenumbruch weg :) )

Gruss
PMTheQuick 8)
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Achso. Danke dir.
Da ich mit Oberflächenerstellung bisher wenig zu tun hatte, habe ich nicht daran gedacht / gewußt, das PB hier auch wieder eigene "handles" (IDs) nutzt. Ok. Dann weiß ich bescheid.

Aber sag mal, gibt es eine Möglichkeit die(ses) Flag(s) beim erstellen des Fensters mitanzugeben. Mit einene geht das ja, aber mit diesem hatte das bei mir nicht geklappt (werde da wohl einfach auch einen kleinen Fehler gemacht haben)
1. Win10
PB6.1
Gesperrt