AGB  ·  Datenschutz  ·  Impressum  







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

Repaint beim Form-Resize beschränken

Ein Thema von G-Baumstamm · begonnen am 25. Nov 2011 · letzter Beitrag vom 27. Nov 2011
Antwort Antwort
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#1

AW: Repaint beim Form-Resize beschränken

  Alt 25. Nov 2011, 22:22
Ich weis nicht, ob es bei Dir zutrifft (wegen Skins), aber ich hab' festgestellt, das ParentBackground:=False bei mir oft hilft, wenn DoublePuffered versagt.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Repaint beim Form-Resize beschränken

  Alt 25. Nov 2011, 22:49
Das gibt es aber nicht bei Buttons (und m.E. sowiso nicht unter D7).

Die Optimierung der VCL-Controls-Darstellungen wäre wohl auch ein Punkt pro VCL-Überarbeitung.
Damit würde man allerdings die Kompatibilität alter Formulare gefährden.
Vielleicht soll ja auch FireMonkey einen entsprechenden Wechsel einläuten, aber diesbezüglich bin ich noch etwas skeptisch.

Mit D7 kannst Du mal die FlickerReduce.Pas testen (wenn Du sie noch irgendwo findest).
Ich fand sie damals hilfreich (allerdings ohne Skin-Controls). Unter D2009 allerdings dann nicht mehr.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#3

AW: Repaint beim Form-Resize beschränken

  Alt 25. Nov 2011, 23:48
@Thom:
Du hast schon recht mit deinen Worten. Ich meinte aber mit "VCL wegschmeissen" eher, dass man kaum drumherum kommt, das ganze selbst von Grund auf zu bauen, wenn man es richtig machen will.
Die ganzen SkinControl-Komponenten, die es käuflich gibt, sind leider meist "All-In-Wonder" Tüten, die in allen erdenklichen Fällen funktionieren müssen, und deswegen haben sie oft lahmen Code drin und sind kaum optimiert.
(Wenn man sich den Sourcecode von so manchen SkinControls ansieht, ich will hier keine Namen nennen..hust...sieht man das schon...)

Man muss die VCL natürlich nicht wegschmeissen, um es auch vernünftig machen zu können, allerdings würde ich dann gleich auf SDL+DirectX oder SDL+OpenGL gehen, wenn ich mir alles selbst bauen würde und die VCL hinter mir lassen.
Das meinte ich damit. Zwar mega viel Arbeit, aber durchaus interessant und man lernt viel, ohne den Ballast der VCL mitzuschleppen, bei der man eh jedes Control modifizieren müsste.

Geändert von blackfin (26. Nov 2011 um 00:14 Uhr)
  Mit Zitat antworten Zitat
G-Baumstamm

Registriert seit: 9. Jan 2010
63 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Repaint beim Form-Resize beschränken

  Alt 25. Nov 2011, 23:56
Die VCLFlickerReduce.pas muss ich doch nur bei uses mit aufführen, oder ?

Wenn ja, dann bringt es leider auch garnix ...

Auch das mit dem ParentBackground leider keine Veränderung. Grr. Das Ding will nich
Daniel NR
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Repaint beim Form-Resize beschränken

  Alt 26. Nov 2011, 00:05
Ja, die FlickerReduce musste nur in die uses aufgenommen werden.
Vermutlich wird das dann mit den AlphaControls nicht funktionieren.

Mit vertretbarem Aufwand wirst Du wohl keine Lösung finden.
Ich würde das dann so hinnehmen und nicht übermäßig dramatisieren

So oft wird der User die Formulargröße sicher nicht ändern bzw. sich nicht über etwas Flackern dabei aufregen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
G-Baumstamm

Registriert seit: 9. Jan 2010
63 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Repaint beim Form-Resize beschränken

  Alt 26. Nov 2011, 00:42
Auf die Gefahr hin damit zu nerven, wie siehts mit diesem Vorschlag aus ?

Um nochmal auf meinen Ausgangsvorgang zurückzukommen: kann man nicht irgendwie ne Region definieren, und diese dann für die Dauer des Resizens vom Update ausschließen? Also ganz naiv einfach eine Methode finden, Rect(0,0,500,500) [oder wie viel man halt braucht, nur so als Beispiel] in nen Handle zu transferieren und den dann mit LockWindowUpdate oder der entsprechenden Message während des Resizens einfach in Ruhe zu lassen ? Wie gesagt, ich hab davon nicht viel Ahnung, weiß der Geier ob das irgendwie geht, ob das Sinn machen würde oder obs da was besseres gibt ...
Und hast schon Recht, is nicht so dramatisch wenns nicht geht, dann mach ich einfach ne Form die man nich resizen kann und gut is

Trotzdem, finde es verwunderlich, das es für sowas keine Lösung gibt, da muss der programmiertechnische "Murks" der da in dem Kram drin ist ja wirklich tief sitzen, wenn das selbst die Experten hier nicht umgehen können ...
Daniel NR
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Repaint beim Form-Resize beschränken

  Alt 26. Nov 2011, 00:52
Auf die Gefahr hin damit zu nerven, wie siehts mit diesem Vorschlag aus ?

Um nochmal auf meinen Ausgangsvorgang zurückzukommen: kann man nicht irgendwie ne Region definieren, und diese dann für die Dauer des Resizens vom Update ausschließen? Also ganz naiv einfach eine Methode finden, Rect(0,0,500,500) [oder wie viel man halt braucht, nur so als Beispiel] in nen Handle zu transferieren und den dann mit LockWindowUpdate oder der entsprechenden Message während des Resizens einfach in Ruhe zu lassen ? Wie gesagt, ich hab davon nicht viel Ahnung, weiß der Geier ob das irgendwie geht, ob das Sinn machen würde oder obs da was besseres gibt ...
Nicht, dass ich wüsste.


Trotzdem, finde es verwunderlich, das es für sowas keine Lösung gibt, da muss der programmiertechnische "Murks" der da in dem Kram drin ist ja wirklich tief sitzen, wenn das selbst die Experten hier nicht umgehen können ...
Na ja, die VCL stammt vermutlich aus einer Zeit, in der man es schon genial fand, überhaupt Formulare zu nutzen und diese rezisen zu können.

Mir fällt gerade ein: Ich habe mal ein Demovideo gesehen, in dem ein FireMonkey-Formular stufenlos vergrößert und dabei flackerfrei gezoomt wurde. Also die VCL ist wohl einfach in der Beziehung (und nicht nur da) recht veraltet.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Repaint beim Form-Resize beschränken

  Alt 26. Nov 2011, 07:53
Hallo,

gab es bei D7 schon Anchors ?
Wenn ja, nimm die mal komplett beim PageControl raus
setze die Werte direkt im FormResize.


Heiko
Heiko
  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 19:18 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