![]() |
Bild verschieben
Code:
Es handelt sich bei meinem Spiel um ein Kartenspiel.
procedure TForm1.Nachlegen(Zahl:integer);
var i:integer; name, name2: string; begin for i:=Zahl+1 to 14 do begin Name := 'S1K' + inttostr(i-1); //S1K und dann noch eine Zahl ist der Name der Karte , auf Deutsch Name2 := 'S1K' + inttostr(i); // S für Spieler 1 für SPieler1 K für Karte und die Zahl dahinter für die Nummer ...... ...... ...... end; end; Diese Procedure ist von mir selber verfasst sie soll dafür sorgen dann wenn eine Karte aus der Hand verschwindet die Karten Rechtsdavon alle ein Feld sozusagen nach links rutschen. Das ganze habe ich mir so vorgestellt das ich es mti einer for schleife mache da durch die procedure ja die Variable Zahl mit rein kommt(dabei handelt es sich um die entfernte nummer der Karte) Sollten nur ja alle anderen Nummern der Karten erreichbar sein. Name steht somit für die Karte wo die Karte von Name2 hinsoll. und des was etz in Name steht ist der name von dem Bild sozusagen. Etz die Frage wie kann ich es machen das der Compilier etz versteht wenn ich schreib Name.Picture, dass damit der Inhalt von Name gemeint ist? Also: zum Beispiel S1K3.Picture für Name und S1K4.Picture für Name2 |
Re: Bild verschieben
Hi und willkommen in der DP!
Ich versteh deine Frage nicht so ganz genau um ehrlich zu sein. Aber kann es sein, dass du sowas suchst wie den Befehl "FindComponent". Da gibst du als Parameter den Namen als String ein, und bekommst eine Komponente zurück:
Delphi-Quellcode:
Name1:='S1K1'; MyPicture:=TImage(FindComponent(Name1)); |
Re: Bild verschieben
So ähnlich, also nochmal:^^
Mal vereinfacht nicht genua auf mein Programm aber mein TImage heißt S1K1 ich möchte etz aber nicht schrieben S1K1.Picture.LoadfromFile('blablabla'); sondern davor eine Variable bestimmen Name heißt und den Inhalt hat S1K1 udn dann halt zum Beispiel des so darstellen: Name.Picture.Loadfromfile('blablabla'); blos Name soll hal umgewandelt werden in S1K1 mfg Jo |
Re: Bild verschieben
Also ich find das immer noch nicht wirklich verständlicher erklärt, aber so wie ich es verstanden habe, was du willst, ist es genau das was alleinherrscher geschrieben hat.
|
Re: Bild verschieben
ooookay...Du willst quasi einen "Platzhalter" für den Variablennamen haben? Bin mir nicht sicher ob das geht... Aber ich denke, dein Problem würde sich viel besser lösen lassen, wenn du mit Arrays arbeitest.
Ich würde dir empfehlen ein zweidimensionales Array vom Typ TImage anzulegen, dann könntest du direkt über die Indizes auf ein Bild zugreifen. Und das ist doch genau das, was du eigentlich willst oder? Also z.B.
Delphi-Quellcode:
MyImageArray:Array [0..15] of TImage; //[...] for x:=1 to bla do for y:=1 to bla do MyImageArray[x,y].picture.loadfromfile('C:\bla.bmp'); |
Re: Bild verschieben
man kann also nicht den Namen eines Bildes durch den Inhalt einer Variable tauschen?
sName := 'Image1' sName.Picture.Loadfromfile('bla'); des geht nicht iwie? |
Re: Bild verschieben
Das wurde doch bereits genannt:
Delphi-Quellcode:
ImgName := 'Image1';
TImage(FindComponent(ImgName)).Picture.LoadFromFile('...'); |
Re: Bild verschieben
Zitat:
Delphi-Quellcode:
//edit: Sry, Matze, du warst schneller und ich habs nicht mitbekommen :)
sName:='Image1';
TImage(FindComponent(sName)).picture.loadfromfile('bla'); |
Re: Bild verschieben
Super Danke!!!
Etz funkts! |
Re: Bild verschieben
kann man auch einem Bild ein anderes zuordnen
also Images1 := Images2 ??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz