AGB  ·  Datenschutz  ·  Impressum  







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

FormCreate

Ein Thema von BLin4ik · begonnen am 2. Apr 2012 · letzter Beitrag vom 4. Apr 2012
Antwort Antwort
BLin4ik

Registriert seit: 23. Nov 2011
40 Beiträge
 
Delphi 5 Enterprise
 
#1

FormCreate

  Alt 2. Apr 2012, 13:58
Hallo,

und zwar möchte ich gerne dass das AutoScroll-Property beim Form erstellen ignoriert wird, sprich er es als False erkennt.
(Im Designer ist es auf True, soll auch so bleiben)
Das Problem bei mir ist, dass ein Bildschirm mit einer anderen Auflösung(z.B. 120DPI) das Form wegen dem AutoScroll verzieht
und es wäre mühsam bei jedem Form AutoScroll auf False zu setzen, deswegen suche ich eine andere möglichkeit, dass er das Form so erstellt
als wäre AutoScroll auf False, damit auch die richtigen Height und Width Werte vom Form berechnet werden.


Habe schon sehr viel probiert(eigene Form-Klasse, AutoScroll := false...)
bin aber bis jetzt noch nicht zur einer gescheiten Lösung gekommen.

Gibt es vielleicht eine möglichkeit durch die Win API?
Ich habe micht vorhin mit SetWindowLong beschäftigt um den Stil zu verrändern, bringt aber auch rein gar nichts.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FormCreate

  Alt 2. Apr 2012, 14:21
Überschreibe Form.Loaded(). Diese Methode wird direkt nach Laden der Eigenschaften aus der ressource aufgerufen
Markus Kinzler

Geändert von mkinzler ( 2. Apr 2012 um 14:24 Uhr)
  Mit Zitat antworten Zitat
BLin4ik

Registriert seit: 23. Nov 2011
40 Beiträge
 
Delphi 5 Enterprise
 
#3

AW: FormCreate

  Alt 2. Apr 2012, 14:59
Überschreibe Form.Loaded(). Diese Methode wird direkt nach Laden der Eigenschaften aus der ressource aufgerufen
Habe ich schon versucht, zwar ist das AutoScroll dann auf False, aber Initialisiert wurde bereits schon alles
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

AW: FormCreate

  Alt 2. Apr 2012, 15:05
Im Prinzip würde man einfach den Setter von AutoScroll (SetAutoScroll) überschreiben und darin die Veränderung abfangen.

Da aber Dieser aber privat und nichtmal virtual ist, bleibt dir wohl keine andere "ordentliche" Möglichkeit, als die DFMs entsprechend abzuändern.

Kennt D5 schon TextDFMs?
Wenn ja, dann könnte man einfach über alle DFMs suchen und ersetzen lassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
BLin4ik

Registriert seit: 23. Nov 2011
40 Beiträge
 
Delphi 5 Enterprise
 
#5

AW: FormCreate

  Alt 2. Apr 2012, 15:19
Im Prinzip würde man einfach den Setter von AutoScroll (SetAutoScroll) überschreiben und darin die Veränderung abfangen.

Da aber Dieser aber privat und nichtmal virtual ist, bleibt dir wohl keine andere "ordentliche" Möglichkeit, als die DFMs entsprechend abzuändern.

Kennt D5 schon TextDFMs?
Wenn ja, dann könnte man einfach über alle DFMs suchen und ersetzen lassen.
Das ist kein Problem, ich habe die Form.pas kopiert und schon versucht AutoScroll abzuändern und auch
bei SetAutoScroll zeigt es aber keine wirkung.
Ich habe es auch mal debuggt, die procedure SetAutoScroll wird nur bei AutoScroll := false abgearbeitet
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#6

AW: FormCreate

  Alt 2. Apr 2012, 15:33
Du kannst nicht einfach VCL-Units ändern.
Denn die wird nur in den Units eingeunden, wo du sie in dein Programm reinlinkst (Uses-Klausel), aber die VCL kennt deine Unit nicht, bzw sie interessiert nicht dafür und geht immernoch auf die Original-Unit los.
Auch das Ändern einer VCL-Unit im Delphi-Verzeichnis bringt nichts, da du voher die komplette VCL (inkl. BPLs) neu kompilieren müßtest und glaub mir, das willst du nicht.
(Tipp: lösch mal die Unit im Delphiordner oder mach einen ordentlichen Fehler dort rein ... das interessiert keine Sau ... wird einfach ignoriert)

SetAutoScroll wird garantiert immer aufgerufen, egal ob AutoScroll auf True oder False gesetzt wird.
Nur ob dafür das SetAutoScroll deiner Kopie oder das der Originaldatei aufgerufen wird, ist eine andere Sache.
Der DFM-Loader ruft es nur beim True auf, da ein False nicht in der DFM drinsteht.
(property AutoScroll ... default False; )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Apr 2012 um 15:36 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: FormCreate

  Alt 4. Apr 2012, 06:36
Du meinst, das die Scrollbars schon sichtbar sind?
Dann mach sie einfach unsichtbar.

@himitsu: Ich denke, er will die DFM nicht verändern, sondern AutoScroll zur Laufzeit ändern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: FormCreate

  Alt 4. Apr 2012, 06:45
Und wieder einmal ein Beleg dafür, dass das erste was man tun sollte, wenn man ein neues Projekt anlegt, ist ein Template für alle weiteren Forms anzulegen, auch wenn es erst mal weder Code noch Komponenten beinhaltet.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#9

AW: FormCreate

  Alt 4. Apr 2012, 08:22
Ich denke, er will die DFM nicht verändern, sondern AutoScroll zur Laufzeit ändern.
Doch, gerade das will er ja eigentlich, so im Prinzip.
In seinen vielen Forms ist das auf True gesetzt und nun hat er keine Lust alle Forms/DFMs zu ändern, sondern will das erst jedesmal beim Programmstart rausgehackt bekommen.

Und bezüglich Bummis Vorschlag.
In den DFMs und PASs das TForm gegen eine eigene Formklasse ersetzen.


PS: Beides (nur DFMs oder DFMs+PASs) hätte man innerhalb der letzten 2 Tage ganz "schnell" ersetzt und währe nun fertig.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 08:27 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