![]() |
Inkompatible Typen
Hallo Leutz ich hoff ihr könnt mir helfen nach ner ganze weile Delphi am Stück seh ich den Fehler einfach nich.
Delphi-Quellcode:
hinter dem ersten Tipp sagt er schon nach der Klammer Inkompatible Typen woran liegts?
Var ziehung,Tipp : Array[1..6] of Extended;
Anzahl,Nummern :Integer; Zahl : extended; richtig: Integer; vorhanden : boolean; Visible: Boolean; begin if not ((1<Tipp) and (Tipp>49)) then Kommentar.Caption:='ungültige Eingabe'; end; mfg greenkohl [edit=SirThornberry]Code-Tags durch Delphitags ersetzt - Mfg, SirThornberry[/edit] |
Re: Inkompatible Typen
Weil Tipp ein Array ist.
|
Re: Inkompatible Typen
das heißt was muss ich tun, damit ich es so ähnlich gestalten kann?
|
Re: Inkompatible Typen
Warum ist das Array überhaupt von Datentyp Extended?
Zitat:
Was willst du mit der Abfrage erreichen? |
Re: Inkompatible Typen
Hi, also ganz eindeutig ist es nicht, was du da machen willst :)
sonst würde wohl auch der compiler es greifen... aber ich versuch mal:
Delphi-Quellcode:
ok?
var i,minWert, maxWert:Integer;
begin minWert:=1; maxWert:=49; for i:=1 to Length(Tipp) do begin if Tipp[i-1]<minWert then minWert:=Tipp[i-1]; if Tipp[i-1]>maxWert then maxWert:=Tipp[i-1]; end; if (minWert<1) or (maxWert>49) then showmessage('Ungüueltige Eingabe...'); end; |
Re: Inkompatible Typen
ich poste euch einfach mal den kompletten quelltext.
Delphi-Quellcode:
Das is ja schon mal ganz gut, nur das er jetzt auch richtige Werte als ungültige Eingabe erkennt und nicht weiter geht. Wo liegt jetzt der Fehler, denn Werte zwischen 1-49 sollte er als richtig erkenn und nich als falsch.
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; zahl1: TEdit; zahl2: TEdit; zahl3: TEdit; zahl4: TEdit; zahl5: TEdit; zahl6: TEdit; Richtige: TEdit; Label2: TLabel; Label3: TLabel; Kommentar: TLabel; Tipp1: TEdit; Tipp2: TEdit; Tipp3: TEdit; Tipp4: TEdit; Tipp5: TEdit; Tipp6: TEdit; Neu: TButton; Label4: TLabel; procedure Button1Click(Sender: TObject); procedure Tipp1Change(Sender: TObject); procedure Button2Click(Sender: TObject); procedure NeuClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); Var ziehung,Tipp : Array[1..6] of Extended; Anzahl,Nummern :Integer; Zahl : extended; richtig: Integer; vorhanden : boolean; Visible: Boolean; i : integer; minWert, maxWert:extended; begin minWert:=1; maxWert:=49; for i:=1 to Length(Tipp) do begin if Tipp[i-1]<minWert then minWert:=Tipp[i-1]; if Tipp[i-1]>maxWert then maxWert:=Tipp[i-1]; end; if (minWert<1) or (maxWert>49) then showmessage('Ungüueltige Eingabe...') else begin ziehung[1]:= 1+random(49); Anzahl:=2; Repeat Zahl:= 1+random(49); Nummern:=1; vorhanden:=false; Repeat If Zahl <> ziehung[Nummern] then Nummern:=Nummern+1 else vorhanden:=true; Until (Anzahl=Nummern) or vorhanden; If not vorhanden then Begin ziehung[Anzahl]:=Zahl; Anzahl:=Anzahl+1; end; Until Anzahl > 6; zahl1.text:=Floattostr(ziehung[1]); zahl2.text:=Floattostr(ziehung[2]); zahl3.text:=Floattostr(ziehung[3]); zahl4.text:=Floattostr(ziehung[4]); zahl5.text:=Floattostr(ziehung[5]); zahl6.text:=Floattostr(ziehung[6]); Tipp[1]:=Strtofloat(Tipp1.text); Tipp[2]:=Strtofloat(Tipp2.text); Tipp[3]:=Strtofloat(Tipp3.text); Tipp[4]:=Strtofloat(Tipp4.text); Tipp[5]:=Strtofloat(Tipp5.text); Tipp[6]:=Strtofloat(Tipp6.text); richtig:=0; For Nummern:=1 to 6 do For Anzahl:=1 to 6 do If ziehung[Nummern] = Tipp[Anzahl] then richtig:=richtig + 1; If richtig < 2 then Kommentar.caption:='Miserable Leistung'; If richtig = 2 then Kommentar.caption:='Naja wenigstens etwas!'; If richtig > 2 then Kommentar.caption:='Du kommst dem Ziel näher..'; If richtig > 4 then Kommentar.caption:='Ich denke das kann was werden bei dir!!!'; If richtig = 6 then Kommentar.caption:='Du hast alle übertroffen die Million is dein!!'; Richtige.text:=Floattostr(richtig); Kommentar.Visible:=true; end; end; procedure TForm1.Tipp1Change(Sender: TObject); begin Kommentar.Visible:=false; end; procedure TForm1.Button2Click(Sender: TObject); begin close end; procedure TForm1.NeuClick(Sender: TObject); begin zahl1.text:=''; zahl2.text:=''; zahl3.text:=''; zahl4.text:=''; zahl5.text:=''; zahl6.text:=''; Tipp1.text:=''; Tipp2.text:=''; Tipp3.text:=''; Tipp4.text:=''; Tipp5.text:=''; Tipp6.text:=''; Richtige.Text:=''; Kommentar.Visible:=false; end; end. Bitte nochmals um eure Hilfe. thx für die schnellen Postings Danke für eure schnelle hilfe. [edit=SirThornberry]code-tags durch delphi-tags ersetzt - Mfg, SirThornberry[/edit] |
Re: Inkompatible Typen
Aber warum Lottozahlen Fließkommazahlen sind bleibt mir irgendwie verschlossen. Desweiteren solltest du deinen Quellcoe mal etwas besser formatieren, das kann ja keiner lesen.
|
Re: Inkompatible Typen
entschuldigung für die unordnung, aber wer kein plan hat macht es halt nach reihenfolge und so seh ich nun mal durch. Also bitte nich böse sein!
|
Re: Inkompatible Typen
Zitat:
Delphi-Quellcode:
Hier mal dein Code formatiert in Delphi Tags. Hoffe ich habe am Ende deiner langen Procedure nicht abgekackt da ich es in Notepad gemacht habe:
[...]
for i:=1 to Length(Tipp) do begin if Tipp[i-1]<minWert then minWert:=Tipp[i-1]; if Tipp[i-1]>maxWert then maxWert:=Tipp[i-1]; end; if [...]
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var Ziehung, Tipp: Array[1..6] of Extended; Anzahl, Nummern: Integer; Zahl: Extended; Richtig: Integer; Vorhanden: Boolean; Visible: Boolean; I: Integer; MinWert, MaxWert: Extended; begin MinWert:= 1; MaxWert:= 49; for I := 1 to Length(Tipp) do begin if ( Tipp[I - 1] < MinWert ) then begin MinWert := Tipp[I - 1]; if ( Tipp[I - 1] > MaxWert ) then begin MaxWert := Tipp[I - 1]; end; if ( (MinWert < 1) or (MaxWert > 49) ) then begin ShowMessage('Ungüueltige Eingabe...'); end else begin Ziehung[1] := 1 + Random(49); Anzahl:=2; Repeat Zahl := 1 + Random(49); Nummern := 1; Vorhanden := False; Repeat if ( Zahl <> Ziehung[Nummern] ) then begin Nummern := Nummern + 1; end else begin Vorhanden := True; end; Until ( (Anzahl = Nummern) or Vorhanden ); if ( not Vorhanden ) then begin Ziehung[Anzahl] := Zahl; Anzahl := Anzahl + 1; end; Until ( Anzahl > 6 ); end; end; Zahl1.Text := FloatToStr(Ziehung[1]); Zahl2.Text := FloatToStr(Ziehung[2]); Zahl3.Text := FloatToStr(Ziehung[3]); Zahl4.Text := FloatToStr(Ziehung[4]); Zahl5.Text := FloatToStr(Ziehung[5]); Zahl6.Text := FloatToStr(Ziehung[6]); Tipp[1] := StrToFloat(Tipp1.Text); Tipp[2] := StrToFloat(Tipp2.Text); Tipp[3] := StrToFloat(Tipp3.Text); Tipp[4] := StrToFloat(Tipp4.Text); Tipp[5] := StrToFloat(Tipp5.Text); Tipp[6] := StrToFloat(Tipp6.Text); Richtig := 0; for Nummern := 1 to 6 do begin for Anzahl := 1 to 6 do begin if ( Ziehung[Nummern] = Tipp[Anzahl] ) then begin Richtig := Richtig + 1; if ( Richtig < 2 ) then begin Kommentar.Caption := 'Miserable Leistung'; end; if ( Richtig = 2 ) then begin Kommentar.Caption := 'Naja wenigstens etwas!'; end; if ( Richtig > 2 ) then begin Kommentar.Caption := 'Du kommst dem Ziel näher..'; end; if ( Richtig > 4 ) then begin Kommentar.Caption := 'Ich denke das kann was werden bei dir!!!'; end; if ( Richtig = 6 ) then begin Kommentar.Caption := 'Du hast alle übertroffen die Million is dein!!'; end; end; Richtige.Text := FloatToStr(Richtig); Kommentar.Visible := True; end; end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; procedure TForm1.NeuClick(Sender: TObject); begin Zahl1.Text := ''; Zahl2.Text := ''; Zahl3.Text := ''; Zahl4.Text := ''; Zahl5.Text := ''; Zahl6.Text := ''; Tipp1.Text := ''; Tipp2.Text := ''; Tipp3.Text := ''; Tipp4.Text := ''; Tipp5.Text := ''; Tipp6.Text := ''; Richtige.Text := ''; Kommentar.Visible := False; end; procedure TForm1.Tipp1Change(Sender: TObject); begin Kommentar.Visible := False; end; end. |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Die Delphi-IDE" nach "Object-Pascal / Delphi-Language" verschoben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 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