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 Tab eines TTabControl mit Rechtsklick schließen (https://www.delphipraxis.net/176683-tab-eines-ttabcontrol-mit-rechtsklick-schliessen.html)

Mazen 20. Sep 2013 07:10

Tab eines TTabControl mit Rechtsklick schließen
 
Hallo,
ich habe ein TabControl mit 5 Tabs in Delphi 7. Nun möchte ich mit einem Rechtsklick auf irgendeinen Tab diesen schließen. (Mit einem Popup Menu)
Nur dazu müsste ich irgendwie erkennen über welchem Tab der Rechtsklick gemacht wurde. Die Tabs sind alle variable in der Länge da die Titel sich verändern können. Das einfachste wäre wenn ein Rechtsklick ebenfalls den aktiven Tab wechseln würde, was er aber leider nicht tut :/

Gruß,
Matthias

Bummi 20. Sep 2013 07:26

AW: Tab eines TTabControl mit Rechtsklick schließen
 
TabRect und PtInRect sollten hier helfen.

Delphi-Quellcode:
procedure TForm2.PageControl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
 i:Integer;
begin
  if ssRight in Shift then
      begin
          for I := 0 to TPageControl(Sender).PageCount - 1 do
              if PtInRect(TPageControl(Sender).TabRect(i),Point(x,y)) then
                Showmessage('Click on' + TPageControl(Sender).Pages[i].Caption)

      end;
end;

Mazen 20. Sep 2013 07:35

AW: Tab eines TTabControl mit Rechtsklick schließen
 
Kurz und bündig, vielen Dank :)

DeddyH 20. Sep 2013 07:42

AW: Tab eines TTabControl mit Rechtsklick schließen
 
Wenn es sich wirklich um ein TabControl handelt:
Delphi-Quellcode:
procedure TForm1.MenuItemTestClick(Sender: TObject);
var
  IndexOfTab: integer;
  Maus: TPoint;
begin
  Maus := TabControl1.ScreenToClient(PopupMenu1.PopupPoint);
  IndexOfTab := TabControl1.IndexOfTabAt(Maus.X, Maus.Y);
  if IndexOfTab >= 0 then
    ShowMessage(TabControl1.Tabs[IndexOfTab]);
end;

stahli 20. Sep 2013 12:56

AW: Tab eines TTabControl mit Rechtsklick schließen
 
... "Rechtsklick"

Edit: Ich ziehe meine Aussage zurück. Wo kommt das MenuItem her?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz