AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Größenänderung der Komponente im Formulardesigner
Thema durchsuchen
Ansicht
Themen-Optionen

Größenänderung der Komponente im Formulardesigner

Ein Thema von MatthiasW · begonnen am 12. Feb 2005 · letzter Beitrag vom 13. Feb 2005
Antwort Antwort
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#1

Größenänderung der Komponente im Formulardesigner

  Alt 12. Feb 2005, 18:05
Wie kann ich ermitteln ob eine Größenänderung meiner Komponente im Formulardesigner beendet wurde? Prinzipiell kann ich ja Größenänderungen mit WMSize feststellen. Aber wie kann ich jetzt ermitteln ob der Benutzer die Maustaste wieder losgelassen hat und die Größenänderung damit beendet ist? Ich möchte eine Aktion erst dann starten wenn die Größenänderung beendet ist.

Hat jemand eine Idee wie ich meinem Ziel näher kommen kann?
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#2

Re: Größenänderung der Komponente im Formulardesigner

  Alt 13. Feb 2005, 01:43
Hallo MatthiasW!

Zitat von MatthiasW:
Aber wie kann ich jetzt ermitteln ob der Benutzer die Maustaste wieder losgelassen hat und die Größenänderung damit beendet ist? Ich möchte eine Aktion erst dann starten wenn die Größenänderung beendet ist.
Erzeuge im Objektinspektor per Doppelklick die Ereignisbehandlungsmethode für OnMouseUp. Dort rein gehören dann alle weteren Aktionen.

Viel Erfolg wünscht

schöni
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Größenänderung der Komponente im Formulardesigner

  Alt 13. Feb 2005, 02:42
Moin!

Zitat von schöni:
Hallo MatthiasW!

Zitat von MatthiasW:
Aber wie kann ich jetzt ermitteln ob der Benutzer die Maustaste wieder losgelassen hat und die Größenänderung damit beendet ist? Ich möchte eine Aktion erst dann starten wenn die Größenänderung beendet ist.
Erzeuge im Objektinspektor per Doppelklick die Ereignisbehandlungsmethode für OnMouseUp. Dort rein gehören dann alle weteren Aktionen.

Viel Erfolg wünscht

schöni
Hmm, versuch mal mit dem OI einer Komponente zur Designzeit was zu zu weisen welches die Komponente gerade in der Designzeit schon braucht.

Er ist in der Designzeit, daher nützt ihm sowas nicht.

Mal eine andere Frage: Brauchst du diese Informationen um nicht ständig etwas neu aufbauen zu müssen was wiederrum Zeit kostet und damit das resizen zu einer Qual macht? Wenn ja, dann löse ein invalidate beim Resize aus und schaue im Paint nach, ob sich die Grösse geändert hat - wenn ja, dann dort das benötigte neu erstellen. Hintergrund: Das "dreckig" markieren von Bereichen einer DC wird von Windows automatisch akkumuliert und zusammen gefasst. Das neu zeichnen wird in regelmässigen Abständen aufgerufen so lange etwas anliegt, aber gleichzeitig fasst es viele Anforderungen zusammen. Dadurch wird auch das Zeichnen entkoppelt.

Andere Möglichkeit: Einfach die SetBounds() Methode überschreiben - diese wird eh immer am Ende von Resizing aufgerufen und dann entsprechend reagieren. Beachte: Erst nach dem Inherited im SetBounds() hat die Komponente die neue Grösse...

MfG
Muetze1
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Größenänderung der Komponente im Formulardesigner

  Alt 13. Feb 2005, 10:12
Zitat von Muetze1:
Andere Möglichkeit: Einfach die SetBounds() Methode überschreiben - diese wird eh immer am Ende von Resizing aufgerufen und dann entsprechend reagieren. Beachte: Erst nach dem Inherited im SetBounds() hat die Komponente die neue Grösse...
ich glaube die wird aber doch nach jeder Größenänderung aufgerufen und nicht erst wenn die Maustaste wieder losgelassen wurde.

Zu dem was ich machen will: ich möchte, wenn eine Eigenschaft "IntegralHeight" gesetzt ist und die Gesamthöhe nicht genau ein vielfaches eines festgelegten wertes ist, die Controlhöhe neu setzen. Diese kann ich aber nicht solange tun wie die Größe noch verändert werden kann, denn dann wäre eine Größenänderung mit der Maus (im Formulardesigner) sehr schwierig bis unmöglich. Ich kann also meine funktion zum prüfen und setzen erst drauf loslassen wenn die Größenänderung abgeschlossen ist.
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Größenänderung der Komponente im Formulardesigner

  Alt 13. Feb 2005, 10:22
Hallo,

meine Vermutung hat sich als falsch erwiesen, das "SetBounds" wird doch erst ausgelöst wenn die Maustaste losgelassen wurde.

Danke für den tipp so klappst
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Größenänderung der Komponente im Formulardesigner

  Alt 13. Feb 2005, 14:36
Moin!

Vor allem kannst du dort vor dem Inherited Aufruf die Höhe noch anpassen auf ein Vielfaches deiner Eigenschaft.

MfG
Muetze1
  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:36 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