Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Variable in anderen Formular ausgeben (https://www.delphipraxis.net/92516-variable-anderen-formular-ausgeben.html)

DeepBlueSea 21. Mai 2007 15:22


Variable in anderen Formular ausgeben
 
HI,
hab grad mal wieder ein kleines Problem.
Und zwar will ich eine Variable, die in Unit1, bzw. Formular1 berechnet wurde, in Formular2 ausgeben.
Leider bringt er mir "undefinierter Bezeichner", bei der Angabe des Namens des Edit-Feldes aus Formular zwei.
Wie kann ich das ändern?
MfG D.B.S.

mkinzler 21. Mai 2007 15:25

Re: Variable in anderen Formular ausgeben
 
Unit1:

Delphi-Quellcode:
Uses ...<unit2>;

<Instanz von Formular2>.<Editfeld>.Text := ...;

DeepBlueSea 21. Mai 2007 15:35

Re: Variable in anderen Formular ausgeben
 
Danke,
klappt wunderbar :-D .

DeepBlueSea 21. Mai 2007 15:52

Re: Variable in anderen Formular ausgeben
 
Mist anscheinend doch nicht.
Er bringt jetzt den Fehler:
[Pascal Fehler] Unit1.pas(592): E2096 Methodenbezeichner erwartet

Wie kann ich das beheben?
Gruß D.B.S.

shmia 21. Mai 2007 15:58

Re: Variable in anderen Formular ausgeben
 
Zitat:

Zitat von DeepBlueSea
Er bringt jetzt den Fehler:
[Pascal Fehler] Unit1.pas(592): E2096 Methodenbezeichner erwartet

Warum zeigst du uns den Sourcecode von Unit1 im Bereich der Zeile 592 nicht ??
siehe auch: http://www.chiark.greenend.org.uk/~s...m/bugs-de.html

DeepBlueSea 21. Mai 2007 16:11

Re: Variable in anderen Formular ausgeben
 
OK, wenn das weiterhilft kann ich das gerne machen.
Nicht über die komischen Variablennamen wundern, das wird ein kleines Spiel ;-)

Delphi-Quellcode:
procedure THauptmenu.Gegnerangriff_timerTimer(Sender: TObject); //Gegnerangrifftimer
begin
aufbauphase:= aufbauphase+1;
if aufbauphase=3 then Begin
                      randomize;
                      angriff:= random(11);
                      if angriff<=5 then Begin
                                         //Einheiten vor Kampf anzeigen
                                         TSchlacht.spielerrittervorschlacht_edit.text:= IntToStr(spielerritter);
                                         TSchlacht.spielerritterstufeinschlacht_edit.text:= IntToStr(ritterstufe);
                                         TSchlacht.spielerbogenvorschlacht_edit.text:= IntToStr(spielerbogen);
                                         TSchlacht.spielerbogenstufeinschlacht_edit.text:= IntToStr(bogenstufe);
                                         TSchlacht.spielerzaubervorschlacht_edit.text:= IntToStr(spielerzauber);
                                         TSchlacht.spielerzauberstufeinschlacht_edit.text:= IntToStr(zauberstufe);

                                         TSchlacht.computerrittervorschlacht_edit.text:= IntToStr(computerritter);
                                         TSchlacht.computerbogenvorschlacht_edit.text:= IntToStr(computerbogen);
                                         TSchlacht.computerzaubervorschlacht_edit.text:= IntToStr(computerzauber);


                                         //Gesamt STR,DEF
                                         spielerritterstr:= spielerritterstr*spielerritter;
                                         spielerritterdef:= spielerritterdef*spielerritter;
                                         spielerbogenstr:= spielerbogenstr*spielerbogen;
                                         spielerbogendef:= spielerbogendef*spielerbogen;
                                         spielerzauberstr:= spielerzauberstr*spielerzauber;
                                         spielerzauberdef:= spielerzauberdef*spielerzauber;

                                         computerritterstr:= computerritterstr*computerritter;
                                         computerritterdef:= computerritterdef*computerritter;
                                         computerbogenstr:= computerbogenstr*computerbogen;
                                         computerbogendef:= computerbogendef*computerbogen;
                                         computerzauberstr:= computerzauberstr*computerzauber;
                                         computerzauberdef:= computerzauberdef*computerzauber;

                                         //Ergebnisberechnung
                                         spielerkampfbonus:= 1;
                                         computerkampfbonus:= 1;
                                         spielergewinn:= false;

                                         if spielerritter<>computerritter then if spielerritter>computerritter then spielerkampfbonus:= spielerkampfbonus+0.01
                                                                                                               else computerkampfbonus:= computerkampfbonus+0.01;
                                         if spielerbogen<>computerbogen then if spielerbogen>computerbogen then spielerkampfbonus:= spielerkampfbonus+0.01
                                                                                                           else computerkampfbonus:= computerkampfbonus+0.01;
                                         if spielerzauber<>computerzauber then if spielerzauber>computerzauber then spielerkampfbonus:= spielerkampfbonus+0.01
                                                                                                               else computerkampfbonus:= computerkampfbonus+0.01;

                                         spielergesamtstr:=round((spielerritterstr+spielerbogenstr+spielerzauberstr)*spielerkampfbonus);
                                         spielergesamtdef:=round((spielerritterdef+spielerbogendef+spielerzauberdef)*spielerkampfbonus);
                                         computergesamtstr:=round((computerritterstr+computerbogenstr+computerzauberstr)*computerkampfbonus);
                                         computergesamtdef:=round((computerritterdef+computerbogendef+computerzauberdef)*computerkampfbonus);

                                         if spielergesamtdef>computergesamtdef then
                                                                               spielergesamtstr:=spielergesamtstr+spielergesamtdef-computergesamtdef
                                                                               else
                                                                               computergesamtstr:=computergesamtstr+computergesamtdef-spielergesamtdef;

                                         if spielergesamtstr>computergesamtstr then Begin
                                         punkte:= punkte+ round((spielergesamtstr-computergesamtstr)/100);
                                         computerritter:= 0;
                                         computerbogen:= 0;
                                         computerzauber:= 0;
                                         spielergewinn:=true;                      end

                                                                              else Begin
                                         punkte:= punkte- round((computergesamtstr-spielergesamtstr)/100);
                                         spielerritter:= 0;
                                         spielerbogen:= 0;
                                         spielerzauber:= 0;
                                                                                   end;

                                         //überlebende Einheiten
                                         if spielergewinn=true then Begin
                                                               spielerritter:= round((100-(computergesamtstr/spielergesamtstr*100))*spielerritter/100);
                                                               spielerbogen:= round((100-(computergesamtstr/spielergesamtstr*100))*spielerbogen/100);
                                                               spielerzauber:= round((100-(computergesamtstr/spielergesamtstr*100))*spielerzauber/100);
                                                                    end
                                                               else Begin
                                                               computerritter:= round((100-(spielergesamtstr/computergesamtstr*100))*computerritter/100);
                                                               computerbogen:= round((100-(spielergesamtstr/computergesamtstr*100))*computerbogen/100);
                                                               computerzauber:= round((100-(spielergesamtstr/computergesamtstr*100))*computerzauber/100);
                                                                    end;

                                         //Einheiten nach Schlacht anzeigen
                                         TSchlacht.spielerritternachschlacht_edit.text:= IntToStr(spielerritter);
                                         TSchlacht.spielerbogennachschlacht_edit.text:= IntToStr(spielerbogen);
                                         TSchlacht.spielerzaubernachschlacht_edit.text:= IntToStr(spielerzauber);

                                         TSchlacht.computerritternachschlacht_edit.text:= IntToStr(computerritter);
                                         TSchlacht.computerbogennachschlacht_edit.text:= IntToStr(computerbogen);
                                         TSchlacht.computerzaubernachschlacht_edit.text:= IntToStr(computerzauber);

                                         schlacht.showmodal;
                                         end;
                      end;
end;

Klaus01 21. Mai 2007 16:13

Re: Variable in anderen Formular ausgeben
 
Und welche ist Zeile 592?

Grüße
Klaus

DeepBlueSea 21. Mai 2007 16:22

Re: Variable in anderen Formular ausgeben
 
Oh, vergessen zu markieren :oops: .
Das hier ist Zeile 592-601, in denen der Fehler auftritt.

TSchlacht.spielerrittervorschlacht_edit.text:= IntToStr(spielerritter);
TSchlacht.spielerritterstufeinschlacht_edit.text:= IntToStr(ritterstufe);
TSchlacht.spielerbogenvorschlacht_edit.text:= IntToStr(spielerbogen);
TSchlacht.spielerbogenstufeinschlacht_edit.text:= IntToStr(bogenstufe);
TSchlacht.spielerzaubervorschlacht_edit.text:= IntToStr(spielerzauber);
TSchlacht.spielerzauberstufeinschlacht_edit.text:= IntToStr(zauberstufe);

TSchlacht.computerrittervorschlacht_edit.text:= IntToStr(computerritter);
TSchlacht.computerbogenvorschlacht_edit.text:= IntToStr(computerbogen);
TSchlacht.computerzaubervorschlacht_edit.text:= IntToStr(computerzauber);

Die Muhkuh 21. Mai 2007 16:27

Re: Variable in anderen Formular ausgeben
 
Du musst den Namen des Formulars nehmen und nicht den Klassennamen (also, wenn das Formular TSchlacht heißt, wirst Du wohl Schlacht nehmen müssen)

DeepBlueSea 21. Mai 2007 16:31

Re: Variable in anderen Formular ausgeben
 
OK, vielen Dank.
Jetz funktionierts richtig :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz