Hi!
Ich habe ein PageControl mit einem PopupMenu verbunden.
Ich möchte, dass das PopupMenu nur erscheint, wenn man mit rechter Maustaste auf den aktiven Tab/Karteireiter klickt.
Ich nehme an, dass ich dazu die X/Y-Position und Höhe/Breite des aktiven Reiters herausfinden muss und es mit der Mauszeigerposition abgleichen muss, um dann bei OnPopup darauf reagieren zu können.
Oder ich rufe mittels OnMouseDown das PopupMenu bedarfsweise manuell auf.
Wie finde ich die Koordinaten (Rect?) des aktiven Reiters heraus?
Grüße, Jörg
[gelöst] TPageControl: PopupMenu nur für aktiven Karteireiter?
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 374
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
[gelöst] TPageControl: PopupMenu nur für aktiven Karteireiter?
Zuletzt geändert von Jorg3000 am Fr 2. Sep 2022, 10:00, insgesamt 1-mal geändert.
Re: TPageControl: PopupMenu nur für aktiven Karteireiter?
TabRect(Index)
Code: Alles auswählen
type
TMyPageControl = class(TPageControl);
procedure TForm1.PageControl1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
tabIdx: Integer;
R: TRect;
begin
tabIdx := TMyPageControl(PageControl1).IndexOfPageAt(X, Y);
if tabIdx > -1 then
begin
R := PageControl1.TabRect(tabidx);
Caption := Format('L %d, T %d, R %d, B%d', [R.Left, R.Top, R.Right, R.Bottom]);
end else
Caption := '';
end;
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 374
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: TPageControl: PopupMenu nur für aktiven Karteireiter?
Top!
So einfach. Gut dass ich gefragt habe!
Um 23 Uhr gefragt, um 2 Uhr beantwortet. Ich lasse jetzt immer meine Probleme im Schlaf lösen.
Herzlichen Dank!
So einfach. Gut dass ich gefragt habe!

Um 23 Uhr gefragt, um 2 Uhr beantwortet. Ich lasse jetzt immer meine Probleme im Schlaf lösen.

Herzlichen Dank!