Ich kann dir da leider nicht viel weiterhelfen =(
Aber ich kann ja mal erzählen, wie's mir ging:
Ich wollte zur Laufzeit ein Array von 32 TGraphicControl-Abkömmlingen erzeugen, die ein Kartenspiel darstellen sollten.
Compiliert wurde die Sache einwandfrei und lief auch ohne Fehler an, es gab nur ein Problem:
Die Komponenten wurden nicht angezeigt
Ich hatte/habe nicht die geringste Ahnung, wo der Fehler lag...
Vielleicht brauchen graphische Elemente eine Sonderbehandlung??
Ich sehe eigentlich nichts, was dagegen spräche, ein Array für solche Aufgaben zu verwenden!
Delphi-Quellcode:
...
var
Form1: TForm1;
CardDeck: array[0..31] of TCard;
procedure InitCardDeck;
var i: Integer;
begin
Randomize;
//Kreuz erzeugen
for i:=0 to 7 do
begin
CardDeck[i]:= TCard.Create(Form1);
CardDeck[i].SetCardSuit(Kreuz);
CardDeck[i].SetCardValue(IntToSkatCardVal(i));
CardDeck[i].Left:= 20 + (i* 10);
CardDeck[i].Top := 20;
CardDeck[i].ShowCard:= true;
end;
//Pik erzeugen
for i:=8 to 15 do
begin
CardDeck[i]:= TCard.Create(Form1);
CardDeck[i].SetCardSuit(Pik);
CardDeck[i].SetCardValue(IntToSkatCardVal(i-8));
CardDeck[i].Left:= 20 + (i* 10);
CardDeck[i].Top := 40 + DEFAULT_CARD_HEIGHT;
CardDeck[i].ShowCard:= true;
end;
//Herz erzeugen
for i:=16 to 23 do
begin
CardDeck[i]:= TCard.Create(Form1);
CardDeck[i].SetCardSuit(Herz);
CardDeck[i].SetCardValue(IntToSkatCardVal(i-16));
CardDeck[i].Left:= 20 + (i* 10);
CardDeck[i].Top := 60 + DEFAULT_CARD_HEIGHT;
CardDeck[i].ShowCard:= true;
end;
//Karo erzeugen
for i:=24 to 31 do
begin
CardDeck[i]:= TCard.Create(Form1);
CardDeck[i].SetCardSuit(Karo);
CardDeck[i].SetCardValue(IntToSkatCardVal(i-24));
CardDeck[i].Left:= 20 + (i* 10);
CardDeck[i].Top := 80 + DEFAULT_CARD_HEIGHT;
CardDeck[i].ShowCard:= true;
end;
end;
Dani H.
At Least I Can Say I Tried