Seite 1 von 1
Problem mit #LF$ und ListiconGadget
Verfasst: 23.09.2015 08:52
von ProgOldie
Ich habe in einem 2000-Zeilen Programm u.a. in einem Formular mehrere Gadgets, darunter ein Editorgadget. Die Inhalte aller Gadgets des Formulars lasse ich der Übersichtlichkeit wegen in ein ListiconGadget übertragen. Dazu hänge ich bei der Übertragung an den Inhalt jedes Gadgets ein #LF$ an, so dass ich mit SetgadgetitemText() eine komplette Zeile ins ListiconGadget übertragen kann.
Dabei gibt es ein Problem: Enthält nämlich das Editorgadget selbst ein oder mehrere #LF$, verschieben sich deswegen natürlich die Spalteninhalte unerwünschterweise um die entsprechende Zahl von Spalten nach rechts.
Wie kann man diesen Effekt umgehen? (Die Zeilenumbrüche selbst muss ich im Editorgadget beibehalten)
Re: Problem mit #LF$ und ListiconGadget
Verfasst: 23.09.2015 09:24
von Kiffi
entferne vor dem Einfügen in das ListIconGadget alle #LF$ (oder ersetze sie durch ein beliebiges anderes Zeichen).
Grüße ... Peter
Re: Problem mit #LF$ und ListiconGadget
Verfasst: 23.09.2015 15:52
von xXRobo_CubeXx
Da musst du die #LF$ durch Leerzeichen oder anderes Zeichen ersetzen dann hast du keine Spaltenausbrecher.

Re: Problem mit #LF$ und ListiconGadget
Verfasst: 23.09.2015 16:23
von ProgOldie
Danke für die Lösungsvorschläge, die so funktionieren. Allerdings verändert man dadurch den jeweilgen Wert, was für mich wegen einer Datenbankanbindung unschön ist.
Ich habe inzwischen eine einfachere Lösung gefunden, indem ich nicht die ganze Zeile des Listicongadgets auf einmal übertrage, sondern jede einzelne Zelle für sich.
Code: Alles auswählen
EnableExplicit
OpenWindow(0, 0, 0, 640, 300, "ListIconGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 10, 25, 400, 90, "Spalte 0", 100)
AddGadgetColumn(0,1,"Spalte 1",90)
AddGadgetColumn(0,2,"Spalte 2",90)
AddGadgetColumn(0,3,"Spalte 3",90)
AddGadgetItem(0,-1,"Inhalt Sp0")
AddGadgetItem(0,-1,"Inhalt Sp0")
SetGadgetItemText(0,1, "a "+#LF$+"b"+#LF$,1) ;#LF$ hier nicht sichtbar
SetGadgetItemText(0,1, "c",2)
EditorGadget(1,100,150,100,50)
SetGadgetText(1,GetGadgetItemText(0,1,1)) ;Text aus der LIcGadget-Zelle übernehmen
; jetzt wird #LF$ berücksichtigt
;auch das Umgekehrte klappt
; SetGadgetText(1, "c "+#LF$+"d"+#LF$) ; etwas ins Editorgadget mit #LF$
; SetGadgetItemText(0,1,GetGadgetText(1),1) ; und ins LIconGadget übernehmen
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow