Einzelnen Beitrag anzeigen

wiwa53

Registriert seit: 19. Aug 2020
Ort: Berlin
4 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Inkompatible Typen

  Alt 19. Aug 2020, 12:40
Delphi-Version: 10.1 Berlin
Hallo, bin neu hier und möchte Eure Hilfe.
Ich spiele ein bisschen mit OOP und baue ein Objekt für ein Kartenspiel.
Das Objekt (TCard) kann ich initialisieren (create) und ein Blatt-Array (vom Type TCard) von mehreren Karten generieren, mischen und rudimentär darstellen.
Um das Blatt auf mehrere Stapel/Spieler aufzuteilen nutze ich mehrere Blatt-Arrays, denen ich per Copy(Blatt-Array, Index, Anzahl) einen Kartenstapel zuweise, dabei bekomme ich einen Fehler "Inkompatible Typen" obwohl die vom gleichen Type sind.
Kann mir das jemand erklären?

Hier folgen Auszüge meines Quellcodes:

type
CardWert = (ass,zwei,drei,vier,fuenf,sechs,sieben,acht,neun,z ehn,bube,dame,koenig,jokerw);
CardFarbe = (kreuz,pik,herz,karo,jokerf);
CardMotiv = TBitmap;

TCard = class(TObject)
private
{ private declarations }
Farbe : CardFarbe;
Wert : CardWert;
Count : Integer;
Motiv :CardMotiv;
MotivBack : CardMotiv;
path:string;
Zahl:integer;

protected
{ protected declarations }
public
{ public declarations }
constructor Create(CWert:CardWert; CFarbe : CardFarbe; CCount : Integer; CMotiv, BMotiv :CardMotiv; pa:string; za:integer);
published
{ published declarations }
end;

...
...
...

var
Form1: TForm1;
Blatt: array of TCard; // alle Karten
a , b : array of TCard;
tb : array of TCard;


implementation

...

es folgen der constructor create ....

und weitere prozeduren ...

...

dann kommt die Prozedur mit dem Fehler:

procedure TForm1.Abheben;
var a,t,zz,i : integer;

begin
zz:=0;
repeat
randomize;
a:=random(length(blatt));

inc(zz);
until ((a > 30) and (a < 90)); // Abheben min. 30 max. 90 Karten von 109

setlength(tb,a);
tb:= copy(blatt,0,a-1); {inkompatible typen????}
{ TODO : Aufklärung "Inkompatible Typen" ???? }
end;
  Mit Zitat antworten Zitat