Seite 1 von 1

ListIconGadget Spalten formatieren

Verfasst: 17.06.2006 03:23
von Thatsanee
Hallo

wie bekomme ich eine Spalten-Formatierung
im ListIconGadget hin. Standard ist ja linksbündig,
und wie zentrieren oder rechtsbündig anzeigen ?

Thatsanee

Verfasst: 20.06.2006 00:56
von MLK
dieses hoffentlich verständliche beispiel richtet den text zentriert aus:

Code: Alles auswählen

Center.LV_COLUMN\mask = #LVCF_FMT
Center\fmt            = #LVCFMT_CENTER
SendMessage_(GadgetID(#GADGET), #LVM_SETCOLUMN, Column, @Center)

Verfasst: 20.06.2006 09:23
von Shardik
Die Foren-Suche oder das Codearchiv auf www.purearea.net sind Deine Freunde :wink:

Code: Alles auswählen

; http://www.purebasic.fr/german/archive/viewtopic.php?t=100
; oder im CodeArchiv auf www.purearea.net unter Gadgets - ListIcon - Datei ListIcon_left+middle+right.pb
; von ChaOsKid
; OpenWindow() und CreateGadgetList() für PB 4 abgeändert

#Gadget_ListView = 0 

ListViewSpalte.LV_COLUMN 
ListViewSpalte\mask = #LVCF_FMT 

If OpenWindow(0,0,0,300,100,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
  If CreateGadgetList(WindowID(0)) 
    ListViewHandle = ListIconGadget(#Gadget_ListView,0,0,300,100, "", 100) 
    AddGadgetColumn(#Gadget_ListView, 1, "", 80) 
    AddGadgetColumn(#Gadget_ListView, 1, "", 80) 
  EndIf 
  
  Spalte = 1 ; Spalte festlegen 
  ListViewSpalte\fmt = #LVCFMT_RIGHT ; Ausrichtung festlegen 
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) ; Message senden 
  
  Spalte = 2  ; Spalte festlegen 
  ListViewSpalte\fmt = #LVCFMT_CENTER  ; Ausrichtung festlegen 
  SendMessage_(ListViewHandle, #LVM_SETCOLUMN, Spalte, @ListViewSpalte) ; Message senden 
  
  AddGadgetItem(#Gadget_ListView,0,"Links (Standard)" + Chr(10) + "Rechts" + Chr(10) + "Mitte") 
  
  Repeat ; 
    EventID=WaitWindowEvent() 
  Until EventID=#PB_Event_CloseWindow 
EndIf 
End

Verfasst: 20.06.2006 18:41
von AND51
Ich würde es einfach mitPureLVSORT_SetColumnAlignment() machen. Jetzt fragst du dich natürlich, wo es diesen Befehl gibt: Natürlich in der Lib von Gnozales! Die enthält einige sehr, sehr gute Befehel zum ListIconGadget(). Die musst du dir einfach installieren:

Hier ist Gnozale's Seite:
http://people.freenet.de/gnozal

Echt, ich kann sie dir nur wärmstens empfehlen, dann brauchst du z. B. den ganzen Quatsch mit der APi nicht. Was jetzt nicht heißen soll, dass ich die Lösungen von den anderren verachte!

Verfasst: 21.06.2006 08:34
von Shardik
Ich würde es einfach mitPureLVSORT_SetColumnAlignment() machen.
Selbstverständlich kann man für die Spaltenformatierung auch die UserLib PureLVSort von Gnozal verwenden (Danke für den Hinweis). Allerdings finde ich, daß man den Einsatz davon abhängig machen sollte, wieviele Funktionen man noch zusätzlich aus dieser Lib verwendet. Falls man wirklich nur in einem ListIconGadget eine Spalte anders formatieren möchte, reicht eine kleine eigene Prozedur. Schließlich möchte man ja auch "bloated" (aufgeblasenen) Code vermeiden. Hat vielleicht schon jemand einmal einen Test gemacht, wie sich der Einsatz einer UserLib auf die Codegröße auswirkt?
..., dann brauchst du z. B. den ganzen Quatsch mit der APi nicht.
Auch die UserLib von Gnozal verwendet mit Sicherheit "den ganzen Quatsch mit der API" :wink:

Verfasst: 21.06.2006 09:35
von edel
Viel wichtiger ist die Frage 'Was mache ich bei einem Bug in einer UserLib ?'.

Jetzt fragst du dich natuerlich was man da macht : Richtig, auf die passende
Lust und Laune des Autors warten.

Die Benutzung einer UserLib, wenn sie denn nicht selber geschrieben wurde,
sollte immer der letzte Weg sein. Gerade wenn man es selber machen kann.

Verfasst: 21.06.2006 14:24
von AND51
@ shardik: ich habe mir ursprünglih die Lib auch nur geladen, weil ich die Funktion mit der Breitenänderung braucht, ganz ehrlich! Dass da noch andere Funktionen drin enthalten sind fand ich ja gut und schn, aber ich habe nicht weiter vorausgedacht.
Erst bei meinem nächsten Projekt konnte ich die ganze Lib brauchen und war froh, dass ich sie mir doch geladen habe und nicht irgendeinen dreizeiler oder so genommen habe.

@ API: so war das nicht gemeint! wahrscheinlich braucht gnozales die API, klar. aber ich wollte eigentlich sagen, dass man selbst keinen einzigen API befehl mehr hinschreiben muss.


@ edel: Bug in gnozales Lib? Die Risiko ist größer, dass man Lotto gewinnt, statt eines Bugs, gerade bei gnozales Libs, die ja
leistungsstark
sind. Ich will gnozales nicht in den himmel loben und bis an das ende meiner Tage verehren aber ich habe bisher keinen bug entdeckt und bin sicherlich auch nicht der einzige, der diese Lib verwendet.