Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: StatusBar: Panel-Breite herausfinden

  Alt 30. Jul 2004, 10:57
Delphi-Quellcode:
// liefert die Abmessungen eines Panels auf einem Statusbar
function GetStatusbarPanelRect(sb: TStatusBar; idx:Integer):TRect;
begin
   SendMessage(sb.Handle,SB_GETRECT, idx, integer(@Result));
end;

// findet das Panel unter dem Punkt Pt
// nützlich, um das angeklickte Statusbar Panel zu ermitteln
function GetStatusBarPanel(sb: TStatusBar; const Pt: TPoint): Integer;
var i: Integer; rcPanel: TRect;
begin
   Result := -1;
   for i := sb.Panels.Count-1 to 0 do
   begin
      GetStatusbarPanelRect(sb, i);
      if PtInRect(rcPanel,Pt) then
      begin
      Result := i;
      Break;
      end;
   end;
end;
Andreas
  Mit Zitat antworten Zitat