Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponenten über Befehl erstellen (https://www.delphipraxis.net/81728-komponenten-ueber-befehl-erstellen.html)

rawsoul 2. Dez 2006 19:45


Komponenten über Befehl erstellen
 
N'Abend zusammen!

Ich sitze zur Zeit an einem Game, welches Komplett über TImage visualisiert wird. In diesem Spiel sollen per Tastendruck neue Images gesetzt werden, immer das gleiche. Ich hatte es erst so gelöst, dass ich die maximale Anzahl von Images außerhalb des sichtbaren Bereiches gesetzt habe und dann über den Tastendruck erst auf die definierte Position gesetzt :?

Mein alter Informatiklehrer sagte, man könne Instanzen erzeugen... Ich habe es bereits mit create versucht, jedoch verstehe ich die Syntax nicht :oops:, und die Delphi Hilfe sagt mir, das Thema sei nicht vorhanden.

Kann mir wer entweder ein konkretes Beispiel für create() zeigen, oder möglicher Weise sogar eine komplett andere Idee vorschlagen? ;)

Liebe Grüße,
Frank.

[edit=SirThornberry]Schreibfehler im Titel korrigiert - Mfg, SirThornberry[/edit]

Balu der Bär 2. Dez 2006 19:50

Re: Komponenter über Befehl erstellen
 
Delphi-Quellcode:
var
test: TImage;

....

test := TImage.Create(self);
test.parent := Form1;
test.top := 20;
test.left := 20;
test.picture := ...
Oder guck mal hier: http://www.delphipraxis.net/internal...ct.php?t=91839

rawsoul 2. Dez 2006 20:03

Re: Komponenter über Befehl erstellen
 
Klingt sehr interessant und nachvollziehbar, aber .picture will meinen dateipfad nicht annehmen :(
Wie habe ich ihn denn zu deklarieren?

Balu der Bär 2. Dez 2006 20:04

Re: Komponenter über Befehl erstellen
 
Du musst ein TPicture-Objekt übergeben. ;)

DGL-luke 2. Dez 2006 20:09

Re: Komponenter über Befehl erstellen
 
Test.Picture.LoadFromFile könnte helfen.

rawsoul 2. Dez 2006 20:19

Re: Komponenter über Befehl erstellen
 
Oh ja, das war's, danke :)

Trotz alledem, ich komme nicht weiter :( Sorry dass ich euer Forum mit solchen Fragen 'zumülle'...

Nächstes Problem: Angeblich sei die Parent des Images nicht initialisiert worden, zumindest schmiert mir das Programm beim compilen ab. EAccessViolation im Project1.exe sagt er mir...

Balu der Bär 2. Dez 2006 20:22

Re: Komponenter über Befehl erstellen
 
Was hast du denn als Parent angegeben?

rawsoul 2. Dez 2006 20:22

Re: Komponenter über Befehl erstellen
 
Wie in deinem Beispiel: Form1

Balu der Bär 2. Dez 2006 20:23

Re: Komponenter über Befehl erstellen
 
Heißt dein Formular denn auch Form1? Ansonsten gib mal self an und guck was passiert.

rawsoul 2. Dez 2006 20:27

Re: Komponenter über Befehl erstellen
 
Ja, es heißt Form1. Auch mit self als Parent bekomme ich den gleichen Fehler zurück.

Delphi-Quellcode:
procedure TForm1.keypressTIMERTimer(Sender: TObject);
begin
// helpscreen
  if getAsyncKeyState(vk_f1) < 0 then
  helpimage.visible:=true else
  helpimage.visible:=false;

// marker rechts
  if getasynckeystate(vk_right) < 0 then
    if markerimage.left=768 then markerimage.left:=0 else markerimage.left:=markerimage.left+32;

// marker links
  if getasynckeystate(vk_left) < 0 then
    if markerimage.left=0 then markerimage.left:=768 else markerimage.left:=markerimage.left-32;

// marker hoch
  if getasynckeystate(vk_up) < 0 then
    if markerimage.top=0 then markerimage.top:=448 else markerimage.top:=markerimage.top-32;

// marker runter
  if getasynckeystate(vk_down) < 0 then
    if markerimage.top=448 then markerimage.top:=0 else markerimage.top:=markerimage.top+32;

// cannon setzen
if getasynckeystate(vk_up) < 0 then
    cannon:=timage.create(self); //cannon ist eine globale variable
    cannon.parent:=self;
    cannon.top:=markerimage.top;
    cannon.left:=markerimage.left;
    cannon.picture.loadfromfile('gfx\decal3.bmp');
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr.
Seite 1 von 3  1 23      

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