AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Liste für Images - problem mit TImageList
Thema durchsuchen
Ansicht
Themen-Optionen

Liste für Images - problem mit TImageList

Ein Thema von tobi1701 · begonnen am 22. Okt 2005 · letzter Beitrag vom 23. Okt 2005
Antwort Antwort
tobi1701

Registriert seit: 16. Okt 2005
30 Beiträge
 
#1

Liste für Images - problem mit TImageList

  Alt 22. Okt 2005, 23:49
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:

  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).
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Liste für Images - problem mit TImageList

  Alt 23. Okt 2005, 02:34
Moin moin,
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:

  Picture:=ObjectList.Items[0]; dann bekomme ich natürlich zurecht den fehler "incompatible types: TPicture and TObject.
einfach casten...
  Picture:=TPicture(ObjectList.Items[0]);
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
tobi1701

Registriert seit: 16. Okt 2005
30 Beiträge
 
#3

Re: Liste für Images - problem mit TImageList

  Alt 23. Okt 2005, 02:56
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#4

Re: Liste für Images - problem mit TImageList

  Alt 23. Okt 2005, 03:17
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 ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 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