Autor Beitrag
Tweafis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Sa 21.06.03 22:02 
Was ist der unterschied zwischen den Beiden? Ich möchte in eine Listbox per Buttonklick aus einem Editfeld ein neues Item holen, den Text im Edit auf '' setzen und wieder den Focus reinsetzen. Alles geht auch, sogar letzteres, trotzdem interessiert mich:

ausblenden Delphi-Quelltext
1:
2:
SetFocus(hwndEditAdd);  // geht
SendMessage(hwndEditAdd, WM_SETFOCUS, 00);  // geht nicht


Warum? In der Hilfe zu WM_SETFOCUS steht das die Message kurz bevor der Focus erhalten wird an das Wn geschickt wird. Außerdem zeigt sich danach ein Fehlferhalten bei der Editbox, und zwar kann man nichtsmehr eingeben, auch wenn man nochmal drafuklickt, aber der Caret blinkt. Auch wenn ich einen anderen Button klicke und dann wieder auf das Edit, keine Eingabe möglich und der Caret blinkt lustig weiter. Mit SetFoucs geht es ohne Probleme... aber ich möchte wissen WARUM... :(

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
Gast
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 24.06.03 00:31 
Du hast das schon richtig erkannt:

WM_SETFOCUS ist eine Nachricht ... eine Benachrichtigung. Sie existiert zB dazu, daß das EDIT ein Caret anzeigen oder bei WM_KILLFOCUS verstecken kann! Es ist nicht dazu da den Fokus zu setzen!

Zitat:
The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus.


Das bedeutet immer, die Message WIRD gesendet! Und der Sender ist das System, nicht du! Bei diesen WMs lohnt es nur die Nachrichten auszuwerten, nicht aber sie zu senden!
Tweafis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Di 24.06.03 16:33 
Danke!

Gibt es dennoch eine Möglichkeit den Foucs zu setzen, SetFoucs macht das ja auch irgendwie!

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
Gast
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 24.06.03 18:06 
Warum benutzt du dann nicht SetFocus()? Spricht irgendwas dagegen, wa ich jetzt noch nicht weiß?
Tweafis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Di 24.06.03 18:27 
Hmm, ich frage mich eben, warum man das nicht per SendMessage machen kann ;)

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
Gast
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 24.06.03 20:38 
Die Erklärung haste ja oben von mir bekommen.

Tcha ... und anders geht es eben nicht :D
Tweafis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Di 24.06.03 20:54 
Könnte ja sein, das ich einfach nur die Falsche Msg benutzt habe und es eine gibt die dafür da ist.

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
Gast
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 24.06.03 22:07 
Wäre mir neu ... ich kenne keine solche Message!