Autor Beitrag
V!P3R
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: So 25.11.07 16:07 
das programm lässt sich nur noch über den Taskmanager beenden


gibt es noch ne andere möglichkit auser:

ausblenden Delphi-Quelltext
1:
Form1.Close;					

oder

ausblenden Delphi-Quelltext
1:
Form1.Destroy;					

oder

ausblenden Delphi-Quelltext
1:
Form1.CloseQuery;					


bitte helft. das prog an sich ist gut geworden, nur wenn mans nicht schließen kann...

EDIT: Ich habe bei Form1 bei Ereignisse OnCloseQuery benutzt, aber jez kann mans GAR nicht mehr schließen.

MfG


Zuletzt bearbeitet von V!P3R am So 25.11.07 16:28, insgesamt 1-mal bearbeitet
Herr Bananerama
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 130



BeitragVerfasst: So 25.11.07 16:27 
Hi,

Destroy ist nicht zum schließen geeignet sonder ist der Destruktor der Form.

Zitat:
CloseQuery wird automatisch aufgerufen, wenn versucht wird, das Formular zu schließen. CloseQuery gibt true zurück, wenn das Formular geschlossen werden kann. Andernfalls wird das Formular durch Rückgabe von false am Schließen gehindert. {Delphi Hilfe!!!)

-> ist also auch nicht geeignet

Close weiß ich nicht was macht aber ist aufjedenfall auch nicht geeignet^^

Du kannst aber aufjedenfall HALT benutzen

mfg Herr Bananerama
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: So 25.11.07 17:11 
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1335
Erhaltene Danke: 118

Win 10
RIO, CE, Lazarus
BeitragVerfasst: So 25.11.07 17:14 
Im Hauptfenster Close aufrufen ist normalerweise alles was du machen musst.

Eine nicht ganz so Tolle, aber immernoch verwendbare Lösung ist Application.Terminate.

Wenn du was für den Ereignisshandler von OnCloseQuery geschrieben hast solltest du das erstmal auskommentieren.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 25.11.07 17:24 
user profile iconHerr Bananerama hat folgendes geschrieben:

Close weiß ich nicht was macht aber ist aufjedenfall auch nicht geeignet^^

Du kannst aber aufjedenfall HALT benutzen
Was ist an Close auszusetzen? Soweit ich weiß, gar nichts. Und HALT ist ne genz tolle Sache. Wenn mein Auto anhalten soll, such ich mir auch ne schöner Mauer und fahr dagegen...

Ist die Form, die mit Close geschlossen werden soll, die Hauptform deiner Anwendung?

_________________
We are, we were and will not be.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 25.11.07 17:32 
Close ist der übliche Weg um ein Programm oder Fenster zu schließen.

Ist das Fenster das Mainfenster, also das Hauptfenster der Applikation, dann wird bei Close auch das Programm beendet. Ist es ein normales Fenster, wird bei Close nur das Fenster geschlossen.

Es ist möglich das Mainfenster neu zuzuordnen.

Application.Terminate ist in etwa gleich mit Close des Hauptfensters. Hier wird auch der Speicher freigegeben.

Halt ist bei reinem Pascal ohne OOP eine Möglichkeit, aber nicht in einem Fenster.

_________________
Popov
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 25.11.07 17:50 
user profile iconPopov hat folgendes geschrieben:
Es ist möglich das Mainfenster neu zuzuordnen.

Kannst Du mir zeigen, wie das (elegant) geht? Oder muss man Tricks anwenden?

_________________
Na denn, dann. Bis dann, denn.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 25.11.07 18:33 
Man muß etwas tricksen. Hab es bisher auch nur einmal gemacht. Geht aber.

_________________
Popov
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 25.11.07 18:43 
user profile iconV!P3R hat folgendes geschrieben:
EDIT: Ich habe bei Form1 bei Ereignisse OnCloseQuery benutzt, aber jez kann mans GAR nicht mehr schließen.
Kann es sein, dass du CanClose auf false setzt dort? Weil dann lässt sich das Fenster natürlich nicht schließen. Und wenn es das Hauptfenster ist, eben auch die Anwendung nicht.
Um diese zu schließen kann man zwar auch Application.Terminate benutzen, wenn man das Hauptfenster nicht direkt ansprechen möchte, aber wenn das Hauptfenster mit CanClose in OnCloseQuery unschließbar ist, nutzt das alles nix.

user profile iconPopov hat folgendes geschrieben:
Man muß etwas tricksen. Hab es bisher auch nur einmal gemacht. Geht aber.
Tricksen? Das kannst du in den Projektoptionen festlegen.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 25.11.07 18:54 
user profile iconjaenicke hat folgendes geschrieben:
user profile iconPopov hat folgendes geschrieben:
Man muß etwas tricksen. Hab es bisher auch nur einmal gemacht. Geht aber.
Tricksen? Das kannst du in den Projektoptionen festlegen.


Ich nehme an er will wissen wie es zur Laufzeit geht.

_________________
Popov
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 25.11.07 20:25 
user profile iconPopov hat folgendes geschrieben:
Ich nehme an er will wissen wie es zur Laufzeit geht.

Stimmt, das will er, aber egal.

_________________
Na denn, dann. Bis dann, denn.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 26.11.07 10:11 
Na gut, das geht allerdings auch recht einfach:
ausblenden Delphi-Quelltext
1:
Pointer((@Application.MainForm)^) := Form2;					
Schließt du nach dieser Zeile die zweite Form, wird die ganze Anwendung geschlossen. Das basiert darauf, dass MainForm zwar eine ReadOnly Eigenschaft ist, dabei aber direkt auf die dahinterliegende Variable zugreift und keine Getter-Methode benutzt.

Allerdings ist das Anwendungskonzept IMHO (vorsichtig ausgedrückt) nicht sinnvoll, wenn man das Hauptfenster zur Laufzeit ändern muss. Aber funktionieren tut es, auch wenn saubere Programmierung etwas anderes ist. (Wie gesagt, das ist meine persönliche Meinung.)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mo 26.11.07 10:15 
:shock: Aua. Gut, was dazugelernt, ich werde es aber nicht anwenden.

_________________
Na denn, dann. Bis dann, denn.
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Fr 30.11.07 18:00 
Titel: RE
dieser Thred wird immer größer und größer, aber ich habe ne weie rumprobiert, und ich kann nur folgendes empfehlen:
wenn ihr auf den [X] klick im Frm1 klickt, soll sich das programm nicht sofort beenden. also macht ihr folgendes:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=False;
Form2.Show;
end;

Form2 ist das zweite formular, indem zum beispiel stehen kann: " wollen sie das dokument speicher? "
Klick auf 'nein'

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TEnde.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;

klick auf ja...und weiter gehts.

vielen dank für die hilfe.

MfG
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Fr 30.11.07 18:42 
Da finde ich diese Lösung deutlich eleganter: :P
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  canclose := (MessageDlg('Wollen Sie das Programm wirklich beenden ?',mtConfirmation, [mbYes, mbNo], 0) = mrYes);
end;


Grüße
Marc
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Fr 30.11.07 19:02 
Ansichts - und Geschmackssache
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Fr 30.11.07 20:25 
user profile iconV!P3R hat folgendes geschrieben:
Ansichts - und Geschmackssache

Ähm, mit Marcs Methode brauchst du das gesamte zweite Formular nicht...
Aber das hatten wir doch schonmal irgendwo in einem Thread heute, oder?

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 01.12.07 13:54 
könnte mal bitte einer diesen Thred schließen,
DIE FRAGE IST DOCH SCHON LÄNGST BEANTWORTET
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Sa 01.12.07 13:56 
user profile iconV!P3R hat folgendes geschrieben:
könnte mal bitte einer diesen Thred schließen,
DIE FRAGE IST DOCH SCHON LÄNGST BEANTWORTET

Mäßige bitte deinen Tonfall! :mahn:
Was spricht denn dagegen, über alternative Lösungsvorschläge weiter zu diskutieren?

cu
Marc
Atreyu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 137


Delphi 7 Enterprise
BeitragVerfasst: Sa 01.12.07 14:05 
Davon abgesehen, dass Marcs Lösung tatsächlich wesentlich eleganter ist...