![]() |
Re: will randomzahlen aufaddieren
ich hab mir deinen ersten thread angeschaut und mir daraufhin ein spiel daraus gebastelt ;) die stelle die du meinst sieht bei mir so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var zahl,i: integer; begin zahl:=strtoint(label1.Caption); i:=random(5)+1; if i = 1 then zahl:=0 else zahl:=zahl+i; label1.Caption:=inttostr(zahl); end; |
Re: will randomzahlen aufaddieren
und so?
Delphi-Quellcode:
var zufallszahl, summe: integer;
begin summe:=0; randomize; zufallszahl:=random(6)+1; edit1.Text:=inttostr(zufallszahl); if zufallszahl = 1 then Summe:=0 else Summe:=Inc(Summe, zufallszahl) edit2.Text:=inttostr(summe); |
Re: will randomzahlen aufaddieren
oh, kannst du mir dasspiel vielleicht mal zukomm lassen?
|
Re: will randomzahlen aufaddieren
Zitat:
|
Re: will randomzahlen aufaddieren
so, jetzt habe iches geschaft!!!!!!!!
dank an alle
Delphi-Quellcode:
:thuimb:
var zahl,i: integer;
begin zahl:=strtoint(edit2.text); randomize; i:=random(6)+1; edit1.Text:=inttostr(i); if i = 1 then zahl:=0 else zahl:=zahl+i; edit2.text:=inttostr(zahl); |
Re: will randomzahlen aufaddieren
Jetzt verstehe ich dein Problem :)
Nun deine Methode TForm1.Button1Click(Sender: TObject); ist ja Bestandteil eines Objectes -> TForm. Das was du anscheinend noch nicht weist ist das auch ein Object eigene Variablen deklarieren kann. Statt also Summe, eg. Zahl, als Lokale Variable in der Methode .Button1Click() zu deklarieren, wird diese Variable als Feld des Objectes definiert. Das sieht dann so aus:
Delphi-Quellcode:
Wie du siehst wurde FSumme als neues privates Feld der Klasse TForm1 definiert. Jedes Object vom Typ TForm1 enthält nun eine eigene Variable mit dem Namen FSumme. Diese existiert exakt so lange wie auch das Object existert. Alle Felder von solchen Objecten werden per default mit 0, nil, '' usw. initialisiert.
type
TForm1 = class(TForm) Button1: TButton; Edit2: TEdit; ... procedure Button1Click(Sender: TObject); ... private FSumme: Integer; protected public published end; procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin I := Random(5) +1; if I = 1 then FSumme := 0 else Inc(FSumme, I); Edit2.Text := IntToStr(FSumme); end; Innerhalb jeder Methode zur Klasse TForm1 kann man direkt auf diese Object-Felder zugreifen. Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz