Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - PageControl -> Tabsheet -> Bezeichnung per Doppelklick änder
HawkLUED - Do 15.03.07 12:55
Titel: PageControl -> Tabsheet -> Bezeichnung per Doppelklick änder
Hi zusammen,
in meinem Programm existiert eine PageControl-Komponente mit mehreren Tabsheets. Ich möchte es dem Anwender ermöglichen, die Bezeichnung des Tabsheets zu ändern und zwar folgendermassen:
Doppelklick per Maus auf den Tabsheetreiter und/oder per Kontextmenü (ebenfalls auf dem Tabsheetreiter)!
Habe bislang nirgendwo etwas gefunden, wie man dies hinbekommen könnte. Evtl. TTabsheet ableiten, und das Event WM_LBUTTONDBLCLK abfangen und dann anhand der Mausposition entscheiden, ob man sich auf dem Reiter befindet??
Wer kann helfen????
Danke im voraus!
Gruß
Hawk
Robinator - Do 15.03.07 13:12
Soweit ich weis, kannst du den geklickten Tab wirklich nur selber berechnen.
Da du im OnDblClick Event aber keine Mauskoordinaten geliefert bekommst, musst du dir diese schon im OnMouseDown zwischenspeichern.
gruss, Rob
HawkLUED - Do 15.03.07 13:46
Titel: Re: PageControl -> Tabsheet -> Bezeichnung per Doppelklick änder
Man bekommt das Ereignis nur auf der Tabfläche, aber auf dem Reiter kommt nix!
Das muss doch irgendwie gehen!
Gruß
Hawk
IngoD7 - Do 15.03.07 13:55
Titel: Re: PageControl -> Tabsheet -> Bezeichnung per Doppelklick änder
HawkLUED hat folgendes geschrieben: |
Man bekommt das Ereignis nur auf der Tabfläche, aber auf dem Reiter kommt nix!
|
Klicks auf den Reitern gehen an das PageControl,
nicht an das entsprechende TabSheet.
oldmax - Do 15.03.07 14:09
Hi
Also, ich habe weder zu TPageControl noch zu TabSheet ein OnClick oder ähnlich verwertbares gefunden. Daher schlage ich vor, du packst auf deine TabSheet's einfach Panels. Die können OnClick als auch onDblClick- Ereignisse .
Ab hier ist's dann einfach
Delphi-Quelltext
1: 2:
| Pagecontrol1.ActivePage.Caption:= InputBox('neuerName', 'Eingabeaufforderung, 'Vorgabetext'); |
Geht natürlich auch mit allen Objecten, die solche OnClick-Ereignisse verarbeiten.
Gruß oldmax
HelgeLange - Do 15.03.07 14:15
man fängt einfach selbst das Mausereignis ab mit einer Message-procedure. Ein Panel draufzulegen ist verschwenderisch, da diese auch nochmal ein eigenes FensterHandle haben
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!