![]() |
TabSheet unter der Maus
Wie finde ich raus, auf welches TabSheet ich in einem PageControl geklickt habe?
Ich will ein PopUp einbauen, indem z.B. steht: "Tab schließen". Nun wird das aktuelle Tab geschlossen, welches aber nicht das ist, was unter der Maus sitzt. Oder geht das, dass wenn ich mit der rechten Maustaste auf die Tabs klicke, dass dann das darunterliegende Tab als Aktuelles aufgerufen wird? Kann jmd helfen? -> Danke |
Re: TabSheet unter der Maus
hi!
du kannst das mit TabIndex machen.
Delphi-Quellcode:
so kannst du in Edit1 ausgeben welche Tabnummer (beginnend bei 0) gerade ausgewählt ist.
procedure TForm1.Button1Click(Sender: TObject);
begin Edit1.Text:= IntToStr(PageControl1.TabIndex); end; um beim auswählen eines TabSheets ein anderes anzuzeigen, könntest du folgendes verwenden:
Delphi-Quellcode:
dann wird, wenn du das erste TabSheet auswählst, das zweite angezeigt.
procedure TForm1.PageControl1Change(Sender: TObject);
begin if PageControl1.TabIndex= 0 then PageControl1.TabIndex:= 1; end; ich hoffe ich konnte dir damit ein bisschen weiterhelfen. :zwinker: |
Re: TabSheet unter der Maus
Em, naja.
Ich wollte eigentlich wissn, wie ich raus bekomme welcher TabSheetIndex unter der Aktuellen MausPosition ist. Da sich bei Rechtsklick der Index nicht ändert. :( |
Re: TabSheet unter der Maus
ach so meist du das. :stupid:
hm...da fällt mir spontan nur ein, dass man da vielleicht ein so etwas wie ein Raster verwenden kann, das ist nicht gerade die besste Lösung, aber na ja. das würde ich dann in etwa so machen:
Delphi-Quellcode:
das musst du dann für deine zwecke umschreiben. ich hab jetzt angenommen, dass das TabSheet (wo man drauf klickt) 70 breit ist und der PageControl zwei sheets Sheets hat.
procedure TForm1.PageControl1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); if X> 70 then begin PageControl1.TabIndex:= 1; end else begin PageControl1.TabIndex:= 0; end; |
Re: TabSheet unter der Maus
|
Re: TabSheet unter der Maus
Erstma en fettes Dankeschön an alle.
Hab's so gemacht:
Code:
Genau so wollt ich es haben - Danke Jens Schumann
procedure TfmMain.PageControlContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
var TabSheet : TTabSheet; begin TabSheet:=GetTabSheet(PageControl,MousePos); if TabSheet<>nil then PageControl.ActivePage:=TabSheet // Nur <> Nil wenn im TabRect geklickt wurde !!! end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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