Einzelnen Beitrag anzeigen

Eichhoernchen09

Registriert seit: 5. Feb 2007
4 Beiträge
 
#4

Re: Tooltip eines beliebigen Controls anzeigen lassen

  Alt 6. Feb 2007, 09:49
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.

  Mit Zitat antworten Zitat