Home » Tipps & Tricks » Komponenten » Allgemein » Text/Beschriftung eines Controls ermitteln

Text/Beschriftung eines Controls ermitteln

Folgender Tipp zeigt, wie man den Text oder die Beschriftung eines Controls ermitteln kann (z.B. den Text einer Titelleiste).Dazu wird zunächst das Handle des Controls benötigt. In diesem Beispiel wird das Handle des Controls, welches sich unter dem Mauszeiger befindet, verwendet. Die Mauskoordinaten werden mithilfe der Procedure GetCursorPos ermittelt. Über die Funktion WindowFromPoint wird das dazugehörige Handle ermittelt. Die entsprechende Windows-Botschaft, um ein Text zu ermitteln lautet WM_GETTEXT, die mit SendMessage gesendet wird.Damit die Mauskoordinaten ständig aktualisiert werden, schreiben Sie den Quellcode in das OnTimer-Event eines TTimers:

procedure TForm1.Timer1Timer(Sender: TObject);
const
  cMaxBuffer = 255;
var
  p: TPoint;
  h: THandle;
  buf: array[0..cMaxBuffer] of Char;
begin
  GetCursorPos(p);
  h := WindowFromPoint(p);
  if h0 then
    SendMessage(h, WM_GETTEXT, cMaxBuffer, Integer(@Buf));
  Label1.Caption := Buf;
end;

Fahren Sie nun mit der Maus über verschiedene Controls wird der jeweilige Text über das Label ausgegeben.