| Autor |
Beitrag |
V!P3R
      
Beiträge: 151
|
Verfasst: 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 Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 19.02.2008 um 19:20
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: 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 
      
Beiträge: 151
|
Verfasst: So 25.11.07 12:04
so weit so gut,
aber:
Ich lasse " OnClose" folgenden Befehl ausführen:
Delphi-Quelltext
aber sobald ich auf Form2.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
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 25.11.07 13:13
Delphi-Quelltext
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 
      
Beiträge: 151
|
Verfasst: So 25.11.07 13:38
wenn man jetzt raus will sagt delphi:
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 
      
Beiträge: 151
|
Verfasst: 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:
Delphi-Quelltext
klappt nicht, (siehe oben)
Delphi-Quelltext 1:
| Aus einem sichtbaren Fenster kann kein modales werden. |
MfG
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: So 25.11.07 16:26
|
|
V!P3R 
      
Beiträge: 151
|
Verfasst: 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:
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'
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
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Fr 30.11.07 17:08
V!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
      
Beiträge: 68
WIN XP Prof.
Delphi 2005 PE, Turbo Delphi 2006, PHP (Eclipse)
|
Verfasst: 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 
      
Beiträge: 151
|
Verfasst: 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
|
Verfasst: Sa 01.12.07 13:37
V!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 
      
Beiträge: 151
|
Verfasst: 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
|
Verfasst: 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 
      
Beiträge: 151
|
Verfasst: Sa 01.12.07 14:12
wenn das so ist nehm ich meinen beitrag zurück.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 01.12.07 14:20
Ich meinte den Beitrag: "was soll man den noch für fragen haben?? ", nicht deine Ausgangsfrage.
|
|
V!P3R 
      
Beiträge: 151
|
Verfasst: Sa 01.12.07 14:23
ich weis deswegen hab ich ja auch geschrieben:
V!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
|
Verfasst: 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
|
|