Thema: Delphi "StatusPanel.Click"

Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: "StatusPanel.Click"

  Alt 28. Okt 2006, 01:30
Hallo FriFra,

du könntest das OnClick-Ereignis der StatusBar behandeln und dort aus den Mauskoordinaten einen Zeiger auf das Panel ermitteln:

Delphi-Quellcode:
// uses CommCtrl

function GetStatusPanelAt (SB: TCustomStatusBar; P: TPoint): TStatusPanel;
var
  i : Integer;
  R : TRect;
begin
  P := SB.ScreenToClient(P);
  i := 0;
  Result := nil;
  while ((i < SB.Panels.Count) and (Result = nil)) do
    begin
      SendMessage(SB.Handle, SB_GETRECT, i, Integer(@R));
      if PtInRect(R, P) then
        Result := SB.Panels[i];
      Inc (i);
    end;
end;

procedure TForm1.StatusBar1Click (Sender: TObject);
var
  P : TStatusPanel;
begin
  P := GetStatusPanelAt(StatusBar1, Mouse.CursorPos);
  if Assigned(P) then
    ShowMessage (P.GetNamePath);
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat