Richedit-eigenschaften

Anfängerfragen zum Programmieren mit PureBasic.
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Richedit-eigenschaften

Beitrag 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.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Richedit-eigenschaften

Beitrag 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
a²+b²=mc²
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Richedit-eigenschaften

Beitrag von stevie1401 »

Perfekt!!!
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Richedit-eigenschaften

Beitrag 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?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Richedit-eigenschaften

Beitrag von ts-soft »

#PB_ListIcon_AlwaysShowSelection entfernen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Richedit-eigenschaften

Beitrag 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?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Omi
Beiträge: 143
Registriert: 25.03.2013 09:59

Re: Richedit-eigenschaften

Beitrag 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
PureBasic Linux-API-Library: http://www.chabba.de
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: Richedit-eigenschaften

Beitrag 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!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Richedit-eigenschaften

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Richedit-eigenschaften

Beitrag von stevie1401 »

Code: Alles auswählen

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

Danke an alle für die schnelle und gute Hilfe :allright:
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Antworten