moin, moin...
Hat wer einen funktionierenden Code für PureLVSORT_SetColumnWidth() aus dem ich dessen Anwendung lernen kann ?
Und was bedeutete für #PureLVSORT_AutoSize "Automatically sizes the column"
So breit wie der längste Inhalt ?
tia... scholly
[erledigt] PureLVSORT_SetColumnWidth() - Beispiel gesucht
[erledigt] PureLVSORT_SetColumnWidth() - Beispiel gesucht
Zuletzt geändert von scholly am 17.05.2008 16:54, insgesamt 1-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Re: PureLVSORT_SetColumnWidth() - Beispielcode gesucht
scholly hat geschrieben:moin, moin...
Hat wer einen funktionierenden Code für PureLVSORT_SetColumnWidth() aus dem ich dessen Anwendung lernen kann ?
Code: Alles auswählen
#Window_0 = 0
#ListIcon_0 = 0
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 602, 302, "PureLVSORT Test", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ListIconGadget(#ListIcon_0, 5, 5, 590, 285, "String", 100)
AddGadgetColumn(#ListIcon_0, 1, "DateDDMMYYYYHHMMSS", 100)
AddGadgetColumn(#ListIcon_0, 2, "DateDDMMYYHHMM", 100)
AddGadgetColumn(#ListIcon_0, 3, "DateDDMMYYYY", 100)
AddGadgetColumn(#ListIcon_0, 4, "DateMMDDYYYY", 100)
AddGadgetColumn(#ListIcon_0, 5, "FileSize", 100)
AddGadgetColumn(#ListIcon_0, 6, "NoSorting", 100)
AddGadgetItem(#ListIcon_0, -1, "ABCDE" + Chr(10) + "12/05/2001 06:41:30" + Chr(10) + "19/07/66 06:41" + Chr(10) + "31/12/2004" + Chr(10) + "12/31/2004" + Chr(10) + "15.02 MB" + Chr(10) + "0")
AddGadgetItem(#ListIcon_0, -1, "ACDEF" + Chr(10) + "05/07/2004 09:21:30" + Chr(10) + "12/05/01 07:50" + Chr(10) + "11/12/2004" + Chr(10) + "12/11/2004" + Chr(10) + "65 B" + Chr(10) + "1")
AddGadgetItem(#ListIcon_0, -1, "ZABCD" + Chr(10) + "19/11/2003 07:18:31" + Chr(10) + "13/08/03 06:41" + Chr(10) + "21/01/2003" + Chr(10) + "01/21/2003" + Chr(10) + "5.98 GB" + Chr(10) + "3")
AddGadgetItem(#ListIcon_0, -1, "DEFGH" + Chr(10) + "19/11/2003 06:21:30" + Chr(10) + "12/05/01 06:41" + Chr(10) + "10/06/2001" + Chr(10) + "06/10/2001" + Chr(10) + "100 KB" + Chr(10) + "A")
EndIf
EndIf
EndProcedure
Open_Window_0()
; ListIcon Sort Setup
Debug #PureLVSORT_DateDDMMYYYYHHMMSS
If PureLVSORT_SelectGadgetToSort(#ListIcon_0, #PureLVSORT_ShowClickedHeader_IconLeft) = #PureLVSORT_Ok
PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_String) ; default, not necessary
PureLVSORT_SetColumnType(#ListIcon_0, 1, #PureLVSORT_DateDDMMYYYYHHMMSS)
PureLVSORT_SetColumnType(#ListIcon_0, 2, #PureLVSORT_DateDDMMYYHHMM)
PureLVSORT_SetColumnType(#ListIcon_0, 3, #PureLVSORT_DateDDMMYYYY)
PureLVSORT_SetColumnType(#ListIcon_0, 4, #PureLVSORT_DateMMDDYYYY)
PureLVSORT_SetColumnType(#ListIcon_0, 5, #PureLVSORT_FileSize)
PureLVSORT_SetColumnType(#ListIcon_0, 6, #PureLVSORT_NoSorting)
; //////////
PureLVSORT_SetColumnWidth(#ListIcon_0, 1, #PureLVSORT_AutoSize) ; <------- TRY WITH AND WITHOUT THIS LINE
; //////////
EndIf
;
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End
Yesscholly hat geschrieben:Und was bedeutete für #PureLVSORT_AutoSize "Automatically sizes the column"
So breit wie der längste Inhalt ?
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
Danke...
Sowas solltest Du vielleicht auch als PureLVSORT_SetColumnWidth_EXAMPLE.pb mit Deiner Lib verteilen.
Ich hab das dann mal etwas auf meinen Bedarf umgeschrieben:
Gibt es einen Trick, daß die Spalte nicht nur so breit wie seine breiteste Zelle wird, sondern "breiteste Zelle" + "Raum für Pfeil", wobei der Spaltentitel als Zelle IMHO mitzählen sollte ?
bis denne... scholly, der englische Antworten auch oft versteht
Sowas solltest Du vielleicht auch als PureLVSORT_SetColumnWidth_EXAMPLE.pb mit Deiner Lib verteilen.
Ich hab das dann mal etwas auf meinen Bedarf umgeschrieben:
Code: Alles auswählen
gelöscht, siehe unten
bis denne... scholly, der englische Antworten auch oft versteht

Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Ich glaube, ich hab da was zusammengebracht:Gibt es einen Trick, daß die Spalte nicht nur so breit wie seine breiteste Zelle wird, sondern "breiteste Zelle" + "Raum für Pfeil", wobei der Spaltentitel als Zelle IMHO mitzählen sollte ?
Code: Alles auswählen
Procedure.l PureLVSort_ColMaxWidth(LIG_ID.l,LIG_Col.l)
Define.l value1, value2, result
PureLVSORT_SetColumnWidth(LIG_ID, LIG_Col, #PureLVSORT_UseHeader)
value1 = GetGadgetItemAttribute(LIG_ID.l, 0, #PB_ListIcon_ColumnWidth, LIG_Col.l)
PureLVSORT_SetColumnWidth(LIG_ID, LIG_Col, #PureLVSORT_AutoSize)
value2 = GetGadgetItemAttribute(LIG_ID.l, 0, #PB_ListIcon_ColumnWidth, LIG_Col.l)
If value1 > value2
result = value1
Else
result = value2
EndIf
ProcedureReturn result + 24; für den Pfeil
EndProcedure
#Window_0 = 0
#ListIcon_0 = 0
If OpenWindow(#Window_0, 216, 0, 402, 302, "PureLVSORT Test", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ListIconGadget(#ListIcon_0, 5, 5, 590, 285, "UID", 100)
AddGadgetColumn(#ListIcon_0, 1, "Titel", 100)
AddGadgetColumn(#ListIcon_0, 2, "VeryLongColumnTitle", 100)
AddGadgetColumn(#listicon_0, 3, "Filler", 200)
Else
End
EndIf
Else
End
EndIf
;
MessageRequester("Testphase 1 beendet", "Nun werden die Spaltenbreiten an die Spaltenbezeichnungslängen angepaßt")
If PureLVSORT_SelectGadgetToSort(#ListIcon_0, #PureLVSORT_ShowClickedHeader_IconRight) = #PureLVSORT_Ok
PureLVSORT_SetColumnWidth(#ListIcon_0, 0, #PureLVSORT_UseHeader)
PureLVSORT_SetColumnWidth(#ListIcon_0, 1, #PureLVSORT_UseHeader)
PureLVSORT_SetColumnWidth(#ListIcon_0, 2, #PureLVSORT_UseHeader)
Else
Debug "PureLVSORT_SelectGadgetToSort() <> #PureLVSORT_Ok"
End
EndIf
;
MessageRequester("Testphase 2 beendet", "Nun die Spalten füllen")
;
AddGadgetItem(#ListIcon_0, -1, "1" + Chr(10) + "Alien" + Chr(10) + "c:\")
AddGadgetItem(#ListIcon_0, -1, "44" + Chr(10) + "28 Days later" + Chr(10) + "f:\")
AddGadgetItem(#ListIcon_0, -1, "222" + Chr(10) + "Terminator" + Chr(10) + "e:\")
AddGadgetItem(#ListIcon_0, -1, "3333" + Chr(10) + "La boum" + Chr(10) + "d:\")
;
PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_0, 1, #PureLVSORT_String)
PureLVSORT_SetColumnType(#ListIcon_0, 2, #PureLVSORT_String)
;
MessageRequester("Testphase 3 beendet", "Nun Spaltenbreiten an Zelleninhalte anpassen")
;
PureLVSORT_SetColumnWidth(#ListIcon_0, 0, PureLVSort_ColMaxWidth(#ListIcon_0,0))
PureLVSORT_SetColumnWidth(#ListIcon_0, 1, PureLVSort_ColMaxWidth(#ListIcon_0,1))
PureLVSORT_SetColumnWidth(#ListIcon_0, 2, PureLVSort_ColMaxWidth(#ListIcon_0,2))
;
MessageRequester("Problem gelöst:", "Bitte mal 1. oder 3. Spalte sortieren ;)")
;
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End
bis denne... scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)