| |
| |
Re: Windowstate und Resize- #14188 in section [727848] |
| Sec: |
(51) MS-Visual FoxPro 9.0 |
| Von: |
Peter Pledel |
| An: |
Olaf Doschke |
| Am/Um: |
09.09.2010 07:40:19 |
Hallo Olaf, den Resize erst im Activate zu machen, mit den besagten Verrenkungen, hat aber den Nachteil, das da die Form schon sichtbar ist. Das wollte Stefan aber ja vermeiden. Peter | |
--from Newsreader at Mittwoch, 8. September 2010; 17:20:00-- >dann schreib im show einfach thisform.resize(). Der Code im show wird nach >dem LISA - Prinzip einmalig vor dem activate ausgeführt. Ich kann bestätigen, daß es funktioniert, z.B. mit: o = CreateObject("maxForm") o.Show() Read Events Define Class maxForm as Form width = 400 height = 300 Add Object edit1 as editbox With; width = 380, ; height = 280, ; top = 10,; Left = 10,; Anchor = 15 Procedure Show() Lparameters nStyle && If goApp.oConfig.MaxForm o.ä. Thisform.WindowState = 2 && Endif EndProc Procedure Unload() Clear Events EndProc EndDefine Allerdings sobald Du statt Show() aufzurufen das Formular per o.Visible = ..T. sichtbar machst, läuft Show() nicht. Show() ist kein Event wie Load(), Init() und Activate(), die Eselsbrücke LISA hat da einen Haken. Aus dem Grund wird in Framework-Formklassen eher die Verrenkung gemacht einmaliges ins Activate zu tun und dann nach mit einem Flag, was man setzt eine zweite Ausführung zu verhindern. Allerdings läuft Show() bei SCX-Formularen, solange man da nicht die NOSHOW Klausel nutzt und dann wiederum mit Visible statt Show() Methode arbeitet. Egal wie man es genau macht, das läßt sich dann natürlich in Abhängigkeit eines Konfigurationszustandes machen oder sein lassen und man hat ja selbst in der Hand, ob man Show() nun aufruft oder nicht. Bleibt noch so ein ungutes Restgefühl, daß die Verrenkungen im Activate() statt Show() zu nutzen noch einen anderen Sinn haben, als in jedem Fall zu laufen, egal wie der Nutzer einer Klasse oder SCX ein Formular nun aufruft. Tschüß, Olaf.
|
|
|
|
|