Seite 2 von 6

Re: Richedit-eigenschaften

Verfasst: 20.10.2014 20:03
von stevie1401
Wow, sieht interessant aus.
Ich brauche allerdings tatsächlich eine Lösung, die auf allen Plattformen läuft.
Nur deshalb benutze ich Purebasic :-)

Ich versuche das Projekt http://www.doko-lounge.de, welches ich in GFA-Basic und Freebasic programmiert habe, nun auf alle 3 Plattformen zu bekommen, ohne dass man WINE oder WINEBOTTLER benutzen muss.

Re: Richedit-eigenschaften

Verfasst: 20.10.2014 20:47
von Kiffi
der Vollständigkeit halber hier die ListIconGadget-Variante:

Vorteile: Einfach & Crossplattform

Nachteile: Der Header kann nicht entfernt werden und die Einträge werden nur einzeilig dargestellt.

Code: Alles auswählen

EnableExplicit

#Window = 0 
#ListIconGadget = 0

Procedure AddItem(Item.s, Color)
	AddGadgetItem(#ListIconGadget, -1, Item) ; Hinzufügen
	SetGadgetItemColor(#ListIconGadget, CountGadgetItems(#ListIconGadget) - 1, #PB_Gadget_FrontColor, Color) ; Einfärben
	SetGadgetState(#ListIconGadget, CountGadgetItems(#ListIconGadget) - 1) ; Selektieren
EndProcedure

OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 400, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

ListIconGadget(#ListIconGadget, 5, 5, 290, 390, "Chat", 260, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection )

Define Counter

For Counter = 0 To 50
	AddItem("Blaue Zeile", RGB(0, 0, 255))
	AddItem("Grüne Zeile", RGB(0, 255, 0))
	AddItem("Rote Zeile", RGB(255, 0, 0))
Next

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Grüße ... Peter

Re: Richedit-eigenschaften

Verfasst: 20.10.2014 21:11
von stevie1401
Perfekt!!!

Re: Richedit-eigenschaften

Verfasst: 06.11.2014 18:13
von stevie1401
Dieses Beispiel ist eigentlich klasse:

Code: Alles auswählen

EnableExplicit

#Window = 0 
#ListIconGadget = 0

Procedure AddItem(Item.s, Color)
   AddGadgetItem(#ListIconGadget, -1, Item) ; Hinzufügen
   SetGadgetItemColor(#ListIconGadget, CountGadgetItems(#ListIconGadget) - 1, #PB_Gadget_FrontColor, Color) ; Einfärben
   SetGadgetState(#ListIconGadget, CountGadgetItems(#ListIconGadget) - 1) ; Selektieren
EndProcedure

OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 400, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

ListIconGadget(#ListIconGadget, 5, 5, 290, 390, "Chat", 260, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection )

Define Counter

For Counter = 0 To 50
   AddItem("Blaue Zeile", RGB(0, 0, 255))
   AddItem("Grüne Zeile", RGB(0, 255, 0))
   AddItem("Rote Zeile", RGB(255, 0, 0))
Next

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow


Der Nachteil ist der Select-Balken in der letzten Zeile.
Bekommt man den irgendwie weg?

Re: Richedit-eigenschaften

Verfasst: 06.11.2014 18:18
von ts-soft
#PB_ListIcon_AlwaysShowSelection entfernen.

Re: Richedit-eigenschaften

Verfasst: 06.11.2014 20:09
von stevie1401
Unter Windows funktioniert es, unter Linux hat es leider keine Auswirkung.
Hat jemand eine Idee, wie man die Balken unter Linux und Mac ausschalten kann?

Re: Richedit-eigenschaften

Verfasst: 06.11.2014 20:13
von Omi
Hallo stevie,

falls jeweils die letzte Zeile angezeigt jedoch nicht selektiert sein soll könntest Du folgende Änderung der Prozedur versuchen...

Code: Alles auswählen

Procedure AddItem(Item.s, Color)
   AddGadgetItem(#ListIconGadget, -1, Item) ; Hinzufügen
   SetGadgetItemColor(#ListIconGadget, CountGadgetItems(#ListIconGadget) - 1, #PB_Gadget_FrontColor, Color) ; Einfärben
   SetGadgetState(#ListIconGadget, CountGadgetItems(#ListIconGadget) - 1)																		; Selektieren
   SetGadgetState(#ListIconGadget,  - 1)
EndProcedure
Gruß
Charly

Re: Richedit-eigenschaften

Verfasst: 06.11.2014 20:15
von Shardik
ts-soft hat geschrieben:#PB_ListIcon_AlwaysShowSelection entfernen.
So einen Rat sollte man nur geben, wenn man dies auch auf allen Plattformen (nicht nur Windows) wirklich getestet hat... :mrgreen:
stevie1401 hat geschrieben:Hat jemand eine Idee, wie man die Balken unter Linux und Mac ausschalten kann?

Code: Alles auswählen

CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
  CocoaMessage(0, GadgetID(#ListIconGadget), "setSelectionHighlightStyle:", -1)
CompilerEndIf
PS: Charlys Vorschlag ist wohl vorzuziehen, da er ohne API-Aufrufe auch unter MacOS X funktioniert!

Re: Richedit-eigenschaften

Verfasst: 06.11.2014 20:19
von ts-soft
Shardik hat geschrieben:
ts-soft hat geschrieben:#PB_ListIcon_AlwaysShowSelection entfernen.
So einen Rat sollte man nur geben, wenn man dies auch auf allen Plattformen (nicht nur Windows) wirklich getestet hat... :mrgreen:
Lt. Doku bewirkt das Flag sowieso nur etwas unter Windows. Sollte die Doku nicht aktuell sein?
Das ist dann nicht mein Fehler :lol:

Re: Richedit-eigenschaften

Verfasst: 06.11.2014 20:23
von stevie1401

Code: Alles auswählen

 SetGadgetState(#ListIconGadget,  - 1)
...Das ist der Bringer :-)

Danke an alle für die schnelle und gute Hilfe :allright: