![]() |
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 ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 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