Vielen Dank für Deine Antwort.
Leider funktioniert es bei mir nicht. Vielleicht habe ich ja das falsche Tooltip
Handle...??
Ich habe es am Beispiel eines ListViews versucht.
Mein Code sieht so aus:
Delphi-Quellcode:
var
Form1: TForm1;
const LVM_GETTOOLTIPS = $104E;
const TTM_GETTEXT = $438;
type TRect =
record
Left: Cardinal;
Top: Cardinal;
Right: Cardinal;
Bottom: Cardinal;
end;
type TToolInfo =
record
cbSize: Cardinal;
uFlags: Cardinal;
hwnd: Cardinal;
uId: Cardinal;
cRect: TRect;
hinst: Cardinal;
lpszText:
String;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
ToolTipp: TToolInfo;
ControlHandle, ToolTipHandle: HWND;
text:
String;
begin
ControlHandle:= ListView1.Handle;
//Handle des Fensters wo der Tip angezeigt wird
ToolTipHandle:= SendMessage(ListView1.Handle, LVM_GETTOOLTIPS, 0, 0);
//Handle des Tooltips
ZeroMemory(@ToolTipp, SizeOf(ToolTipp));
ToolTipp.cbSize:= SizeOf(ToolTipp);
ToolTipp.hwnd:= ControlHandle;
ToolTipp.uId:= ToolTipp.hwnd;
SetLength(text, 200);
ToolTipp.lpszText:= PChar(text);
SendMessage(ToolTipHandle, TTM_GETTEXT, 0, LPARAM(@ToolTipp));
Edit1.Text:=
string(ToolTipp.lpszText);
end;
Gibt es nicht auch eine Nachricht, mit der man den Tooltip-
Handle eines Controls ermitteln kann, ohne seinen Typ zu kennen? Also nur mit dem HWND Wert des Controls.