AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption
Thema durchsuchen
Ansicht
Themen-Optionen

OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

Ein Thema von TUX_der_Pinguin · begonnen am 27. Nov 2007 · letzter Beitrag vom 27. Nov 2007
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:15
Ich habe eine TGroupBox auf einem Formular, jetzt soll diese GroupBox verkleiner bzw. vergrößert werden
können, bisher habe ich dies mit OnClick gemacht, was auch prima Funktioniert.

Ich würde jedoch gerne etwas verdeutlichen das man die GroupBox anklicken kann bzw. auf dessen Titel.
Daher habe ich mir überlegt mit OnMouseMove bzw. OnMouseDown zu arbeiten jedoch weiß ich nicht wie ich
prüfen kann ob die Koordinaten X und Y auf TGroupBox.Caption liegen, so das etwas ausgelöst werden kann,
wenn man nur auf den Titel klickt und bei dem rest soll nichts passieren.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

Re: OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:21
Mach die Caption der GroupBox leer und verwende statt dessen ein TLabel, was du an die Stelle positionierst an der die Caption war (oder sein soll). Wenn nun das OnMouseEnter bzw. OnMouseLeave des Labels kommt, ist die Maus auf dem Label und auch nur da ...

(Tux? Ab zu Linux )
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:27
Ähm ja das könnte ich natürlich machen, aber das wäre mir dann doch etwas zu viel Fusch am Bau.


P.s. Ja Linux
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#4

Re: OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:32
Zitat von TUX_der_Pinguin:
Ähm ja das könnte ich natürlich machen, aber das wäre mir dann doch etwas zu viel Fusch am Bau.
Find' ich für das Problem eig. nicht.
Solche Methoden wie mittels Canvas.TextWidth herausfinden wie breit die Caption ist und dann sehen, ob X in dem Bereich liegt und dann auf Font.Height achten etc. finde ich als "Fusch" und zudem als sehr Fehleranfällig ...

Die einzige andere und beste Methode: Leite die ComboBox ab und schreib eine neue Komponente ...
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:45
Das Problem mit dem Label auf der GroupBox fängt ja schon damit an das die Linie der GroupBox durch das
Label gezeichnet wird, dann weiß man vorher nicht ob XP Design aktiv oder nicht aktiv ist evtl. müßte man
da auch noch die Position auf der GroupBox ändern.

Ich will auch nur mal abklopfen ob es so eine möglichkeit gäbe und wie aufwendig das ganze ist, was es ja
doch irgendwie scheint.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

Re: OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:50
Wenn es genau die Caption sein muss wird es etwas komplizierter, klar (grob hab ich sowas ya im letzten Post beschrieben).
Wenn es dir reicht das sich die Maus irgendwo im oberen Bereich befindet, dann ist es ya eig. ganz einfach zu lösen.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:54
Also mit Canvas.TextWidth() und Font.Height bekomme ich zwar die relativen aussmasse der Caption aber
noch lange nicht die Position oder irre ich mich da ?!

Wie soll ich den eine absolute Position in OnMouseMouve mit der relativen Größe der Caption vergleichen?
Was ich bräuchte wäre sowas wie das TextRect der Caption, jedoch weiß ich noch nicht ob man daran kommt
bzw. wie es gehen würde.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#8

Re: OnMouseMove bzw. OnMouseDown auf TGroupBox.Caption

  Alt 27. Nov 2007, 11:58
Zitat von TUX_der_Pinguin:
Also mit Canvas.TextWidth() und Font.Height bekomme ich zwar die relativen aussmasse der Caption aber
noch lange nicht die Position oder irre ich mich da ?!

Wie soll ich den eine absolute Position in OnMouseMouve mit der relativen Größe der Caption vergleichen?
Was ich bräuchte wäre sowas wie das TextRect der Caption, jedoch weiß ich noch nicht ob man daran kommt
bzw. wie es gehen würde.
Das ist klar.
Schau dir die Paint-Routine der GroupBox an.
Ausschnitt:
Delphi-Quellcode:
CaptionRect := Rect(0, 0, Size.cx, Size.cy);
if not UseRightToLeftAlignment then
  OffsetRect(CaptionRect, 8, 0)
else
  OffsetRect(CaptionRect, Width - 8 - CaptionRect.Right, 0);
(Sprich: Sofern UseRightToLeftAlignment ist, beginnt die Caption bei Left = 8 und Top = 0 ...)

Darum sagte ich ya auch, eine Komponente ableiten und eben selber zeichnen sei am "schönsten" ...
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  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 22:08 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