AGB  ·  Datenschutz  ·  Impressum  







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

Klick auf Caption einer Groupbox erkennen

Ein Thema von Keks · begonnen am 22. Mai 2010 · letzter Beitrag vom 22. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#1

Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 16:35
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?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 16:43
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

  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 17:04
Zitat von haentschman:
- ermitteln, ob sich der Mausklick in dem Rechteck des Textes befindet (relativ zur Position der Groupbox)
Dann müssten vermutlich auch verschiedene DPI-Einstellungen berücksichtigt werden, denn der Text sollte sich in der Größe dann auch verändern.

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.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 17:45
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#5

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 17:49
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 17:51
Zitat von Keks:
würde es in meinem Fall schon Sinn machen.
Könntest du das mal bitte erklären? Mir erschließt sich die Funktionalität nämlich nicht. Eventuell findet sich eine bessere Lösung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 17:53
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 ) 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...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 18:05
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;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#9

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 18:08
Ist aber die X-Koordinate immer fest?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Klick auf Caption einer Groupbox erkennen

  Alt 22. Mai 2010, 18:08
OK, und jetzt noch die Anpassung für unterschiedliche Benutzereinstellungen, unterschiedliche Thems, Aero, Windowx XP, Vista und Wundows 7.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:50 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