Hallo Leute,
ist es möglich ein Textgadget mit variabler Länge zu erzeugen?
Man stelle sich eine Ausgabe in der Form "Zählerstand: 123" vor.
Die Zahl hinter "Zählerstand:" kann z. B. von 0 - 10 Dezimalstellen lang sein und hat eine andere Vorder-/Hintergrundfarbe als der Text "Zählerstand:".
Es soll dann mit SetGadgetText(#Gadget, StrU(Zaehlerstand.i)) der Zählerstand aktualisiert werden.
Dabei soll das Ausgabefeld nicht breiter sein als der für die jeweilige Stellenzahl benötigte Platz!
Oder anders herum gefragt: Kann man "TextGadget(#Gadget,...) bei immer gleicher Nummer (#Gadget) beliebig oft aufrufen ohne das dabei mit der Zeit irgendetwas "überläuft" bzw. ist es notwendig es vorher mit "FreeGadget(#Gadget)" immer erst zu löschen?
Gruß
Daffy
Textgadget mit variabler Breite
Textgadget mit variabler Breite
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Textgadget mit variabler Breite
Warum willst du ein neues Gadget mit der gleichen ID erstellen?
Dafür gibt's ResizeGadget()
Dafür gibt's ResizeGadget()
Re: Textgadget mit variabler Breite
Zu deiner Frage:
Allerdings, wie TomS schon sagte, ResizeGadget würde für dein Beispiel vollkommen ausreichen.
lg kevin
Wenn du für die ID #PB_Any benutzt, dann musst du vorher FreeGadget benutzen, mit festen IDs wird beim Erstellen neuer Gadgets, das alte Gadget mit der gleichen ID freigegeben. Es existieren also nicht mehrere Gadgets mit der gleichen ID.Daffy0815 hat geschrieben:Oder anders herum gefragt: Kann man "TextGadget(#Gadget,...) bei immer gleicher Nummer (#Gadget) beliebig oft aufrufen ohne das dabei mit der Zeit irgendetwas "überläuft" bzw. ist es notwendig es vorher mit "FreeGadget(#Gadget)" immer erst zu löschen?
Allerdings, wie TomS schon sagte, ResizeGadget würde für dein Beispiel vollkommen ausreichen.
lg kevin

http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Re: Textgadget mit variabler Breite
Vielen Dank für die Antworten!
Das mit dem ResizeGadget kannte ich noch nicht.
Wobei hier noch Anzumerken ist, dass es nur dann funktioniert wenn die TextGadget-Funktion nicht mit einem Leerstring aufgerufen wurde.
Falls doch, erscheint nach ResizeGadget als Ausgabe "_" (Soviele Unterlängen wie es die neue Breite zulässt).
Auch das mit dem Aufruf der Funktionen mit der gleichen Gadgetnummer war etwas was ich schon lange wissen wollte.
Gruß
Daffy
Das mit dem ResizeGadget kannte ich noch nicht.
Wobei hier noch Anzumerken ist, dass es nur dann funktioniert wenn die TextGadget-Funktion nicht mit einem Leerstring aufgerufen wurde.
Falls doch, erscheint nach ResizeGadget als Ausgabe "_" (Soviele Unterlängen wie es die neue Breite zulässt).
Auch das mit dem Aufruf der Funktionen mit der gleichen Gadgetnummer war etwas was ich schon lange wissen wollte.
Gruß
Daffy
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Textgadget mit variabler Breite
Kann ich nicht nachvollziehen.Daffy0815 hat geschrieben:... nur dann funktioniert wenn die TextGadget-Funktion nicht mit einem Leerstring aufgerufen wurde.
Falls doch, erscheint nach ResizeGadget als Ausgabe "_" (Soviele Unterlängen wie es die neue Breite zulässt).
Hast bitte mal einen Beispielcode, der das Verhalten zeigt?
Code: Alles auswählen
hWnd = OpenWindow(#PB_Any, 0, 0, 800, 600, "Fenster", #PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget)
TextGadget(0, 5, 5, 100, 20, "Hallo Welt", #PB_Text_Border)
Repeat
event = WaitWindowEvent(20)
If event = #PB_Event_SizeWindow
ResizeGadget(0, 5,5, WindowWidth(hWnd)-10, WindowHeight(hWnd)-10)
EndIf
Until event = #PB_Event_CloseWindow
End