ListIconGadget Spalten formatieren

Für allgemeine Fragen zur Programmierung mit PureBasic.
Thatsanee
Beiträge: 116
Registriert: 11.03.2005 05:12

ListIconGadget Spalten formatieren

Beitrag 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
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag 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)
Constant not found: #vk_shit
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Beitrag 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
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Beitrag 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:
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten