Seite 1 von 1
ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 13.01.2015 17:10
von IronEagle
Hallo Leute,
kennt jemand eine Möglichkeit, Einträge in einem ListIconGadget mehrzeilig zu erstellen?
Oder ist es nur möglich, wenn ich ein eigenes Gadget bastel um dieses zu verwirklichen ?
Viele Grüße, Robert
Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 13.01.2015 17:40
von NicTheQuick
Offensichtlich geht das nur ab der 2. Spalte:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 500, 300, "ListIcon Multiline", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 5, 5, 490, 290, "Name", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Info", 150)
AddGadgetColumn(0, 2, "Sonstiges", 100)
AddGadgetItem(0, -1, "Eintrag 1")
AddGadgetItem(0, -1, "Eintrag 2")
SetGadgetItemText(0, 1, "1. Zeile" + #LF$ + "2. Zeile", 1)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf

Wahrscheinlich geht mit API noch mehr.
Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 13.01.2015 18:07
von RSBasic
@NicTheQuick
Das geht bei Linux? Nicht schlecht, bei Windows ist es so ohne WinAPI nicht möglich.
Mit WinAPI:
http://www.rsbasic.de/aktualisierung/wi ... C3%A4ge.pb
Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 13.01.2015 18:29
von NicTheQuick
Geht das bei Windows nicht?

Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 13.01.2015 22:15
von Shardik
NicTheQuick hat geschrieben:Geht das bei Windows nicht?

Nein, denn Du hast einen Fehler in der Linux-Version von PB entdeckt...
(Mit der PB-Version für MacOS X funktioniert Dein Beispiel übrigens auch nicht...

)
Einen Fehler in der Linux-Version hast Du entdeckt, weil Chr(10) (=#LF$) eigentlich als Trennzeichen verwendet wird, um mit AddGadgetItem() und SetGadgetItemText() die Texte in mehrere aufeinander folgende Spalten in einer Zeile gleichzeitig eintragen zu können:
PB-Hilfe zu AddGadgetItem() hat geschrieben:Text$
Der Text für den neuen Eintrag.
Beim Hinzufügen eines Eintrags zu einem ListIconGadget() kann dieser Parameter den Text für mehrere Spalten enthalten - jeweils getrennt von einem Chr(10) Zeichen.
In der PB-Hilfe für Windows ist diese Eigenschaft übrigens auch für SetGadgetItemText() erwähnt.
Aber es wird noch interessanter: tausche unter Linux einmal bei SetGadgetItemText() die Spalte 1 gegen 0 aus!
Dann (und nur dann) funktioniert #LF$ als Trennzeichen, um "1.Zeile" und "2.Zeile" in die Spalten 0 und 1 zu schreiben! Wenn Du aber #CR$ statt #LF$ benutzt, funktioniert in Linux wieder die Auftrennung in zwei Zeilen auch für Spalte 0!
Ein genereller Fehler bei SetGadgetItemText() unter Linux, MacOS und Windows besteht darin, dass #LF$ als Trennzeichen nur funktioniert, wenn Spalte 0 verwendet wird!
Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 14.01.2015 01:43
von NicTheQuick
Also ich finde es gut, wenn man es mehrzeilig machen kann. Damals in Version 3.x oder tiefer, als ich noch Windows aktiv nutzte, wusste ich, dass man es nicht mehrzeilig machen kann. Aber ich sehe es als einen Fortschritt, wenn das geht.
Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 14.01.2015 09:37
von IronEagle
Ihr seid einfach die Besten !!!
Danke, Danke, Danke

Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 14.01.2015 11:56
von IronEagle
Mir ist jetzt doch noch etwas aufgefallen was ich nicht ganz verstehe.
Wenn ich das Beispiel von RSBasic nehme und nur zusätzlich den Image-Parameter verwende. Funktioniert der Code nicht mehr.
Ich bin schon alles durchgegangen und komme einfach nicht dahinter warum dieser mit einem Image nicht mehr läuft.
Habt Ihr vlt. eine Idee ?
Hier mal der Testcode.
Das Image ist findet ihr hier.
http://metaebene.me/wp-content/uploads/ ... -16x16.png
Code: Alles auswählen
;Autor: RASHAD
EnableExplicit
Define EventID
Define x
Define Texth
Define imageList
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ListIconGadget(1,10,10,WindowWidth(0),WindowHeight(0),"Spalte",250,#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines)
AddGadgetColumn(1,1,"Spalte 2",200)
Texth = SendMessage_(GadgetID(1), #LVM_GETITEMSPACING, 1, 0) >> 16 - 4
imageList = ImageList_Create_(1, 5*Texth, #ILC_COLOR32 | #ILC_MASK, 0, 0) ;for 5 lines
SendMessage_(GadgetID(1), #LVM_SETIMAGELIST, #LVSIL_SMALL, imageList)
UsePNGImageDecoder()
For x=1 To 4
AddGadgetItem(1,-1, "This is a wordwrap text demonstration in a ListIcon Gadget " + Chr(13) + "This is a separate line" + Chr(10) + "Line 1" + Chr(13) + "Line 2" + Chr(13) + "Line 3" + Chr(13) + "Line 4" + Chr(13), ImageID(LoadImage(#PB_Any, "home.png")))
Next
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: ListIconGadget - Eintrag mehrzeilig ?
Verfasst: 15.01.2015 22:57
von Vera
IronEagle hat geschrieben:Habt Ihr vlt. eine Idee ?
Idee - ja.
Kommentier doch mal die beiden unteren WinApi Zeilen aus, da diese doch mit einer 'imageList' zu tun haben und vermutlich Bilder in die 5 Zeilen setzen. Damit wären diese Plätze aber besetzt und akzeptieren dann keine neuen Icons mehr.
Versuch macht Kluch

~ Gruß Vera