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



BeitragVerfasst: So 25.11.07 11:33 
hi,
wie kann man klick auf [X] mit einer aufgabe verbinden?

wenn man bei einem selbsterstellten programm auf [X] klickt, fliegt man sofort raus (programm beendet sich)

ich will jetzt aber sone funktion wie in word ein bauen, sodass er mich fragt ob ich speichern will, bevor er sich beendet.

Wie kommt man and die Funktion von [X] drann, sodass man sie ändern kann?


MfG


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 19.02.2008 um 19:20
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 25.11.07 11:36 
Die Ereignisse OnClose und OnCloseQuery mal angucken.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: So 25.11.07 12:04 
so weit so gut,
aber:

Ich lasse "OnClose" folgenden Befehl ausführen:

ausblenden Delphi-Quelltext
1:
Form2.Showmodal					


aber sobald ich aufForm2.Button1 Klicke, wird Form1 (also das Hauptfenster) geschlossen, obwohl ich eigentlich den Code Form2.Close auf Form2.Button1 Click habe,


Warum ist das so?

Hat wer schon mal das gleiche problem gehabt

MfG
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 25.11.07 13:13 
ausblenden Delphi-Quelltext
1:
CanClose := False;					

Wenn du das im OnCloseQuery setzt, wird nix geschlossen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: So 25.11.07 13:38 
wenn man jetzt raus will sagt delphi:

ausblenden Delphi-Quelltext
1:
Aus einem sichtbaren Fenster kann kein modales werden.					

obwohl ich Form1 nie als modales fenster eingetragen hab
(Form1 ist doch das einzige "SICHTBARE" oder?)


was ist hier falsch??

MfG
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: So 25.11.07 16:05 
jetzt hab ich den fehler mehr oder weniger entdeckt

Und zwar: sobald man in Form1 auf [x] klickt wird zwar das gemacht was ich will, aber gleichzeitig schließt sich auch Form1.

Wie kann man das ausstellen, sodass sich form1 auf [X] NICHT MEHR schließt??
(OnClose und OnQueryClose sind da gleich)

EDIT:

ausblenden Delphi-Quelltext
1:
CanClose:=False;					

klappt nicht, (siehe oben)

ausblenden Delphi-Quelltext
1:
Aus einem sichtbaren Fenster kann kein modales werden.					



MfG
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 16:26 
user profile iconV!P3R hat folgendes geschrieben:
EDIT:

ausblenden Delphi-Quelltext
1:
CanClose:=False;					

klappt nicht, (siehe oben)

ausblenden Delphi-Quelltext
1:
Aus einem sichtbaren Fenster kann kein modales werden.					


Ist der normale Weg um das Fenster beim Beenden zu hindern. Vielleicht hast du dir da noch zusätzlich zusammengemurkst, so daß es jetzt Fehlermeldungen gibt, aber bei CanClose:=False wird verhindert, daß das Fenster geschlossen wird.

_________________
Popov
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Fr 30.11.07 17:01 
Titel: RE
Ich kann 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
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 17:08 
user profile iconV!P3R hat folgendes geschrieben:

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

Schau dir mal MessageDlg an, damit wirst du dir jede Menge Arbeit ersparen.

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

WIN XP Prof.
Delphi 2005 PE, Turbo Delphi 2006, PHP (Eclipse)
BeitragVerfasst: Fr 30.11.07 22:17 
genau, mit messagedlg geht das perfekt, und nicht mit application.terminate beenden, sondern einfach nur mit "close;"

_________________
21 ist nur die halbe Wahrheit...
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 01.12.07 12:55 
könnte mal bitte einer diesen Thred schließen,
DIE FRAGE IST DOCH SCHON LÄNGST BEANTWORTET
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



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

Und warum? Dami jemand, der dazu noch eine Frage hat wieder einen Thread zum gleichen Thema aufmacht?
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 01.12.07 13:46 
was soll man den noch für fragen haben??

EDIT: diesen beitrag bitte einfach nicht lesen!


Zuletzt bearbeitet von V!P3R am Sa 01.12.07 14:12, insgesamt 1-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.12.07 14:05 
Wenn du so lange in Programmierer+-Foren unterwegs wärst, wie ich, würdest du gar nicht auf die Idee kommen, so eine Frage zu stellen. ;)
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 01.12.07 14:12 
wenn das so ist nehm ich meinen beitrag zurück.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.12.07 14:20 
Ich meinte den Beitrag: "was soll man den noch für fragen haben?? ", nicht deine Ausgangsfrage.
V!P3R Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151



BeitragVerfasst: Sa 01.12.07 14:23 
ich weis deswegen hab ich ja auch geschrieben:
user profile iconV!P3R hat folgendes geschrieben:
was soll man den noch für fragen haben??

EDIT: diesen beitrag bitte einfach nicht lesen!



MfG
IT-Fan
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 19.02.08 19:19 
Hi zusammen,

da bin ich ja froh, dass das Thema noch nicht geschlossen wurde ;)

Ich habe folgendes Problem:

Ich habe ein Programm mit 2 Fenstern, eins für eine Passwortabfrage am Anfang und dann das, womit ich hinterher "arbeite". Wenn man das PW richtig eingegeben hat, wird das erste Formular versteckt (Hide) und das 2. Formular mit .Show aufgerufen.

Soweit läuft auch noch alles. Wenn ich jetzt aber das Programm im 2. Fenster beenden will, werden lediglich die beiden Formulare geschlossen, das Programm läuft aber weiterhin im Hintergrund und ist nur über den TaskManager zu beenden.

Ich habe mittlerweile schon folgendes getestet:
1. beide Formulare schließen (mit .close)
2. Application.Terminate
3. Halt

Wodran könnte es liegen, dass keines dieser Mittel hilft? Ich kenne es noch von Delphi 7, da hatte ich keine Probleme. Allerdings habe ich meine Delphi 7-Version zurzeit nicht zur Hand und habe deshalb erstmal zur Delphi 2007 Trial gegriffen. Aber damit sollte es ja eigentlich ncihts zu tun haben, oder?

Ich würde mich über baldige Antwort, am Besten mit der Lösung ^^, freuen ;)

Gruß
IT-Fan