Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TAdvTabsSet: Tabs mit rechter Maustaste markieren (https://www.delphipraxis.net/59632-tadvtabsset-tabs-mit-rechter-maustaste-markieren.html)

kurtm1 26. Dez 2005 11:49


TAdvTabsSet: Tabs mit rechter Maustaste markieren
 
Also ich habe ein TAdvTabset (http://tmssoftware.com/apc.htm) in dem einige Tabs eingefügt wurden. Zusätzlich gibt es für die Tabs ein PopUp Menü.

Jetzt möchte ich, dass ich auch mit der rechten Maustaste eine neue Tab aktivieren kann, und es soll dabei auch das PopUp Menü aufklappen.

Soweit sogut hab ich folgenden Code angewandt:
Delphi-Quellcode:
with MediaTabs do                                  
        TabIndex:=ItemAtPos(ScreenToClient(Mouse.CursorPos));
        if MediaTabs.TabIndex=-1 then
        MediaTabs.TabIndex:=0;
Dieser steht im OnPopup Ereignis des PopUpMenüs. Eigentlich funktioniert ja alles, falls man jedoch neben einem Tab (wo keines mehr ist) mit der rechten Maustaste hinklickt, bekomme ich die Fehlermeldung, dass der Tabindex -1 nicht gesetzt werden kann (Listenindex überschreitet ddas Maximum).

Wie kann ich diese Fehlermeldung abfangen?

thx

aps 26. Dez 2005 12:42

Re: TAdvTabsSet: Tabs mit rechter Maustaste markieren
 
Delphi-Quellcode:
TabIndex:=ItemAtPos(ScreenToClient(Mouse.CursorPos));
if TabIndex=-1 then
  MediaTabs.TabIndex:=0
else
  MediaTabs.TabIndex:=TabIndex
{end if TabIndex=-1};

kurtm1 26. Dez 2005 13:19

Re: TAdvTabsSet: Tabs mit rechter Maustaste markieren
 
ja das wäre die logische Lösung, funzt bei mir jedoch nicht, und habe ich vorher auch schon probiert..

kurtm1 27. Dez 2005 08:36

Re: TAdvTabsSet: Tabs mit rechter Maustaste markieren
 
ok habe nun eine funzende, einfache Lösung gefunden:

Delphi-Quellcode:
procedure TForm1.AdvTabSetMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
        if MediaTabs.ItemAtPos(point(x,y))<>-1 then
        MediaTabs.TabIndex:=MediaTabs.ItemAtPos(point(x,y));
end;
:D

aps 27. Dez 2005 19:15

Re: TAdvTabsSet: Tabs mit rechter Maustaste markieren
 
Zitat:

Zitat von kurtm1
ja das wäre die logische Lösung, funzt bei mir jedoch nicht, und habe ich vorher auch schon probiert..

Nein. Du hast direkt auf MediaTabs.TabIndex geschrieben, ich auf eine neue Variable.


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