Autor Beitrag
delekan
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 22.05.06 07:51 
Halo Leute!
Ich hab folgendes Problem: ich versuche ein Majong Spiel zu Programmieren, dabei sollen auf einem Feld 144 Spielsteine in eine Pyramide aufgestellt werden. Die Steine existieren als .bmp Files. Ich hab versucht auf einer Leeren Form(Spielfeld)mit einer Schleife zur Laufzeit Image Componenten zu erzeugen und ihnen über Eigenschaft Picture Bilder hinzuzufügen. Die Images werden zwar scheinbar erstellt aber ich kriege sie nicht zu sehen. Der Code sieht so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var  j,i,k:integer;  dp:string;
     theImage:TImage;
.
.(Schleifenkopf)
.
theImage:=TImage.Create(Form2);
 theImage.Left:=50*k;
 theImage.Top:=20;
 theImage.Name :='Image'+inttostr(j);
 dp:= layer1[k,i].picName; //Da sind die Pfade zu den Bildern gespeichert (array of rec)
 theImage.Picture.LoadFromFile(dp);

Was mache ich Falsch?
Moderiert von user profile iconjasocul: Delphi-Tags hinzugefügt
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 22.05.06 08:13 
Hi,

Du musst den Parent angeben, z.B.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with TImage.Create(Self) do begin
    Parent := self; // !!!!!!!!
    Name := 'Image111';
    Top := 0;
    Left := 0;
    Width := 100;
    Height := 100;
    Picture.LoadFromFile('C:\test.jpg');
  end;
end;

Gruß
rd3
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Mo 22.05.06 08:23 
Hi
Der Verdacht liegt nahe, das du k nicht als Schleifenvariable genommen hast. Damit ist left irgendwo.
Versuch mal folgendes
Pack auf deine Form ein Panel
schreib in die Create - Anweisung anstatt "Form2" "Self" rein und weise deiner Image mit.Parent:=Panelx den Besitzer zu.
Aber ich glaub, die Info hast du schon. Ich kanns hier leider nict prüfen, aber so müßt es gehen und ändere evtl. noch die Top-Werte entsprechend.
Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....
delekan Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 24.05.06 10:47 
user profile iconoldmax hat folgendes geschrieben:

Der Verdacht liegt nahe, das du k nicht als Schleifenvariable genommen hast.


Ich hatte die Schleife auch in einem externen Programm mit direkter Quellen- u. Koordinatenangabe probiert. Sie ging trotzdem nicht. Das mit dem "parent" hingegen werd ich noch testen. Meld mich wenn es geklappt hat.

Danke!!
delekan Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 29.05.06 07:44 
Ok ich hab die Lösung gefunden. Auch wenn ich immer noch nicht weiss wieso das so ist muss (abgesehen davon dasss der Parent tatsächlich angegeben werden muss) die ganze Schleife auch noch im OnCreate einer Form drin stehen- sonst funktioniert sie nicht.