Autor Beitrag
kaskus
Hält's aus hier
Beiträge: 13

WIN 2000; WIN XP
Delphi 7
BeitragVerfasst: Mi 31.01.07 18:16 
hallo

folgende frage:

habe insgesamt 4 formulare..
in 2 von 4 formulare ist ein button mit der funktion alles zu beenden (hardware anbindung und Programm selbst)

in dem hauptformular (Namen) ist ein edit feld für namenseingabe und zwei buttons. einmal ok für übernahme des namens und ein beendenclick. in dem zweiten formular (das spiel selbst) ist auch ein menuiten beenden. die prozedure ist an sich die selbe nur dass die in unterschiedlichen formularen steht. um das programm zu beenden, soll man zwei möglichkeiten haben. die eine ist, über das formular namen und über das formular speedkicker. in namen formular funktionierts einwandfrei, aber nicht in dem formular speedkicker.

habe versucht die prozedure procedure "TSpeedkicker.BeendenClick(Sender: TObject);" mit der prozderure vom hauptformular (Namen) zu verbinden. doch das bekomm ich nicht auf die reihe und die gleiche prozedure in speedkicker macht nicht das was es machen soll! der "versteckt" zwar das formular aber in delphi steht noch, dass der debugger läuft und kanns dann erst wieder über start > Programm zurücksetzen beenden.


Vielen Dank im voraus für eure Hilfe!
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mi 31.01.07 18:39 
Du musst das Hauptformular schließen.

Also:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TSpeedkicker.BeendenClick(Sender: TObject);
begin
Namen.close;
end;
kaskus Threadstarter
Hält's aus hier
Beiträge: 13

WIN 2000; WIN XP
Delphi 7
BeitragVerfasst: Do 01.02.07 09:17 
ja aber wenn ich das hauptformular beende, wird ja nicht wirklich das komplette programm beendet, oder?!
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 01.02.07 09:42 
Wenn Du nicht irgendwelche Absonderlichkeiten programmiert hast, dann sollte dadurch das ganze Programm beendet werden.
kaskus Threadstarter
Hält's aus hier
Beiträge: 13

WIN 2000; WIN XP
Delphi 7
BeitragVerfasst: Do 01.02.07 09:49 
leider wird das programm nicht komplett beendet....

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TSpeedkicker.BeendenClick(Sender: TObject);
begin
  CloseDevice;
  close;;
end;


wie meinst du das mit Absonderlichkeiten!?
irgendwann ist immer das erste mal....
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 01.02.07 10:08 
Die "Absonderlichkeiten" können sehr vielfältig sein. Da jetzt Beispiele zu nennen, wird nicht allzuviel bringen.
Wenn ich Dein Source-Beispiel sehe, fällt mir aber sofort ein Fehler auf. Dazu ein Beispiel:
Angenommen, das Hauptformular heißt "MainForm" und das Formular, von dem aus geschlossen werden soll, heißt "SubForm", dann muss der Aufruf so aussehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TSubForm.BeendenClick(Sender: TObject);
begin
  CloseDevice;
  MainForm.close; // Hier hast Du vergessen, die Hauptform anzugeben
end;

Ein einfaches "Close" schließt nur die Form, zu der das Close gehört.