Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TGIFImage dynamisch erzeugen, um Speicher zu schonen (https://www.delphipraxis.net/39299-tgifimage-dynamisch-erzeugen-um-speicher-zu-schonen.html)

necromundo 31. Jan 2005 16:32


TGIFImage dynamisch erzeugen, um Speicher zu schonen
 
hallo!

ich bin grade dabei, für meinen mp3rechner mit touchscreen ein programm im lcars-design zu schreiben, was aber recht grafikaufwendig ist!
ich versuche, das so zu realisieren, dass bei jeder aktion andere buttons und so angezeigt werden und um den speicher zu schonen wollte ich die bilder dynamisch als objekte erzeugen, wenn sie gebraucht werden und vernichten, wenn sie nicht mehr gebraucht werden!

es sind viele animationen drin, daher habe ich hier die klasse TGIFImage verwendet!

jetzt zu meiner eigentlichen frage:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var gifbild: TGIFImage;
begin
  gifbild := TGIFImage.create;
  gifbild.LoadFromFile('test.gif');
  gifbild.AutoSize := true;
end;
wenn ich diesen code ausführe, sagt mir der compiler, dass TGIFImage.create weitere parameter erwartet, und zwar ein TComponent!
was kommt dahin? fehler gibt es nicht wirklich bei der ausführung, egal ob ich nun "nil", "form1" oder sonst ein objekt da rein schreibe!

ausserdem hab ich schon bei vielen quellen im netz gesehen, dass der konstruktor auch ohne parameter funktioniert hat! hab ich ne andere version davon?

bitte helft mir, ich verzweifel! :(

ciao, Benny

Dax 31. Jan 2005 16:38

Re: TGIFImage dynamisch erzeugen, um Speicher zu schonen
 
Wenns doch mit nil und Form1 funktioniert.. Warum machst du's dann nicht so? Die Komponenten, die du im INet gefunden hast, waren bestimmt nur von TObject abgeleitet statt von TComponent.. Im großen und ganzen macht es aber keinen Unterschied ;-)

BKempf 31. Jan 2005 16:39

Re: TGIFImage dynamisch erzeugen, um Speicher zu schonen
 
Evtl. wird noch ein Owner erwartet, also eine Komponente, die der Besitzer des neuen Bildes sein soll. Der kann üblicherweise auch nil sein.

necromundo 31. Jan 2005 16:50

Re: TGIFImage dynamisch erzeugen, um Speicher zu schonen
 
hey!

hab das problem schon wieder selbst gelöst! ich frag mich langsam, warum ich immer wieder in foren schreibe, wenn ichs nachher doch hinkriege! ;)

also ich habe mir mal ein paar beispiele vom autor der klasse angesehen und festgestellt, dass also Owner da "self" reinkommt, ich schätze, das bezieht sich auf das formblatt, oder?
naja, und ein parent sollte man noch angeben, damit der compiler wohl weiss, wo das ding hin soll!

im endeffekt klappts dann so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var gifbild: TGIFImage;
begin
  gifbild := TGIFImage.Create(self);
  gifbild.Parent := Form1;
  gifbild.Align := alClient;
  gifbild.LoadFromFile('test.gif');
  gifbild.AutoSize := true;
end;
@dax: nee, es gab ja nur keine fehler, das bild wurde aber leider auch nicht angezeigt! ;)

ciao, Benny


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.

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