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)
Problem mit #LF$ und ListiconGadget
- ProgOldie
- Beiträge: 236
- Registriert: 19.05.2012 17:09
- Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02
Problem mit #LF$ und ListiconGadget
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Re: Problem mit #LF$ und ListiconGadget
entferne vor dem Einfügen in das ListIconGadget alle #LF$ (oder ersetze sie durch ein beliebiges anderes Zeichen).
Grüße ... Peter
Grüße ... Peter
a²+b²=mc²
- xXRobo_CubeXx
- Beiträge: 120
- Registriert: 12.06.2015 16:08
- Computerausstattung: Version 5.41 LTS
- Wohnort: Wohnort
- Kontaktdaten:
Re: Problem mit #LF$ und ListiconGadget
Da musst du die #LF$ durch Leerzeichen oder anderes Zeichen ersetzen dann hast du keine Spaltenausbrecher. 

Version 5.41 LTS 

- ProgOldie
- Beiträge: 236
- Registriert: 19.05.2012 17:09
- Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02
Re: Problem mit #LF$ und ListiconGadget
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.
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
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18