String Gadget

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Quaxi
Beiträge: 66
Registriert: 11.09.2004 12:42

String Gadget

Beitrag 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
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag 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.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Quaxi
Beiträge: 66
Registriert: 11.09.2004 12:42

Beitrag 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.
Christian
Beiträge: 73
Registriert: 31.08.2004 16:02

Beitrag 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
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

DarkDragon hat geschrieben:Und wo funktioniert da was nicht?
So klappt es unter xp, ist aber völlig falsch!
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag 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.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Quaxi
Beiträge: 66
Registriert: 11.09.2004 12:42

Beitrag 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.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten