Autor |
Beitrag |
Tweafis
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: So 22.06.03 18:31
Ich dachte das geht über
Delphi-Quelltext 1:
| SendMessage(hwnd, LB_SETSEL, Integer(True), Index); |
In der Hifle zu LB_SETSEL steht
Zitat: | LB_SETSEL
wParam = (WPARAM) (BOOL) fSelect; // selection flag
lParam = (LPARAM) (UINT) index; // item index |
Das funzt aber überhaupt nicht  also wenn ich jetzt z.B.
Delphi-Quelltext 1:
| SendMessage(hwndListbox, LB_SETSEL, Integer(True), 1); |
mache selektiert er überhaupt nix bzw nix anderes. Was mache ich falsch?
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
Tweafis 
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Mo 23.06.03 13:18
Sorry, dass ich hier doppelposte, aber das dürfte doch für euch Profis kein Problem sein 
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 23.06.03 14:20
Auszug aus Luckies Listbox-Demo (Prozedur "SelAll"):
Delphi-Quelltext 1: 2: 3: 4: 5:
| CountItems := SendMessage(hwndListbox, LB_GETCOUNT, 0, 0); if CountItems = 0 then exit;
for i := 0 to CountItems do SendMessage(hwndListbox, LB_SETSEL, Integer(true), i); |
Geht. 
|
|
Tweafis 
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Mo 23.06.03 15:41
Hmm, die hab ich schon gelesen aber wenn ich jetzt direkt nach dem erstellen die letzte Zeile einfüge und das i durch 1 ersetze müsste doch das 2 Item Selektioert werden, oder? und das wird es eben nicht...
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 23.06.03 18:04
Nochmals ein Auszug aus der angesprochenen Demo, wenn auch leicht verändert. Das soll beweisen, dass es auch gleich nach dem Erstellen der Listbox und der Items funktioniert:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| case uMsg of WM_CREATE: begin
hwndListBox := CreateWindowEx(WS_EX_CLIENTEDGE, 'LISTBOX', nil, WS_CHILD or WS_VISIBLE or LBS_STANDARD or LBS_EXTENDEDSEL, 10, 10, 200, 230, hWnd, IDC_LB, hInstance, nil);
buffer := 'Peter'; SendMessage(hwndListbox, LB_ADDSTRING, 0, Integer(@buffer)); buffer := 'Dieter'; SendMessage(hwndListbox, LB_ADDSTRING, 0, Integer(@buffer)); buffer := 'Uli'; SendMessage(hwndListbox, LB_ADDSTRING, 0, Integer(@buffer)); buffer := 'Norbert'; SendMessage(hwndListbox, LB_ADDSTRING, 0, Integer(@buffer)); buffer := 'Otto'; SendMessage(hwndListbox, LB_ADDSTRING, 0, Integer(@buffer));
SendMessage(hwndListbox, LB_SETSEL, integer(true), 1);
end; end; |
Geht auch. Ich weiß nicht mehr weiter, @Tweafis. Sorry, dass ich dir nicht helfen kann, aber ich sehe keinen Fehler. 
|
|
Tweafis 
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Mo 23.06.03 19:39
Delphi-Quelltext 1: 2: 3: 4: 5:
| hwndListbox := CreateWindowEx(WS_EX_CLIENTEDGE or WS_EX_STATICEDGE, 'LISTBOX', nil, WS_VISIBLE or WS_CHILD, 8, 8, 200, 200, hWnd, IDC_LISTBOX, hInstance, nil);
SendMessage(hwndListbox, LB_SETSEL, Integer(True), 1); |
So sieht mein Code aus. Warum geht das nicht???
an den Styles Standard und Extsel liegt es nicht, hab ich getestet.
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 24.06.03 08:00
Doch, an den Stilattributen liegt es.
Schau mal ins PSDK:
PSDK hat folgendes geschrieben: | LB_SETSEL
An application sends an LB_SETSEL message to select a string in a multiple-selection list box. |
Du brauchst LB_SETCURSEL, wenn man nur ein Item auswählen kann. Eigentlich hätte ich da wohl auch gestern drauf kommen können. 
|
|
Tweafis 
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Di 24.06.03 16:35
Thx, werde ich gleich testen, und mich dann melden 
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
Tweafis 
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Di 24.06.03 17:13
Delphi-Quelltext 1: 2: 3: 4: 5:
| hwndListbox := CreateWindowEx(WS_EX_CLIENTEDGE or WS_EX_STATICEDGE, 'LISTBOX', nil, WS_VISIBLE or WS_CHILD, 8, 8, 200, 200, hWnd, IDC_LISTBOX, hInstance, nil);
SendMessage(hwndListbox, LB_SETCURSEL, 1, 0); |
Warum geht das nicht?
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
Tweafis 
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Di 24.06.03 17:15
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 24.06.03 18:03
Ab! Zur Strafe in die Ecke und schämen! 
|
|
Tweafis 
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: Di 24.06.03 18:26
Ich hab schon meinen Kopf gegen die Wand geschlagen, dass muss reichen 
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
|