Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Variable aus anderer Procedure auslesen (https://www.delphipraxis.net/183510-variable-aus-anderer-procedure-auslesen.html)

FCCrobi2 15. Jan 2015 20:04

Delphi-Version: 7

Variable aus anderer Procedure auslesen
 
Hi
Ich weiß das dies eine totale Amateur-Frage ist, aber ich bin dies auch. Aber da ich durch reines Googlen einfach keine ordentliche Lösung gefunden habe(oder sie nicht verstanden habe :D) stelle ich sie nun hier.

Ich habe in meiner ersten Procedure eine Variable berechnet, die ich allerdings in einer anderen Procedure wiederum neu benötige, also würde ich gerne wissen wie ich diese Variable von der neuen Procedure aus auslesen kann.

ZB. wenn es halt so gehen würde Variable1:=Form1.Procedure1.Variable1;

Ich hoffe ihr könnt mir dabei helfen :D

Kralle 15. Jan 2015 20:29

AW: Variable aus anderer Procedure auslesen
 
Hallo,

Mache aus der Procedure eine Funktion und nutze RESULT oder übergebe Deiner Procedure eine Variable
[DP]procedure berechne(VAR ergebnis:integer);[/DP]

Gruß HEiko

lbccaleb 15. Jan 2015 20:43

AW: Variable aus anderer Procedure auslesen
 
Du kannst die Variable auch Global machen.

Delphi-Quellcode:
public
  MeineVar: Integer;
Dann kannst du darauf zugreifen.

FCCrobi2 15. Jan 2015 20:56

AW: Variable aus anderer Procedure auslesen
 
Zitat:

Zitat von lbccaleb (Beitrag 1286632)
Du kannst die Variable auch Global machen.

Wenn ich die Variable aber einfach nur so Global mache dann habe ich sie ja nicht berechnet. Wenn ich sie jetzt in der zweiten Procedure ausgeben will funktioniert das zwar, aber die Zahl ist 0,000 obwohl sie dies nicht ist.
Wenn die Variable Global ist, reicht das dann wenn ich sie nur in Procedure eins berechne, um sie in Procedure 2 zu verwenden, oder muss ich die Berechnung irgendwo ausserhalb der Procedure in der Form oder Unit einfügen? Und wenn ja wo?

Sir Rufo 15. Jan 2015 20:59

AW: Variable aus anderer Procedure auslesen
 
Zeig doch mal was du hast und wo du das benutzen möchtest, dann kann man auch konkret antworten.

FCCrobi2 15. Jan 2015 21:09

AW: Variable aus anderer Procedure auslesen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1286634)
Zeig doch mal was du hast und wo du das benutzen möchtest, dann kann man auch konkret antworten.

Der ganze Quelltext wäre hier viel zu lang,desswegen ist hier sehr viel rausgekürzt, ich hoffe aber es ist alles wichtige dafür drin.
Die Variablen EA,Quote1 und Quote2 berechne ich in Procedure 1 und benötige sie dort später auch. In der zweiten Procedure brauche ich diese drei allerdings
auch, möchte sie aber nur ungern neu berechnen. Desswegen verzweifle ich die letzten Stunden daran sie in mehreren Procedures nutzen zu können.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Elo1,Elo2: integer;
EA,Potenz,Pot,Quote1,Quote2: real;
begin
Elo1:=strtoint(Form1.Edit1.Text);
Elo2:=strtoint(Form1.Edit2.Text);
IF Elo1 > Elo2 then
  begin
  IF Elo1-Elo2>400 then
    begin
    Pot:=1;
    end
  else if Elo1-Elo2<400 then
    begin
    Pot:=(Elo1-Elo2)/400;
    end
  end
else IF Elo1<Elo2 then
  begin
  IF Elo2-Elo1>400 then
    begin
    Pot:=1;
    end
  else IF Elo2-Elo1<400 then
    begin
    Pot:=(Elo2-Elo1)/400;
    end
  else IF Elo1=Elo2 then
    begin
    Pot:=0;
    end
  end;

Potenz := Power(10, Pot);
[B]EA:=1/ (1 + Potenz)[/B];

IF Elo1>Elo2 then
  begin
[B] Quote1:=1/((1-EA)*100)*100;
  Quote2:=1/(EA*100)*100;[/B]
  end
else if Elo1<Elo2 then
  begin
[B] Quote1:=1/(EA*100)*100;
  Quote2:=1/((1-EA)*100)*100;[/B]
  end
else if Elo1=Elo2 then
  begin
[B] Quote1:=2;
  Quote2:=2;[/B]
end;




procedure TForm1.Button5Click(Sender: TObject);
var
z,Einsatz:integer;
begin
z:=0;
z:=Random(100);
Einsatz:=strtoint(Form1.Edit5.Text);
IF Form1.ComboBox3.ItemIndex=0 then begin
    IF [B]z<EA[/B] then
    begin
    Form1.Label23.Caption:=floattostr([B]Quote1*Einsatz[/B])+' Euro gewonnen!';
    end
    else if [B]z>EA[/B] then
    begin
    Form1.Label23.Caption:=floattostr(Einsatz)+' Euro verloren!';
  end
else if Form1.ComboBox3.ItemIndex=1 then begin
    IF [B]z<EA[/B] then
    begin
    Form1.Label23.Caption:=floattostr(Einsatz)+' Euro Verloren';
    end
    else if [B]z>EA[/B] then
    begin
    Form1.Label23.Caption:=floattostr([B]Quote2*Einsatz[/B])+' Euro gewonnen!';
    end;
end;

Sir Rufo 15. Jan 2015 21:17

AW: Variable aus anderer Procedure auslesen
 
Könntest du deinen Beitrag bitte bearbeiten und den Quelltext in die dafür vorgesehenen
Code:
[DELPHI]
[/DELPHI]
Tags setzen? So kann das kein ... lesen

FCCrobi2 15. Jan 2015 21:21

AW: Variable aus anderer Procedure auslesen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1286638)
Könntest du deinen Beitrag bitte bearbeiten und den Quelltext in die dafür vorgesehenen
Code:
[DELPHI]
[/DELPHI]
Tags setzen? So kann das kein ... lesen

Ok
Wusst ich nicht :lol:

lbccaleb 15. Jan 2015 21:34

AW: Variable aus anderer Procedure auslesen
 
Um welche Variable handelt es sich jetzt konkret?

FCCrobi2 15. Jan 2015 21:35

AW: Variable aus anderer Procedure auslesen
 
Zitat:

Zitat von lbccaleb (Beitrag 1286641)
Um welche Variable handelt es sich jetzt konkret?

EA, Quote1 und Quote 2.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.
Seite 1 von 2  1 2      

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