Payne85 hat folgendes geschrieben: |
Danke für dein Posting aber ich dachte man muss die Antwort von sendmessage immer mit einer Peek/getmessage einfangen. So hatte ichs verstanden. |
SendMessage ist eine Funktion, d.h. das Ergebnis kannst du direkt abfragen. Manchmal brauch man es, manchmal nicht. Ein gutes Beispiel ist dein "WM_GETTEXT", weil
SendMessage hierbei nämlich die Anzahl der kopierten Zeichen zurückliefert, so dass du auch mit einem String arbeiten könntest:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| SetLength(s,MAX_PATH); SetLength(s,SendMessage(GetActiveWindow, WM_GETTEXT,length(s),LPARAM(@s[1])));
ShowMessage( Format('"%s" hat %d Zeichen',[s,length(s)]) ); |
Manchmal gibt´s auch Makros (bzw. Funktionen, in Delphi gemeint), mit denen solche
SendMessage-Anweisungen gekapselt werden. Vorteil: du musst dich nicht mehr groß darum kümmern, wie die Parameter übergeben werden müssen, und du erhältst das Ergebnis meist gleich in der für dich interessanten Form. Und mal ehrlich,
Delphi-Quelltext
1:
| ListView_SetSelectedColumn(hListview,1); |
ist doch übersichtlicher als
Delphi-Quelltext
1:
| SendMessage(hListview,LVM_SETSELECTEDCOLUMN,1,0); |
Zitat: |
"Und was soll das noch danach?" ->wie du sicher bemerkt hast habe ich mich noch nicht allzulange mit der Materie beschäftigt, aber gut das du so nett nachfragst. Ich hab ja wirklich respekt vor denen die, wie du, gut programmieren können, doch deswegen kann man doch "normal" nachfragen wieso ich das geschrieben hab. z.B. "Das hättest du garnicht machen müssen, weil..." Aber wahrscheinlich beantwortest du hier soviel fragen das du auf sowas keine lust mehr hast, naja schade. Vieleicht sehe ichs ja auch ganz falsch, will hier ja keinen ärger machen. |
Nimm´s mir nicht übel, aber als ich damals mit dem API angefangen habe, da habe ich mir auch die erst mal ganzen Parameter angeschaut, damit ich weiß was ich überhaupt tun muss. Luckies damalige Tutorials waren dabei übrigens eine große Hilfe.
Und ich habe dir in einem anderen Beitrag doch den Link zu Luckies Seite und den aktuellen Tutorials gegeben. Wenn du dir das der Reihe nach anschaust (angefangen von den Fenstern bis hin zu ...), dann weißt du auch, wann man
GetMessage und Co. verwendet.
Ich verrate mal ein Geheimnis: auch, als ich schon etwas geübt im Umgang mit API-Programmen war, musste ich doch ab und zu nachschauen, weil ich die Syntax der WndProc:
Delphi-Quelltext
1: 2:
| function WndProc(wnd: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM): LRESULT; stdcall; |
nicht unbedingt im Kopf hatte.

Wie du siehst: jetzt ist das kein Problem mehr.
Gruß.