Autor |
Beitrag |
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Mi 19.10.05 11:49
Hallo,
heute bin ich auf ein Problem gestoßen, das hat ich noch nie...
Ich habe ein Form das vom MainForm gleich am Anfang mit ShowModal aufgerufen wird. Auf dem Form ist ein Button mit der OnClick-Aktion "Close".
Das funktioniert auch, also das Form schliest sich und das MainForm macht weiter.
Wenn ich nun in dem zweiten Form im OnCreate oder OnActivate schon ein Close ausführe ignoriert der diesen Befehl einfach...
Wisst ihr woran das liegen könnte?!
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
jro
      
Beiträge: 31
Win XP Pro
Delphi 7 Enterprise
|
Verfasst: Mi 19.10.05 12:03
Hi,
im OnCreate bzw. im OnActivate ist das Formular noch gar nicht sichtbar (onShow wird erst danach ausgeführt), darum kann das Form auch nicht geschlossen werden.
D.h. entweder du führst close im OnShow aus oder machst ein destroy.
Gruß
Jaqueline
|
|
Chatfix 
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Mi 19.10.05 12:08
Also im OnShow wird mein Close auch ignoriert.
Ein Destroy löst eine Exception aus.
Mir war aber so das ich Close schonmal im OnActivate hatte... Komisch komisch...
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mi 19.10.05 19:39
Zwei Dinge:
Show und Hide (=Close, in groben Zügen) sind in OnCreate und OnDestroy verboten (Status-Konflikte; VCL ist Kacke  ) Daher das Problem:
Zwei Möglichkeiten:
1. Release
2. PostMessage(WM_CLOSE);
Ersteres weiß ich ATM nicht, ob es Probleme verursacht; sollte es aber eigentlich nicht.
Zweiteres wird Dir AUF JEDEN FALL die Form kurz anzeigen. Ein SendMessage funktioniert NICHT!
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 19.10.05 19:42
Wieso erzeugst Du eine Form, um sie im OnCreate wieder schließen zu wollen?  Führe die Abfragen, die zum Schließen führen, vorher aus und erstelle die Form gar nicht erst.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Mi 19.10.05 19:47
_________________ Ist Zeit wirklich Geld?
|
|
matze.de
      
Beiträge: 576
Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
|
Verfasst: Mi 19.10.05 20:20
Schonmal mit "CanClose" abgefragt? Ich kann BenBE nur zustimmen. Ach ja,
3. SendMessage(self.Handle, WM_CLOSE, 0, 0);
mfg matze
_________________ si tacuisses, philosophus mansisses.
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Mi 19.10.05 20:47
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mi 19.10.05 23:27
im onactivate geht close auf jeden fall.... hab ich schon getestet... aber die frage ist ja ob du beide forms closen willst oder nur die zweite form... wenn das komplette programm musste form1.close machen. ansonsten im onactivate geht es sicher... im oncreate nicht
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Chatfix 
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Do 20.10.05 07:55
Mir war eben auch so das Close im OnActivate geht, hier gehts allerdings nicht...
Nein ich will nur das zweite Fenster schliesen und ich habe es jetzt so gelöst wie Christian gesagt hat, ist zwar etwas umständlicher für mich aber geht.
Vielen Dank!
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Do 20.10.05 18:02
welche delphi version benutzt du? bei meinem delphi 6 geht es im onactivate....
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Chatfix 
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Do 20.10.05 23:34
Delphi 7 und ich bin mir sicher das ich das auch schonmal gemacht habe...
Naja egal jeztt...
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
|