Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Liste für Images - problem mit TImageList (https://www.delphipraxis.net/55541-liste-fuer-images-problem-mit-timagelist.html)

tobi1701 22. Okt 2005 23:49


Liste für Images - problem mit TImageList
 
hallo,

ich habe ein problem mit der TImageList, denn ich weiss ehrlich gesagt nicht so ganz, was sie macht. zumindest macht sie nicht das, was ich möchte.

ich weiss nicht, ob hier jemand DelphiX kennt, aber zumindest ist dort eine ImageList dabei, die genau tut, was ich möchte, allerdings noch vieles mehr und daher möchte ich mir lieber selber eine erstellen.

soe soll so funktionieren, dass ich ein eine liste von TPicturte elementen darin ablegen kann:

MyImageList.Items[0].Picture

sie soll all die eigenschaften und methoden haben, die auch TList hat.
ich weiss, es gibt ja noch die TObjectList, jedoch weiss ich damit noch weniger anzufangen.
ich kann der TObjectList zwar ein Bild zufügen, aber danach kann ich nicht mehr darauf zugreifen:

Delphi-Quellcode:
procedure xyz;
var
  ObjectList:TObjectList;
  Picture:TPicture;

begin
  ObjectList:=TObjectList.Create;
  Picture:=TPicture.Create;
  Picture.Bitmap.LoadFromFile('testpic.bmp');
  ObjectList.Add(Picture);
so, dass problem ist ja jetzt, dass ich auf das Picture in der liste nicht mehr zugreifen kann, denn wenn ich folgendes mache:

Delphi-Quellcode:
  Picture:=ObjectList.Items[0];
dann bekomme ich natürlich zurecht den fehler "incompatible types: TPicture and TObject.

daher bräuchte ich keine TObject-liste, sondern eine TPicture-liste. wie kann ich das denn realisieren, ich stehe da gedanklich gerade ziemlich auf dem schlauch.
mit der TImageList habe ich etwas rumprobiert, allerdings enthält sie einerseits wohl sachen, die ichnicht benötige und andererseits setzt sie grössen von bildern irgendwie fest und der editor, der beim doppelklick auf das symbol geöffnet wird, bringt bei manchen bitmaps die fehlermeldung, dass das bild zu gross sei und verändert werden müsse (ich habe bilder in der grössenordnung von 100x100 pixeln benutzt und ein TImage hat damit zB keinerlei probleme).

ausserdem würde ich auch ansonsten gerne wissen, wie man so eine liste selbst erstellen kann (also einen beliebigen datentyp als .Items haben).

x000x 23. Okt 2005 02:34

Re: Liste für Images - problem mit TImageList
 
Moin moin,
Zitat:

Zitat von tobi1701
...
so, dass problem ist ja jetzt, dass ich auf das Picture in der liste nicht mehr zugreifen kann, denn wenn ich folgendes mache:

Delphi-Quellcode:
  Picture:=ObjectList.Items[0];
dann bekomme ich natürlich zurecht den fehler "incompatible types: TPicture and TObject.

einfach casten...
Delphi-Quellcode:
  Picture:=TPicture(ObjectList.Items[0]);

tobi1701 23. Okt 2005 02:56

Re: Liste für Images - problem mit TImageList
 
ach, sowas kannte ich noch gar nicht. vielen dank.

hm, aber bei einem kurzen test musste ich leider feststellen, dass mein programm dabei abstürtzt (access violation) :(

ich habe folgendes gemacht, vielleicht ist das ja aber auch nicht möglich:

[/delphi]
Canvas.Draw(x,y,TBitmap(ObjectList.Items[0]));
[delphi]

und ich habe der ObjectList natürlich auch ein TBitmap hinzugefügt und nicht wie im ersten beispiel ein TPicture.
ausserdem habe ich 2 bitmaps hinzugefügt, um auch .Items[1] auszuprobieren, da ich mir gar nicht sicher bin, ob bei 0 oder bei 1 mit dem zählen begonnen wird.

himitsu 23. Okt 2005 03:17

Re: Liste für Images - problem mit TImageList
 
Standardmäßig wird immer bei 0 mit dem Zählen begonnen. (es sei den es ist anders angegeben, oder es handelt sich um einen String)

Wie hat'n das BitMap übergeben (samt dem erstellen dessen).
Nicht daß es inzwischen wieder freigegeben wurde, oder etwas anderes in dieser Art mit diesem passiert ist?

PS: ich glaub bei deinem letzten Delphi-Tag ist was durcheinander geraten ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 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