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 2 von 4     12 34      
Benutzerbild von Luckie
Luckie

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

Re: Inkompatible Typen

  Alt 8. Mai 2007, 10:24
Zitat von Mackhack:
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
[...]
Nein, das war der Code aus dem Thread hier.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: Inkompatible Typen

  Alt 8. Mai 2007, 11:01
Zitat von Luckie:
Nein, das war der Code aus dem Thread hier.
Ja, das ist ja der Plan, der ihm vorgelegt wurde. Nun muss er nur noch den Schatz bergen...
  Mit Zitat antworten Zitat
greenkohl23

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

Re: Inkompatible Typen

  Alt 8. Mai 2007, 16:02
Danke Mackhack für dein Posting, aber leider geht das so nich, denn ich bekomm 3 Fehler.

Nach dem then kommt die Meldung "erwartet aber THEN gefunden"
Code:
 begin
      MinWert := Tipp[I - 1];
      if ( Tipp[I - 1] > MaxWert then
Dann nach dem RICHTIG; kommt die Meldung "Inkompatible Typen:'Integer und procedure untyped pointer or untyped parameter'"

Code:
begin
          Richtig := Inc(Richtig);
Und der letzte Fehler ist, die bei der Procedure wird gesagt: Anweisung erwartet aber Procedure gefunden
Code:
procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end;
danke für eure Mühen
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

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

Re: Inkompatible Typen

  Alt 8. Mai 2007, 16:05
if ( Tipp[I - 1] > MaxWert) then Hast die Klammer vergessen

inc(Richtig); Reicht aus, ist ne Prozedur

Vor dem letzten fehlt wahrscheinlich irgendwo ein "end;"
Richard Mahr
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Inkompatible Typen

  Alt 8. Mai 2007, 16:12
@greenkohl23: Könntest du künftig bitte die delphi-tags anstelle der code-tags verwenden wenn du delphi-quelltext postest? Das lässt sich einfach besser lesen. Danke
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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
 
#16

Re: Inkompatible Typen

  Alt 8. Mai 2007, 16:17
So hab den Code mal eben in Delphi ueberarbeitet.

Es kann zumindest compiliert werden.
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
greenkohl23

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

Re: Inkompatible Typen

  Alt 8. Mai 2007, 16:36
Hi, die oben genannten Probs sind nu alle erledigt aber ein altes Problem is immer noch vorhanden.

Zitat:
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.
Und was kann ich tun, damit sich das wenigstens wieder ändert?

Hier nochmal das gesamte:
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
    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ültige 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 );
    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
          Inc(Richtig);
          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;
      end;
      Richtige.Text := FloatToStr(Richtig);
      Kommentar.Visible := True;
    end;
  end;
  end;
  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.
  Mit Zitat antworten Zitat
greenkohl23

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

Re: Inkompatible Typen

  Alt 8. Mai 2007, 23:43
na keiner mehr ne Idee?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: Inkompatible Typen

  Alt 9. Mai 2007, 09:19
Habe in Deinem Code mal etwas rumeditiert.

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 Tipp[0] ist in Deinem Array nicht definiert
    if ((Tipp[i] < MinWert) and (Tipp[i] > MaxWert)) then // bewegt sich der Tipp ausserhalb der Grenzen
                                                           //(würde ich schon bei der Eingabe abfangen wollen
      begin
        ShowMessage('Ungültige Eingabe...');
        break;
      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 );
        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
                Inc(Richtig);
              end;
            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;
      end;
      Richtige.Text := FloatToStr(Richtig);
      Kommentar.Visible := True;
    end;
  end;
end;
nicht getestet!!

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
greenkohl23

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

Re: Inkompatible Typen

  Alt 9. Mai 2007, 15:11
Danke für deinen Tipp, aber wenn ich das mache dann macht er einfach gar nix mehr. Vllt haste ja noch nen Tipp für mich freu mich über alles!!!

mfg greenkohl23
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 18:49 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