Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bild verschieben (https://www.delphipraxis.net/141104-bild-verschieben.html)

Jaegermeister1992 2. Okt 2009 17:33


Bild verschieben
 
Code:
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;
Es handelt sich bei meinem Spiel um ein Kartenspiel.

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

alleinherrscher 2. Okt 2009 17:47

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));

Jaegermeister1992 2. Okt 2009 18:06

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

hugo1990 2. Okt 2009 18:16

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.

alleinherrscher 2. Okt 2009 18:17

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');

Jaegermeister1992 2. Okt 2009 18:23

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?

Matze 2. Okt 2009 18:24

Re: Bild verschieben
 
Das wurde doch bereits genannt:

Delphi-Quellcode:
ImgName := 'Image1';
TImage(FindComponent(ImgName)).Picture.LoadFromFile('...');

alleinherrscher 2. Okt 2009 18:25

Re: Bild verschieben
 
Zitat:

Zitat von Jaegermeister1992
man kann also nicht den Namen eines Bildes durch den Inhalt einer Variable tauschen?

sName := 'Image1'
sName.Picture.Loadfromfile('bla');

des geht nicht iwie?

Das ist doch genau das was ich oben geschrieben habe:

Delphi-Quellcode:
sName:='Image1';
TImage(FindComponent(sName)).picture.loadfromfile('bla');
//edit: Sry, Matze, du warst schneller und ich habs nicht mitbekommen :)

Jaegermeister1992 2. Okt 2009 18:27

Re: Bild verschieben
 
Super Danke!!!
Etz funkts!

Jaegermeister1992 2. Okt 2009 18:41

Re: Bild verschieben
 
kann man auch einem Bild ein anderes zuordnen
also Images1 := Images2 ???


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz