Autor Beitrag
p.a.t.r.i.k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 17.12.07 23:19 
Hallo,

ich Programmiere grade ein Spiel für die Schule und ich hab folgendes Problem:

Wenn ich auf meinen Button "Beenden" Klicke dann öffne ich ein neues Fenster
und stelle zur auswahl ob ich den Speilstand Speichern will, beennden will ohne zu speichern
oder den Vorgang abbrechen will.
Ich habe festgestellt, dass ich dieses zweite Fenster mehrmals öffnen kann.
Das problem hab ich gelöst indem ich eine BooleanVariable benutze

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
PROCEDURE TFScrabble.BeendenClick(Sender: TObject);
begin
  if Beenden_geklickt= False then begin
     Form3:=TForm3.Create(FScrabble);
     Form3.Show;
     Beenden_geklickt:=True;
  end;
end;


(Unter FormCreate wird die Variable auf := False gestellt)

JETZT hab ich aber das Problem, dass wenn ich im zweiten Fenster auf Abbrechen Klicke, ich das Fenster nicht mehr öffnen kann.
Ich muss also die Variable "beenden_geklickt" wieder auf :=false stellen, sobald ich auf Abbrechen klicke.
Das hab ich auch gemacht, aber Wenn ich das in der zum Fenster zugehörigen Form so deklariere, ist die Variable aber in der Form in der ich meinen BeendenButton habe nicht umgestellt worden....

Wie kann ich diese Variable jetzt also für alle Forms zugänglich machen?

Ich kann mir vorstellen, dass die Antwort völlig trivial ist, aber jetzt beginnen die Ferien und mein Lehrer wrid mir diese Frage wohl nicht beantworten ^^

Ich bedanke mich schonmal im Vorraus.

Mit freundlichen Grüßen
p.a.t.r.i.k

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: Mo 17.12.07 23:30 
Hallo Patrik,

versuche mal:

ausblenden Delphi-Quelltext
1:
2:
Form1.Beenden_geklickt:=false;  
//oder Form2... je nach dem welche Deine "Haupt"-Unit ist.


bye bflegel

_________________
I know all the jokes about my name
p.a.t.r.i.k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 17.12.07 23:35 
Funktioniert leider nicht
ich verändere ja lediglich den namen der Variable.....

trotzdem danke
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: Mo 17.12.07 23:48 
Hallo Patrik,

in den 'public'-Abschnitt schreibst Du die Boolean-Variable:

ausblenden Delphi-Quelltext
1:
2:
3:
 public
    { Public-Deklarationen }
    beenden_geklickt : boolean;


Als Prozedur:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Beenden_geklickt= False then
    begin
      Beenden_geklickt := true;
      Form2.Showmodal;
      if beenden_geklickt then
      showmessage('true'else showmessage('false');
    end;
end;


Und in Deiner Form3 bei Abbruch:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm2.Button1Click(Sender: TObject);
begin
  Form1.beenden_geklickt := false;
  Form2.close;
end;


So gehts!

bye bflegel

_________________
I know all the jokes about my name
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Di 18.12.07 00:25 
Frage:
Wieso nimmst Du statt
ausblenden Delphi-Quelltext
1:
Form3.Show;					

nicht einfach
ausblenden Delphi-Quelltext
1:
Form3.Showmodal;					

?
Da entsteht die ganze Problematik gar nicht erst ;-)

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
p.a.t.r.i.k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Di 18.12.07 16:27 
Danke vielmals für die Hilfe...
ich hab das Problem erfolgreich gelöst^^

Freundliche Grüße
p.a.t.r.i.k