Seite 1 von 1

"ListiconGadget" mit größerer Zeilenhöhe

Verfasst: 06.02.2007 19:05
von a14xerus
Hallo, Ich möcte gerne ein Gadget haben / erstellen, welches wie das ListiconGadget befüllt werden kann, aber eine größere Zeilenhöhe hat.
Gibt es sowas?

Verfasst: 08.02.2007 10:09
von Shardik
Normalerweise ändert man die Zeilenhöhe in einem ListIconGadget über den ausgewählten Font. Ein Beispiel für eine nachträgliche Änderung der Font-Größe nach Abfrage mit einem Font-Requester hat Fluid Byte veröffentlicht:
http://www.purebasic.fr/german/viewtopi ... 43&start=2

Übrigens gab es einen Thread zu diesem Thema schon früher:
http://www.purebasic.fr/german/viewtopic.php?t=7662

Die Suchfunktion ist Dein Freund... :wink:

Verfasst: 08.02.2007 11:14
von Mr.X
Ich denke der Pirat möchte nur die Zeilenhöhe in seinem ListiconGadget ändern und den Font beibehalten.

Verfasst: 08.02.2007 13:36
von Shardik
Mr.X hat geschrieben: Ich denke der Pirat möchte nur die Zeilenhöhe in seinem ListiconGadget ändern und den Font beibehalten.
Das hatte ich schon befürchtet. Aber auch hier hätte die Suche im englischen Forum eine Lösung von srod gefunden:
http://www.purebasic.fr/english/viewtopic.php?t=17237

Da es mich aber auch selbst interessiert, habe ich daraus einen Beispiel-Code gebastelt:

Code: Alles auswählen

If OpenWindow(0, 100, 100, 364, 135, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    ListIconGadget(0, 5, 5, 354, 90, "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(0, 1, "Address", 250)
    AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
    AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
    ButtonGadget(1, 135, 105, 100, 20, "Zeilenhöhe ändern")

    Repeat
      WindowEventID = WaitWindowEvent()

      If WindowEventID = #PB_Event_Gadget
        If EventGadget() = 1
          RowHeight = 18
          ImageHandle = ImageList_Create_(0, RowHeight, #ILC_COLORDDB, 0, 0) 
          SendMessage_(GadgetID(0), #LVM_SETIMAGELIST, #LVSIL_SMALL, ImageHandle)
          DisableGadget(1, #True)
        EndIf
      EndIf
    Until WindowEventID = #PB_Event_CloseWindow
  EndIf
EndIf

Verfasst: 08.02.2007 17:54
von a14xerus
Shardik hat geschrieben:

Code: Alles auswählen

If OpenWindow(0, 100, 100, 364, 135, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    ListIconGadget(0, 5, 5, 354, 90, "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
;.........
Das sieht schon ganz gut aus.
Danke

Verfasst: 31.03.2007 02:11
von Xaby
Wie geht das ganze auch mit ICONs?

Sobald ich die Höhe auf diese Weise ändere, habe ich keine kleinen Icons mehr an der linken Seite. ( FALGs mit ImageID() )

Richtig cool wäre natürlich, wenn man mit ein zwei Kniffen die Zeilen auf 32 oder sogar unbegrenzt hochpuschen kann und die Bilder am Anfang auch 32 x 32 oder sogar jede Größe annehmen könnten.

Der Hammer wäre auch, wenn man die Bilder wo anders als nur am ersten Rand setzten kann.

Vielleicht mit einem ähnlichen Seperator wie beim Text.

Oder wenigstens an erste Position mehr als nur ein 16 x 16 Bildchen.

Dann könnte man zum Beispiel rote, grüne, gelbe Kreise malen und wenn irgendwas mit dem Eintrag ist, dann die Farben nebeneinander setzen,
fals zum Beispiel alles zutrifft.

Oder Sternchen-Bewertung. Und 5 Sterne nebeneinander oder halt nur eins.
Zurzeit ist es ja so ein bisschen langweilig /:->


Aber ich bin da nicht so der CallBack-Freak oder der WinAPI-Junkie ...

Ich befürchte aber fast, es ist nicht möglich ... :cry:


Trotzdem Dank an euch, habt es wenigstens gelesen :roll:

Verfasst: 31.03.2007 02:25
von ts-soft
>> Ich befürchte aber fast, es ist nicht möglich ... :cry:
brauchste nicht fürchten, Beispiele findest im engl. Forum, evtl. auch hier

Ohne Callbacks geht da natürlich nicht viel :wink:

Suchen mußte selber, wollte Dir nur mitteilen, ich hab es tatsächlich gelesen :mrgreen:

Verfasst: 31.03.2007 02:45
von Xaby
Achja, das englische Forum ...

wieso gibt es eigentlich so viele Foren und wieso sind die meisten guten nur im englischen Forum unterwegs?

Wir müssten so einen Google-Zwischenübersetzer einbauen und immer, wenn es was gutes im englischen Forum gibt, wird es automatisch auf deutsch hier gepostet ... :o

Verfasst: 31.03.2007 14:51
von ts-soft
>> und wieso sind die meisten guten nur im englischen Forum unterwegs?
Nur die schlechten können kein englisch :lol: