Hallo!
Ich benutze Delphi7 das ja noch keine echte Wide-Unterstützung hat und hätte gerne einen Tooltip, der einen WideString anzeigen kann. Dazu benutze ich folgenden Code:
Delphi-Quellcode:
var
toolTip: HWND;
toolInfo: TOOLINFOW;
function CreateToolTip(hControl: HWND; text: PWideChar): HWND;
const
TOOLTIPS_CLASSW: PWideChar = 'tooltips_class32';
begin
Result := CreateWindowExW(
WS_EX_TOPMOST, TOOLTIPS_CLASSW, '',
WS_POPUP or TTS_NOPREFIX or TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
0, 0, HInstance, nil);
if Result <> 0 then begin
with toolInfo do begin
cbSize := SizeOf(toolInfo);
uFlags := TTF_SUBCLASS or TTF_IDISHWND;
uId := hControl;
hInst := HInstance;
lpszText := text;
lParam := 0;
end;
SendMessageW(Result, TTM_ADDTOOL, 0, LPARAM(@toolInfo));
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
toolTip := CreateToolTip(TntDrawGrid1.Handle, 'test');
end;
Trotzdem will der Tooltip nur AnsiStrings akzeptieren, bei einem WideString wird nur das erste Zeichen angezeigt...
Was mache ich falsch?
Grüße
blablab