Thema: Delphi | im Hint anzeigen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#13

Re: | im Hint anzeigen

  Alt 30. Jul 2009, 16:17
@TeronG:
Delphi-Quellcode:
Uses CommCtrl;

Procedure SetBalloonTip(Control: TWinControl; Const Title, Text: String; Icon: Integer = TTI_INFO);
  Var H: THandle;
    TI: TToolInfo;

  Begin
    H := CreateWindow(TOOLTIPS_CLASS, nil, WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,
      0, 0, 0, 0, Control.Handle, 0, HInstance, nil);
    If H <> 0 Then Begin
      SetWindowPos(H, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
      TI.cbSize := SizeOf(TI);
      TI.uFlags := TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;
      TI.hwnd := Control.Handle;
      TI.lpszText := PChar(Text);
      GetClientRect(Control.Handle, TI.Rect);
      SendMessage(H, TTM_ADDTOOL, 1, Integer(@TI));
      SendMessage(H, TTM_SETTITLE, Icon, Integer(Title));
    End;
  End;
hab jetzt deine Variante verbaut, auch wenn ich erst versucht hatte den ToolTip direkt per Aufruf anzuzeigen und mich wunderte waru nix angezeigt wird

hab jetzt alles auf das Nötige gekürzt
- in der Unit CommCtrl war ja schon alles enthalten und muß nicht nochmal definiert werden
- und die beiden Farben flogen auch raus ... brauch ja nur das aktuelle Windowsdesign
- OK und String gefiehl mir auch besser als dieses PChar-PWideChar-Gemischmasch
- Prozedurname geändert Set statt Show, denn der wird ja nur gesetzt und nicht direkt angezeigt.

Ja und es wird jetzt endlich alles schön angezeigt, ohne daß ich groß was ändern mußt
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat