Autor Beitrag
HawkLUED
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 62

WinXP
Delphi 7 Enterprise, Delphi 2007
BeitragVerfasst: Do 15.03.07 12:55 
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

_________________
Wenn Debuggen der Vorgang ist, Fehler aus einem Programm auszubauen,
dann ist Programmieren der Vorgang, Fehler in ein Programm einzubauen !
Robinator
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 275

WinXP
BDS 2006
BeitragVerfasst: 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

_________________
erare humanum est
HawkLUED Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 62

WinXP
Delphi 7 Enterprise, Delphi 2007
BeitragVerfasst: Do 15.03.07 13:46 
Man bekommt das Ereignis nur auf der Tabfläche, aber auf dem Reiter kommt nix!

Das muss doch irgendwie gehen!

Gruß

Hawk

_________________
Wenn Debuggen der Vorgang ist, Fehler aus einem Programm auszubauen,
dann ist Programmieren der Vorgang, Fehler in ein Programm einzubauen !
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 15.03.07 13:55 
user profile iconHawkLUED 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: 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


ausblenden 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

_________________
Zier dich nich so, ich krieg dich schon....
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: 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

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw