Mit der Schaltfläche "Text kopieren" in unserem Beispielprogramm wird der Text des oberen Eingabefeldes in das untere kopiert. Dazu wird der vorhandene Text mit der Nachricht "WM_GETTEXT" in einen Puffer gelesen:
SendMessage(hwndEdit1, WM_GETTEXT, 1024, Integer(@buffer));
und dann einfach nur mit dem Gegenstück "WM_SETTEXT" in das untere Feld geschrieben:
SendMessage(hwndEdit2, WM_SETTEXT, 0, Integer(@buffer));
Als Alternative zu diesen beiden Nachrichten ließen sich auch noch
GetWindowText(hwndEdit1,@buffer,1024);
SetWindowText(hwndEdit2,@buffer);
Ich möchte an dieser Stelle noch einmal erwähnen, dass auch ein Eingabefeld ebenso ein Fenster wie das Hauptfenster ist. Es wurde nur mit anderen Stilen erzeugt. Warum ich das noch sage? Setzen sie doch einfach mal anstelle des Editfeld-Handles das Handle des Labels ein und beobachten Sie was dann passiert ... Noch interessanter wird es, wenn sie die Prozedur um den Parameter "hWnd" erweitern und diesen dann einsetzen. Was geschieht? Wir können in das obere Eingabefeld reinschreiben, was wir wollen, im unteren Eingabefeld erscheint entweder der Text aus dem Label oder unser Titelzeilentext.
Mit der Editfeld-Nachricht "EM_LINELENGTH" wird einfach nur ermittelt wie viele Zeichen in der angegebenen Zeile sind. Im ersten Parameter wird die Zeile angegeben, von der aus ermittelt werden soll. Bei einzeiligen Eingabefeldern wie im Beispiel ist dieser Wert Null. Rückgabewert ist dann die Anzahl der vorhandenen Zeichen:
Textlen := SendMessage(hwndEdit1, EM_LINELENGTH, 0, 0);