Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi "StatusPanel.Click" (https://www.delphipraxis.net/79773-statuspanel-click.html)

FriFra 27. Okt 2006 23:37


"StatusPanel.Click"
 
Leider verfügt das StatusPanel ja über kein Click-Ereignis. Gibt es eine Möglichkeit auf Clicks auf ein StatusPanel zu reagieren?

Hawkeye219 28. Okt 2006 00:30

Re: "StatusPanel.Click"
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 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