Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Malen auf DXDraw (https://www.delphipraxis.net/15534-malen-auf-dxdraw.html)

PhöniX 30. Jan 2004 13:14


Malen auf DXDraw
 
Hi, nochmal ne Frage zu DirectX (DelphiX):

Wie kann man denn Bilder aus der DXImageList auf das DXDraw male.?
Ich kenn schon ne Methode, aber..
Delphi-Quellcode:
DXImageList.Items[0].draw(DXDraw.Surface, 0, 0, 0);
passt mir nicht.
Ich will eine Möglichkeit, dass man Items "herstellt" und den Platz auf dem DXDraw festlegt. In diese Items soll man dann ein Bild hineinladen können. Das ist einfacher, denn wenn bei tatendruck ein bild verändert werden soll, muss man einfach nur dem Item ein neues Bild zuweisen..

Gibt es eine solche Möglichkeit?? :gruebel:

citybreaker 30. Jan 2004 13:32

Re: Malen auf DXDraw
 
Am besten verwendest du TImageSprite.

Delphi-Quellcode:
...

type
 TItem = class(TImageSprite)
 private
 public
  procedure erzeugen;
end;

var
 Item: TItem;

...

procedure TItem.erzeugen;
begin
  Image := DxImageList.Items.Find('Bild1');
  Width := Image.Width;
  Height := Image.Height;
  X := 10;
  Y := 10;
  Z := 1;
end;

procedure TForm1.Create ...
begin
  Item := TItem.Create(DxImageSprite.Engine);
  Item.erzeugen;
end;

PhöniX 30. Jan 2004 15:43

Re: Malen auf DXDraw
 
Zitat:

public
procedure erzeugen;
end;
was ist mit "erzeugen" gemeint??
is delphi nicht mit engl´scher programmsprache?? :gruebel:

PhöniX 30. Jan 2004 16:37

Re: Malen auf DXDraw
 
Alles klar jetzt...aber:

kann man bei diesem code den Items namen geben, sodass man später nur noch sagen muss:
In Item[1] Bild 'bla' laden ???
Delphi-Quellcode:
procedure TFormZero.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
 DXImageList.Items[0].draw(DXDraw.Surface, 0, 0, 0);
 DXImageList.Items[1].draw(DXDraw.Surface, 240, 10, 0);
 DXImageList.Items[3].draw(DXDraw.Surface, 10, 120, 0);
 DXImageList.Items[4].draw(DXDraw.Surface, 10, 180, 0);
 DXImageList.Items[6].draw(DXDraw.Surface, 10, 240, 0);
 DXImageList.Items[8].draw(DXDraw.Surface, 10, 300, 0);
 DXImageList.Items[10].draw(DXDraw.Surface, 10, 360, 0);
 DXImageList.Items[12].draw(DXDraw.Surface, 310, 130, 0);
 DXDraw.Flip;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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-2025 by Thomas Breitkreuz