AGB  ·  Datenschutz  ·  Impressum  







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

Inkompatible Typen

Ein Thema von greenkohl23 · begonnen am 8. Mai 2007 · letzter Beitrag vom 9. Mai 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
greenkohl23

Registriert seit: 7. Mai 2007
12 Beiträge
 
#1

Inkompatible Typen

  Alt 8. Mai 2007, 00:16
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:
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;
hinter dem ersten Tipp sagt er schon nach der Klammer Inkompatible Typen woran liegts?

mfg greenkohl

[edit=SirThornberry]Code-Tags durch Delphitags ersetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Inkompatible Typen

  Alt 8. Mai 2007, 00:19
Weil Tipp ein Array ist.
  Mit Zitat antworten Zitat
greenkohl23

Registriert seit: 7. Mai 2007
12 Beiträge
 
#3

Re: Inkompatible Typen

  Alt 8. Mai 2007, 00:36
das heißt was muss ich tun, damit ich es so ähnlich gestalten kann?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Inkompatible Typen

  Alt 8. Mai 2007, 00:44
Warum ist das Array überhaupt von Datentyp Extended?
Zitat von Lottofee:
Die Gewinnzahlen von heute:
5 10 8,79 42 1,25 25,99


Was willst du mit der Abfrage erreichen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#5

Re: Inkompatible Typen

  Alt 8. Mai 2007, 00:49
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:
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;
ok?
Muh macht die kUh
  Mit Zitat antworten Zitat
greenkohl23

Registriert seit: 7. Mai 2007
12 Beiträge
 
#6

Re: Inkompatible Typen

  Alt 8. Mai 2007, 01:22
ich poste euch einfach mal den kompletten quelltext.

Delphi-Quellcode:
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.
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.

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]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Inkompatible Typen

  Alt 8. Mai 2007, 01:30
Aber warum Lottozahlen Fließkommazahlen sind bleibt mir irgendwie verschlossen. Desweiteren solltest du deinen Quellcoe mal etwas besser formatieren, das kann ja keiner lesen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
greenkohl23

Registriert seit: 7. Mai 2007
12 Beiträge
 
#8

Re: Inkompatible Typen

  Alt 8. Mai 2007, 01:35
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!
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Inkompatible Typen

  Alt 8. Mai 2007, 04:28
Zitat von greenkohl23:
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!
Aber hier hatteste n Plan oder nicht?

Delphi-Quellcode:
[...]
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
[...]
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:

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.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
8. Mai 2007, 06:28
Dieses Thema wurde von "Matze" von "Die Delphi-IDE" nach "Object-Pascal / Delphi-Language" verschoben.
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 16:41 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