Seite 1 von 2
String Gadget
Verfasst: 26.11.2004 22:11
von Quaxi
Hallo.
Also folgendes: Bei VB konnte ich bei den Multiline Textfeldern Scrollbalken hinzufügen usw., nur leider gibts bei PB anscheinend dafür keine Funktion oder FLAG, oder hab ich da was übersehen?
vielen dank im voraus
Verfasst: 26.11.2004 22:31
von Danilo
Auf Windows gibt es dafür spezielle WinAPI-Flags:
Textbox.pb,
MultilineStringGadget.pb,
StringGadget_Multiline.pb
Auf Amiga und Linux mußt Du mal selbst die entspr. Flags
raussuchen, falls vorhanden.
Verfasst: 27.11.2004 13:56
von Quaxi
OK, danke erstmal.
Allerdings will ich das mit der Liste automatisch mitgescrollt wird wenn dort ein Eintrag hinzugefügt. Ich denke dafür ist doch sicher der #ES_AUTOVSCROLL | zuständig aber trozdem funkionier es bei mir nicht.
Verfasst: 27.11.2004 14:14
von Christian
Hi,
ich weiß nicht, ob es für deine zwecke geeignet ist, aber benutze doch einfach das EditorGadget. Dort werden die Scrollbalken automatisch hinzugefügt. Wie es mit dem mitscrollen aussieht, weiß ich allerdings nicht ...
Gruß
Christian
Verfasst: 27.11.2004 15:21
von DarkDragon
Code: Alles auswählen
#WindowWidth = 640
#WindowHeight = 480
#WindowFlags = #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SystemMenu
hWnd = OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #WindowFlags, "")
CreateGadgetList(WindowID())
StringGadget(0, 0, 0, WindowWidth(), WindowHeight(), "", #PB_String_MultiLine | #WS_VSCROLL | #WS_HSCROLL | #ES_AUTOVSCROLL | #ES_AUTOHSCROLL)
For k=0 To 50
SetGadgetText(0, GetGadgetText(0)+Chr(13)+Chr(10))
Next
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End
Und wo funktioniert da was nicht?
Verfasst: 27.11.2004 15:43
von GPI
DarkDragon hat geschrieben:Und wo funktioniert da was nicht?
So klappt es unter xp, ist aber völlig falsch!
Verfasst: 27.11.2004 15:54
von DarkDragon
GPI hat geschrieben:DarkDragon hat geschrieben:Und wo funktioniert da was nicht?
So klappt es unter xp, ist aber völlig falsch!
Ne Begründung wär jetzt optimal.
Verfasst: 27.11.2004 16:39
von GPI
DarkDragon hat geschrieben:Ne Begründung wär jetzt optimal.
Weil es bsw. so nicht mit Win9x funktioniert (2000 & NT keine Ahnung).
Es gibt eine alternativ, benutz mal den Such-knopf oben.
UND LÖSCH BITTE DAS BEISPIEL OBEN AUS DEINER SAMMLUNG. Es ist ein sehr schlechter Programmierstiel.
Verfasst: 27.11.2004 18:43
von Quaxi
Nun danke erstmals für die ganzen Antworten, aber es funzt trozdem noch nicht richitg:
So deklariere ich das String-Gadget:
StringGadget(#txt_protokoll, 170, 20, 380, 325, "", #PB_String_ReadOnly | #PB_String_MultiLine | #WS_VSCROLL | #ES_AUTOVSCROLL )
Und mit folgendem Code schreibe ich eine neue Zeile hinein:
Code: Alles auswählen
Procedure myProc_AddLineToProtocoll(str_LineToAdd.s) ;Funktion die einen Eintrag in die Protokoll Liste durchführt
SetGadgetText(#txt_protokoll, GetGadgetText(#txt_protokoll) + Chr(13) + Chr(10)+ "--> " + str_LineToAdd)
EndProcedure
Nachdem diesese Procedur aufgerufen wurde und die Zeile hinzugefügt wurde scrollt das String Gadgte allerdings nicht mit.
Verfasst: 27.11.2004 18:46
von DarkDragon
GPI hat geschrieben:UND LÖSCH BITTE DAS BEISPIEL OBEN AUS DEINER SAMMLUNG. Es ist ein sehr schlechter Programmierstiel.
Warum soll das ein schlechter Programmierstiel sein? So ist alles bei mir aufgebaut.