![]() |
Klick auf Caption einer Groupbox erkennen
Ich würde gerne eine Aktion durchführen, wenn der Benutzer auf den Caption-Text einer Groupbox klickt. Es gibt zwar onClick aber das wird für die komplette Fläche der Groupbox ausgeführt. Wie kann ich das nun auf den Text einschränken?
|
Re: Klick auf Caption einer Groupbox erkennen
Hallo...
so standardmäßig geht das nicht. Idee: - Mausposition beim Klick bestimmen - ermitteln, ob sich der Mausklick in dem Rechteck des Textes befindet (relativ zur Position der Groupbox) -> if drin then freu :zwinker: :hi: |
Re: Klick auf Caption einer Groupbox erkennen
Zitat:
Es ist kein Standardverhalten, dass man die Caption einer GroupBox anklicken kann bzw. muss. Kannst du das nicht schöner lösen, sonst klicken vermutlich die wenigsten darauf? Es sei denn, das ist für ein Privatprojekt. |
Re: Klick auf Caption einer Groupbox erkennen
Zu Not einfach ein Label drüber legen?! Aber wie schon erwähnt worden ist: ein User würde damit eher weniger rechnen, da ich bisher auch noch keinerlei Anwendung gesehen habe, die sowas kann/macht.
|
Re: Klick auf Caption einer Groupbox erkennen
Naja, ohne jetzt auf Details einzugehen, würde es in meinem Fall schon Sinn machen.
Ein Label drüberlegen würde vielleicht sogar gehen, aber irgendwie finde ich das unhandlich. Vor allem, weil ich das in mehreren Groupboxen brauche. Hat jemand eine konkrete Idee, wie man den Bereich des Textes erkennen kann? |
Re: Klick auf Caption einer Groupbox erkennen
Zitat:
|
Re: Klick auf Caption einer Groupbox erkennen
Ich denke, dass du das nicht so einfach bewerkstelligen kannst, außer du machst da selbst etwas. Eine GroupBox hat ja nur eine Eigenschaft Caption und die GroupBox zeichnet das Ding halt irgendwo hin. Habe bisher noch keine Eigenschaft entdeckt, um das ändern zu können oder evtl. Zugriff auf diverse Parameter zu haben. Du könntest dir mal den Source-Code anschauen, aber ob das wirklich was hilft bezweifle ich.
Oder du nimmst diesen eher dirty Workaround mit dem Label und leitest von GroupBox an (z.B ExtendedLabeledGroupBox :zwinker: ) und machst das alles selbst. Die Caption der GroupBox setzt du quasi intern immer auf einen Leerstring und die Property Caption leitest du auf das Label um. So merkst du nach "außen" nicht wirklich, dass es sich um ein Label handelt und kannst es wie eine normale GroupBox verwenden. @Luckie: nur geratene Features: Auf- und Zuklappen des Content-Bereichs (gibts aber bessere Komponenten dafür), Drag & Drop über die Caption... |
Re: Klick auf Caption einer Groupbox erkennen
Schwupps...
Delphi-Quellcode:
type
TMyGroupBox = class(TGroupBox) public property Canvas; end; procedure TForm1.GroupBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var myRect : TRect; begin with TMyGroupBox(Sender as TGroupBox) do myRect := Rect(8, 0, 8 + Canvas.TextWidth(Caption), Canvas.TextHeight(Caption)); if PtInRect(myRect, Point(X, Y)) then ShowMessage('Click!') end; |
Re: Klick auf Caption einer Groupbox erkennen
Ist aber die X-Koordinate immer fest?
|
Re: Klick auf Caption einer Groupbox erkennen
OK, und jetzt noch die Anpassung für unterschiedliche Benutzereinstellungen, unterschiedliche Thems, Aero, Windowx XP, Vista und Wundows 7. ;)
|
Re: Klick auf Caption einer Groupbox erkennen
Zitat:
|
Re: Klick auf Caption einer Groupbox erkennen
Zitat:
|
Re: Klick auf Caption einer Groupbox erkennen
Zitat:
|
Re: Klick auf Caption einer Groupbox erkennen
Nun ja, wenn ein ThemeManager (oder wie man diese Dinger auch immer heißen mag) installiert ist und der das Zeichnen übernimmt, dann muss diese Position ja nicht mehr unbedingt gewährleistet sein, oder?
Aber warum genau das Verhalten benötigt wird, würde mich echt interessieren!? |
Re: Klick auf Caption einer Groupbox erkennen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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