Hallo alle zusammen, ich bin gerade dabei, ein Brettspiel zu programmieren und habe für jede Spielfigur ein image:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| TYPE SpielerX = Record image: TImage; text: TLabel; feld: integer; end; Spieler1 = ARRAY[1..4] of SpielerX;
Var Spieler:Spieler1; |
^^Ich habe statt Record auch schon object versucht
Ich gebe den images von Spieler[1-4] durch eine oncreate procedure einer unit die Zuweisung zu einem existierenden, festen image:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm4.FormCreate(Sender: TObject); begin unit2.Spieler[1].image:=Form1.Image3; unit2.Spieler[1].text:=Form1.Label2; unit2.Spieler[1].feld:=0; unit2.Spieler[2].image:=Form1.Image4; unit2.Spieler[2].text:=Form1.Label3; unit2.Spieler[2].feld:=0; unit2.Spieler[3].image:=Form1.Image5; unit2.Spieler[3].text:=Form1.Label4; unit2.Spieler[3].feld:=0; unit2.Spieler[4].image:=Form1.Image6; unit2.Spieler[4].text:=Form1.Label5; unit2.Spieler[4].feld:=0; |
Mein Problem ist, dass ich aber nur mit
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
|
Spieler[wer].image.Left:=Ort[wer].ul; Spieler[wer].image.Top:=Ort[wer].uh + 30; Spieler[wer].text.Left:=Ort[wer].ul + 12; Spieler[wer].text.Top:=Ort[wer].uh + 35; Spieler[wer].feld:=wfeld; |
Wer = integervariable, die den altuellen Spieler angibt
bei Spieler 1 eine Wirkung erreich, die anderen drei images klammern sich alle oben links fest und lassen sich nur bewegen, wenn ich sie direkt anspreche, also mit image2.left oder so. ich möchte das aber über das array machen, um unnötigen aufwand beim Spielerwechsel zu umgehen. Hat jmd. eine Idee???