Registriert seit: 28. Mai 2008
655 Beiträge
Delphi 10.1 Berlin Starter
|
AW: Balloon Tooltip
21. Feb 2011, 09:56
wie beschrieben funktioniert mein Balloon Tip in einem Programm ohne Tochterfenster. Fehlerbeschreibung: in einem Tochterfenster (statisch oder dynamisch) passiert einfach nichts!
W.
Delphi-Quellcode:
procedure ShowBalloonTip(hWnd: THandle; Icon: integer; Title, Text: string;
BackCL, TextCL: TColor; RightTop: Boolean=false);
var
hWndTip: THandle;
ti: TOOLINFO;
fl: Integer;
b: pWideChar;
pTitle: PChar;
begin
if RightTop then
fl:=TTF_TRANSPARENT or TTF_SUBCLASS
else
fl:=TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;
GetMem(b,2*256);
pTitle := PChar(Title);
hWndTip := CreateWindow(TOOLTIPS_CLASS, nil,
WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,
0, 0, 0, 0, hWnd, 0, HInstance, nil);
if hWndTip <> 0 then
begin
SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
ti.cbSize := SizeOf(ti);
ti.uFlags := fl;
ti.hwnd := hWnd;
ti.lpszText := StringToWideChar(Text, b, 2*356);
Windows.GetClientRect(hWnd, ti.rect);
SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackCL, 0);
SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextCL, 0);
SendMessage(hWndTip, TTM_ADDTOOL, 1, Integer(@ti));
SendMessage(hWndTip, TTM_SETTITLE, Icon mod 4, Integer(pTitle));
end;
FreeMem(b);
end;
|
|
Zitat
|