Hi,
ich hab da mal ein...ungewöhnliches Problem. Ich will biHelp nutzen, um erklärende Texte zu diversen Controls auf einem einfachen Dialog anzuzeigen. Das funktioniert richtig gut, bis auf TADVGroupBoxen. Die reagieren gar nicht auf den Hilfsmauszeiger.
Kurz zur Umsetzung, die ich bisher nutze:
- alle fraglichen Controls haben den gewünschten Text in der Hint-Property
- ShowHint ist False
- Jedes fragliche Control hat einen eigenen Wert in HelpContext
- biHelp ist natürlich aktiviert und steht alleine, also kein biMaximize oder biMinimize
Ausserdem führe ich diesen Messagehandler für WM_Help aus:
Delphi-Quellcode:
procedure TMyDialog.ShowMyHelp(var message: TMessage);
var
hhPopup: THH_Popup;
myControlHandle: THandle;
myMousePos: TPoint;
begin
hhPopup.cbStruct := SizeOf(hhPopup);
hhPopup.hInst := 0;
hhPopup.idString := 0;
myControlHandle := PHelpInfo(message.lParam)^.hItemHandle;
myMousePos := PHelpInfo(message.lParam)^.MousePos;
hhPopup.pszText := PWideChar(FindControl(myControlHandle).Hint);
hhPopup.pt := myMousePos;
hhPopup.clrForeground := COLORREF(-1);
hhPopup.clrBackground := COLORREF(-1);
hhPopup.rcMargins := Rect(-1, -1, -1, -1);
hhPopup.pszFont := '';
HtmlHelp(Self.Handle, nil, HH_DISPLAY_TEXT_POPUP, dword(@hhPopup));
end;
Wie gesagt, für andere Controls wie Buttons oder auch Memos geht das...nur nicht für die ADVGroupBoxes...jemand eine Idee? Sources zu den ADV hab ich, falls ich da rein müsste.
Sherlock
PS:
Crosspost zu
http://www.tmssoftware.com/site/foru...box-and-bihelp