![]() |
Tooltip akzeptiert kein WideString
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:
Trotzdem will der Tooltip nur AnsiStrings akzeptieren, bei einem WideString wird nur das erste Zeichen angezeigt...
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; Was mache ich falsch? Grüße blablab |
AW: Tooltip akzeptiert kein WideString
Du musst statt TTM_ADDTOOL TTM_ADDTOOLW verwenden!
|
AW: Tooltip akzeptiert kein WideString
Danke!
|
AW: Tooltip akzeptiert kein WideString
Erstmal kann Delphi 7 Unicode umgehen.
Dort gibt es den WideString (der eine OleAuth-API kapselt und ab Delphi 2009 gibt es dann den nativen Delphi-UnicodeString). Ach ja, nicht wundern, wenn dennoch deine Unicode-Komponenten nicht überall richtig funktionieren, denn die Nachrichtenbehandlung ist ja dennoch nur ANSI. (außer man tauscht die MessageLoop aus) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz