![]() |
Einfaches Würfel Programm gibt fehler
Delphi-Quellcode:
procedure TForm1.wuerfelnClick(Sender: TObject);
var summe,teilsum,anzahl,i:integer; begin randomize; i:=1; anzahl:=strtoint(anzahl.text); while (i<=anzahl) do begin teilsum:=random(6)+1; summe:=summe+teilsum; end; showmessage('Summe: ' + inttostr(summe)); end; end. Fehlermeldungen: [Fehler] Unit1.pas(40): Record, Objekt oder Klassentyp erforderlich [Fehler] Unit1.pas(41): ';' erwartet, aber 'WHILE' gefunden [Fehler] Unit1.pas(43): Undefinierter Bezeichner: 'teilsum' [Fehler] Unit1.pas(44): Undefinierter Bezeichner: 'summe' [Fehler] Unit1.pas(45): '.' erwartet, aber ';' gefunden [Warnung] Unit1.pas(47): Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Re: Einfaches Würfel Programm gibt fehler
Hmm also der erste fehler ist das du eine endlos schleife produziert. Die Variable I wird nicht innerhalb der schleife verändert. aber dies erklärt keinen deiner fehler, poste mal die ganz unit.
|
Re: Einfaches Würfel Programm gibt fehler
Du definierst anzahl als Integer, willst aber dann auf die Property "Text" zugreifen :zwinker:
Benenne also entweder deine Variable oder die Komponente um, oder greife auf die Komponente mit Form1.anzahl zu ;) Kleiner Tipp am Rande: Gib deinen Komponenten sprechende Namen, damit du direkt weißt, um was es sich handelt (also AnzahlEdit, ZahlenLB, IgnoreCB,...) //Edit: Und rufe Randomize bitte nur einmal in deinem Programm - zB im FormCreate - auf. Sonst ists aus mit Zufallszahlen :zwinker: |
Re: Einfaches Würfel Programm gibt fehler
leddl aber ich convertiere text ja in nen int wert und dann müsste es doch gehen oder meintest du jetzt was anderes ?
Ganze Unit:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; anzahl: TEdit; wuerfeln: TButton; beenden: TBitBtn; procedure beendenClick(Sender: TObject); procedure wuerfelnClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.beendenClick(Sender: TObject); begin close; end; procedure TForm1.wuerfelnClick(Sender: TObject); var summe,teilsum,anzahl,i:integer; begin randomize; i:=1; anzahl:=strtoint(anzahl.text); while (i<=anzahl) do begin teilsum:=random(6)+1; summe:=summe+teilsum; end; showmessage('Summe: ' + inttostr(summe)); end; end. |
Re: Einfaches Würfel Programm gibt fehler
Zitat:
//Edit: Ist anscheinend nicht klar geworden, daher nochmal ausführlich: Du hast dein Edit mit Namen "anzahl". Gleichzeitig deklarierst du dir in deiner Methode eine lokale Variable "anzahl" vom Typ Integer. Wenn du jetzt in deiner Methode auf "anzahl" zugreifst, wird automatisch die lokale Variable hergenommen. Diese hat logischerweise keine Property "Text" und schon fällst du auf die Nase. Daher mein Rat: Benenne deine Komponenten sprechend. Und auch generell sollte man vermeiden, lokale und globale Variablen oder Properties gleich zu nennen, wenn man beide innerhalb derselben Methode verwenden will ;) //Edit2: Ach Mist, jetzt muss da wieder einer dazwischenfunken :mrgreen: |
Re: Einfaches Würfel Programm gibt fehler
Dein edit heißt genauso wie die variable, daher kommt der Fehler. Nenne dein edit einfach um, zB in edAnzahl.
|
Re: Einfaches Würfel Programm gibt fehler
|
Re: Einfaches Würfel Programm gibt fehler
Blackheart nein nur irgendwie kam ich vorhin nichtmehr aufs delphi-forum drauf deswegen kam ich hier hin ;) mal schauen ob ich es hin kriege
|
Re: Einfaches Würfel Programm gibt fehler
Zitat:
@24karatboy: Dennoch wäre es ganz nett gewesen, zu erfahren, dass sich bereits andere um das Problem gekümmert haben. Bei Crosspostings sollte man so nett sein und den Link zum jeweils anderen Forum dann doch mit angeben, sonst machen sich Leute völlig umsonst Mühe ;) |
Re: Einfaches Würfel Programm gibt fehler
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; wuerfeln: TButton; beenden: TBitBtn; summeED: TEdit; anzahlED: TEdit; procedure beendenClick(Sender: TObject); procedure wuerfelnClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } randomize; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.beendenClick(Sender: TObject); begin close; end; procedure TForm1.wuerfelnClick(Sender: TObject); var summe,anzahl,i:integer; begin i:=1; summe:=0; anzahl:=0; anzahl:=strtoint(anzahlED.text); while (i<=anzahl) do begin summe:=summe+random(6)+1; i=i+1; end; showmessage('Summe: ' + inttostr(summe)); end; end. Fehlermelungen: Erzeugen [Fehler] Unit1.pas(22): ',' oder ':' erwartet, aber ';' gefunden [Fehler] Unit1.pas(23): Typ erwartet, aber 'END' gefunden [Fehler] Unit1.pas(49): ':=' erwartet, aber '=' gefunden [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden habs mal ein wenig geändert aber naja immernoch fehler ... |
Re: Einfaches Würfel Programm gibt fehler
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; wuerfeln: TButton; beenden: TBitBtn; summeED: TEdit; anzahlED: TEdit; procedure beendenClick(Sender: TObject); procedure wuerfelnClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } //randomize; // was soll das randomize hier???? end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.beendenClick(Sender: TObject); begin close; end; procedure TForm1.wuerfelnClick(Sender: TObject); var summe,anzahl,i:integer; begin i:=1; summe:=0; anzahl:=0; anzahl:=strtoint(anzahlED.text); while (i<=anzahl) do begin summe:=summe+random(6)+1; i:=i+1; // da stand i=i+1 end; showmessage('Summe: ' + inttostr(summe)); end; end. |
Re: Einfaches Würfel Programm gibt fehler
umsonst ist das nicht ;) ihr helft mit ehrlich damit
|
Re: Einfaches Würfel Programm gibt fehler
Also: randomize ist eine Methode, da wo du es hingeschrieben hast, da kommen deklarationen hin.
Füge deiner Form ein OnCreate Ereignis hinzu und schreibe randomize dort hinein! |
Re: Einfaches Würfel Programm gibt fehler
Tormentor32: hab ich getan aber irgendwie gehen die zufallszahlen jetzt nicht mehr
TForm1.FormCreate randomize; |
Re: Einfaches Würfel Programm gibt fehler
Geraten:
Delphi-Quellcode:
Wie hast du das Create hinzugefügt?
procedure TForm1.FormCreate(Sender: TObject);
begin randomize; end; |
Re: Einfaches Würfel Programm gibt fehler
die form angeklickt und dann im objektinspektor ereignisse und dann oncreate und dann randomize da einegfügt
|
Re: Einfaches Würfel Programm gibt fehler
Und das klappt nicht? Zeig nochmal deinen Quelltext!
|
Re: Einfaches Würfel Programm gibt fehler
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; wuerfeln: TButton; beenden: TBitBtn; summeED: TEdit; anzahlED: TEdit; procedure beendenClick(Sender: TObject); procedure wuerfelnClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.beendenClick(Sender: TObject); begin close; end; procedure TForm1.wuerfelnClick(Sender: TObject); var summe,anzahl,i:integer; begin i:=1; summe:=0; anzahl:=0; anzahl:=strtoint(anzahlED.text); while (i<=anzahl) do begin summe:=summe+random(6)+1; i:=i+1; end; summeED.Text:=inttostr(summe); end; procedure TForm1.FormCreate(Sender: TObject); begin randomize; end; end. |
Re: Einfaches Würfel Programm gibt fehler
Hmm und was klappt jetzt nicht?
|
Re: Einfaches Würfel Programm gibt fehler
:gruebel: Und was genau geht jetzt mit den Zufallszahlen nicht mehr?
|
Re: Einfaches Würfel Programm gibt fehler
vorher als ich das randomize in der procedure hatte kam nen ergebnis raus und jetzt nichtmehr
|
Re: Einfaches Würfel Programm gibt fehler
In SummeED.Text muss das Ergebnis stehen! Ich kann keinen Fehler entdecken! Oder bin ich etwa blind :shock:
|
Re: Einfaches Würfel Programm gibt fehler
Zitat:
Nein, also mal ernsthaft. Was meinst du denn jetzt mit dieser Aussage? Auch jetzt solltest du ein Ergebnis bekommen... Sprich doch mal Klartext... |
Re: Einfaches Würfel Programm gibt fehler
sorry funzt alles ohne was geändert zu haben vorhin hab ich kein ergebnis bekommen ich danke euch allen hat jemand ne gute aber nicht zu komplizierte aufgabe für mich ?
|
Re: Einfaches Würfel Programm gibt fehler
Zitat:
Ach ja, und wenn du schon dabei bist, mach dich auch mal mit der Shift-Taste vertraut :mrgreen: Da kriegt man ganz lustige Großbuchstaben, die man an passender Stelle einfügen kann :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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