AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechtsklick auf Tab aktiviert Tab

Ein Thema von CalganX · begonnen am 14. Mai 2003 · letzter Beitrag vom 2. Dez 2005
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Rechtsklick auf Tab aktiviert Tab

  Alt 14. Mai 2003, 15:19
Hi,
schlagt mich nicht, wenn wir das schon mal hatten: ich hab gesucht, aber nichts gefunden...

Also: wenn ich einem TabControl (PageControl in meinem Fall) ein PopUp-Menü zuweise, dann wird dieses ja immer geöffnet, wenn ich rechts auf einen Tab klicke (in der Registerliste). Wie kann ich es nun so entwickeln, dass, wenn ich nun rechts draufklicke, der rechts-geklickte Tab aktiviert wird?

Chris
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Rechtsklick auf Tab aktiviert Tab

  Alt 26. Jan 2005, 02:36
Hi,

Hast du eine Lösung gefunden? Sonst kann ich dir morgen eine geben...
Thomas
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#3

Re: Rechtsklick auf Tab aktiviert Tab

  Alt 26. Jan 2005, 05:49
Hi, ich hatte ma das hier gefunden

Delphi-Quellcode:
function TfmMain.InRect(X, Y: Integer; R: TRect): Boolean;
begin
Result:=(X>=R.Left) and (X<=R.Right) and (Y>=R.Top) and (Y<=R.Bottom)
end;
Delphi-Quellcode:
function TfmMain.GetTabSheet(PageControl: TPageControl; Position: TPoint): TTabSheet;
var
  iCnt: Integer;
begin
Result:=nil;
iCnt:=0;

  while (iCnt<=PageControl.PageCount-1) and not (InRect(Position.X,Position.Y,PageControl.TabRect(iCnt))) do
  Inc(iCnt);

if iCnt<PageControl.PageCount
then Result:=PageControl.Pages[iCnt]
end;
Delphi-Quellcode:
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;
Ich hoffe, dass es dir hilft.

Bis dennsen
Sebastian
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#4

Re: Rechtsklick auf Tab aktiviert Tab

  Alt 2. Dez 2005, 15:56
habe im moment das gleiche problem wie der thread-starter.
die lösung von SebE empfinde ich doch als zu arg getrickst.

geht das nicht irgendwie "richtig"? es gibt doch sogar einen grafischen mouseover effekt für die tabs.
wenn man noch abfragen könnte, zu welchem tab dieses mouseover gehört, wäre das anwählen von diesem ja kein problem mehr.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Rechtsklick auf Tab aktiviert Tab

  Alt 2. Dez 2005, 16:14
es gibt:
Delphi-Quellcode:
procedure TFoFileTrans.ReAusgabeMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
und dazu gibt es (OH):
Zitat:
Die Methode IndexOfTabAt gibt den Index des Registers an dem angegebenen Punkt an.

Delphi-Syntax:

function IndexOfTabAt(X, Y: Integer): Integer;

C++ Syntax:

int __fastcall IndexOfTabAt(int X, int Y);

Beschreibung

Mit IndexOfTabAt können Sie feststellen, welches Register sich an dem durch X und Y angegebenen Punkt befindet. Wenn sich der Punkt mit der X-Koordiante X und der Y-Koordinate Y auf einem Register befindet, gibt IndexOfTabAt den Null-Offset-Index des Registers in der Eigenschaft Tabs (TTabControl) oder in der Eigenschaft Pages (TPageControl) zurück. Wenn sich der durch X und Y definiert Punkt nicht auf einem Register befindet, gibt IndexOfTabAt –1 zurück.
damit kann man dann doch herausfinden, auf welches Tab geklickt wurde.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 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