Ich möchte eine ggf. geänderte Spaltenbreite abspeichern. Mit GetGadgetItemAttribute() kann man die aktuelle Breite einer Spalte zwar ermitteln. Aber wie merkt man, dass die Spaltenbreite geändert wurde? Ich möchte ja nicht ständig die aktuelle Spaltenbreite abfragen und mit den abgespeicherten Einstellungen vergleichen.
Wie generiert man ein Event bei Änderung der Spaltenbreite?
ListiconGadget: Event bei Änderung der Spaltenbreite
- ProgOldie
- Beiträge: 236
- Registriert: 19.05.2012 17:09
- Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02
ListiconGadget: Event bei Änderung der Spaltenbreite
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Re: ListiconGadget: Event bei Änderung der Spaltenbreite
Da bei der Änderung kein #PB_EventType_Change ausgelöst wird, bleibt wohl nur noch das "dauernde" Abfragen.
Am besten mit einem AddWindowTimer() .... Es sei denn, es gäbe da ein API Konstrukt, was das ganze dann allerdings
auf ein OS "fixiert".
Am besten mit einem AddWindowTimer() .... Es sei denn, es gäbe da ein API Konstrukt, was das ganze dann allerdings
auf ein OS "fixiert".
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: ListiconGadget: Event bei Änderung der Spaltenbreite
Code: Alles auswählen
EnableExplicit
Define a
Global ListCB
Procedure ListCB(hWnd, Message, wParam, lParam)
Protected *HD_NOTIFY.HD_NOTIFY
Protected Result = CallWindowProc_(ListCB, hWnd, Message, wParam, lParam)
Select Message
Case #WM_NOTIFY
*HD_NOTIFY = lParam
If *HD_NOTIFY\hdr\code = #HDN_ITEMCHANGED
Debug "Breite der Spalte " + Str(*HD_NOTIFY\iItem+1) + " hat sich geändert"
EndIf
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(1, 0, 0, WindowWidth(0), WindowHeight(0), "Spalte 1", 150, 0)
AddGadgetColumn(1, 1, "Spalte 2", 150)
AddGadgetColumn(1, 2, "Spalte 3", 150)
For a=1 To 10
AddGadgetItem(1, -1, "Eintrag " + Str(a), 0, 0)
Next
ListCB = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @ListCB())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf- ProgOldie
- Beiträge: 236
- Registriert: 19.05.2012 17:09
- Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02
Re: ListiconGadget: Event bei Änderung der Spaltenbreite
Danke RSBasic, genau das war's.
Habe auch gleich aus deiner WinAPI noch den Klick auf den Header darin untergebracht.
Habe auch gleich aus deiner WinAPI noch den Klick auf den Header darin untergebracht.
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
- HeX0R
- Beiträge: 3056
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: ListiconGadget: Event bei Änderung der Spaltenbreite
Ich mache sowas üblicherweise beim Beenden des Programms.
Welchen Sinn macht es, das on-the-fly zu überwachen?
Welchen Sinn macht es, das on-the-fly zu überwachen?
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
- 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: ListiconGadget: Event bei Änderung der Spaltenbreite
Dasselbe, hab ich mich auch gefragtHeX0R hat geschrieben:Ich mache sowas üblicherweise beim Beenden des Programms.
Welchen Sinn macht es, das on-the-fly zu überwachen?
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ProgOldie
- Beiträge: 236
- Registriert: 19.05.2012 17:09
- Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02
Re: ListiconGadget: Event bei Änderung der Spaltenbreite
@ts-soft, @HeXOR
o.K., das macht man sinnvollerweise in aller Regel erst am Ende. Manchmal hat man halt ein Brett vor dem Kopf....
o.K., das macht man sinnvollerweise in aller Regel erst am Ende. Manchmal hat man halt ein Brett vor dem Kopf....
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
- 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: ListiconGadget: Event bei Änderung der Spaltenbreite
Das gehört beim Programmieren einfach dazuProgOldie hat geschrieben:Manchmal hat man halt ein Brett vor dem Kopf....
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.


