AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einfaches Würfel Programm gibt fehler

Ein Thema von 24karatboy · begonnen am 12. Jun 2007 · letzter Beitrag vom 12. Jun 2007
Antwort Antwort
Seite 1 von 3  1 23      
24karatboy

Registriert seit: 12. Jun 2007
61 Beiträge
 
#1

Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 11:47
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
  Mit Zitat antworten Zitat
Thorben_Ko

Registriert seit: 8. Jun 2007
86 Beiträge
 
#2

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 11:51
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.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 11:54
Du definierst anzahl als Integer, willst aber dann auf die Property "Text" zugreifen
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
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
24karatboy

Registriert seit: 12. Jun 2007
61 Beiträge
 
#4

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 11:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 12:01
Zitat von 24karatboy:
leddl aber ich convertiere text ja in nen int wert und dann müsste es doch gehen oder meintest du jetzt was anderes ?
Integers sind primitive Datentypen, keine Klassen, und haben daher auch keine Properties. Daher kannst du sogar in Bananenmilchshakes konvertieren und zum selben Ergebnis kommen

//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
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#6

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 12:01
Dein edit heißt genauso wie die variable, daher kommt der Fehler. Nenne dein edit einfach um, zB in edAnzahl.
Richard Mahr
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 12:06
Misstraust Du hier den Leuten.
http://www.delphi-forum.de/viewtopic.php?t=73595
Blackheart
  Mit Zitat antworten Zitat
24karatboy

Registriert seit: 12. Jun 2007
61 Beiträge
 
#8

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 12:13
Blackheart nein nur irgendwie kam ich vorhin nichtmehr aufs delphi-forum drauf deswegen kam ich hier hin mal schauen ob ich es hin kriege
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 12:15
Zitat von Blackheart:
Naja, ist schon zu vertreten. Dort hat er es ja zuerst gepostet und wirklich hilfreich war man dort ja nicht. Das Problem wurde zwar gelöst, aber ohne jedwede Erläuterung...

@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
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
24karatboy

Registriert seit: 12. Jun 2007
61 Beiträge
 
#10

Re: Einfaches Würfel Programm gibt fehler

  Alt 12. Jun 2007, 12:23
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 ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 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