Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: Statusbar mit getrennten hints?
12. Mär 2007, 17:38
Hallo Richi,
so oder ähnlich sollte es funktionieren:
Delphi-Quellcode:
function GetPanelAt(sb: TStatusBar; x, y: Integer; var index: Integer): Boolean;
var
r: TRect;
pt: TPoint;
begin
Result := not sb.SimplePanel;
if Result then
begin
pt := Point(x, y);
index := sb.Panels.Count;
Result := False;
repeat
Dec( index);
if index < 0 then
Exit;
sb.Perform(SB_GETRECT, index, Integer(@r));
Result := PtInRect(r, pt);
until Result;
end;
end;
procedure TDemoForm.AppShowHint( var HintStr: string; var CanShow: boolean;
var HintInfo: THintInfo);
var
index: integer;
sb: TStatusBar;
pt: TPoint;
begin
if (HintInfo.HintControl is TStatusBar) then
begin
sb := TStatusBar(HintInfo.HintControl);
pt := sb.ScreenToClient(Mouse.CursorPos);
if GetPanelAt(sb, pt.X, pt.Y, index) then
begin
HintStr := IntToStr( index);
HintInfo.ReshowTimeout := 50;
end;
end;
end;
procedure TDemoForm.FormCreate(Sender: TObject);
begin
Application.OnShowHint := AppShowHint;
end;
Grüße vom marabu
|
|
Zitat
|