AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PNGImageList

Ein Thema von Spectre · begonnen am 29. Jan 2013 · letzter Beitrag vom 8. Feb 2013
Antwort Antwort
Seite 1 von 2  1 2      
Popov
(Gast)

n/a Beiträge
 
#1

AW: PNGImageList

  Alt 29. Jan 2013, 23:28
Ich dachte die Bezeichnung ist ist Selbsterklärend. Nehmen wir an du hast zwei Bitmaps in die ImageList1 geladen. In dem Fall ist die erste Bitmap die Nr 0, die zweite die Nr 1, usw. Dann nehmen wir an, du willst es in die Bitmap der Image Komponente laden (Image.Picture.Bitmap). Das ganze würde dann so aussehen:

ImageList1.GetBitmap(0, Image1.Picture.Bitmap); Die erste Bitmap in der Liste (hier 0), wird am die Image Komponente Bitmap übergeben.

Zielbitmap ist also die Bitmap in die die Bitmap aus ImageList übergeben wird.
  Mit Zitat antworten Zitat
Spectre

Registriert seit: 29. Jan 2013
Ort: Hamburg
65 Beiträge
 
Delphi XE2 Architect
 
#2

AW: PNGImageList

  Alt 29. Jan 2013, 23:47
hmm...mit "ImageList1.GetBitmap" komme ich nicht weit...sieht aus als hätte die Png komponente eigene befehle :S
google hilft nicht wirklich weiter...ärgerlich. eigentlich möchte ich einfach nur via knopfdruck ein bild aus der imagecollection bzw den bilder die ich vorher reingeladen habe anzeigen :S
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#3

AW: PNGImageList

  Alt 30. Jan 2013, 00:21
Also erstmal zum Unterschied:

Eine TPngImageList ist abgeleitet von einer normalen TImageList und erweiter diese um PNG-Support. Wie jede andere TImageList müssen alle Bilder darin gleich groß sein. Alle Controls, die mit einer TImageList zusammenarbeiten können (z.B. TToolbar), sollten dies auch mit einer TPngImageList tun.

Im Gegensatz dazu können die Bilder in einer TPngImageCollection unterschiedliche Größe haben. Allerdings muss man sich hier um die Darstellung der Bilder selber kümmern.

Hier ein kleines Beispiel, wie man das macht.

Auf ein Form platziere eine TPngImageCollection und fülle diese mit diversen Bildern (über den Editor oder per Code). Dann brauchen wir noch ein TImage und einen TButton auf dem Form. Beim TImage setzen wir das AutoSize auf true (damit es sich an die Bildgröße anpasst). Im ButtonClick-Event steht dann folgender Code:

Delphi-Quellcode:
begin
  Image1.Picture.Graphic := PngImageCollection1.Items[Tag].PngImage;
  Tag := Tag + 1;
  if Tag >= PngImageCollection1.Items.Count then
    Tag := 0;
end;
Mit jedem Button-Click wird nun das nächste Bild aus der Collection dargestellt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Spectre

Registriert seit: 29. Jan 2013
Ort: Hamburg
65 Beiträge
 
Delphi XE2 Architect
 
#4

AW: PNGImageList

  Alt 30. Jan 2013, 00:27
danke für den tip!
habs grad so ausprobiert..allerdings sagt er mir beim compilieren beim TAG (dahin setzt er den cursor)

(Image1.Picture.Graphic := PngImageCollection1.Items[Tag].PngImage = Klasse besitzt keine Standarteigenschaft

:/
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#5

AW: PNGImageList

  Alt 30. Jan 2013, 08:22
..allerdings sagt er mir beim compilieren beim TAG (dahin setzt er den cursor)

(Image1.Picture.Graphic := PngImageCollection1.Items[Tag].PngImage = Klasse besitzt keine Standarteigenschaft
Welche Version der PngComponents setzt du denn ein und mit welcher Delphi-Version? Bei mir klappt das nachweisbar ohne Probleme.

Wenn deine Implementation noch kein Default für die Collection definiert, dann sollte es dieser Aufruf aber tun:

Image1.Picture.Graphic := PngImageCollection1.Items.Items[Tag].PngImage;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Spectre

Registriert seit: 29. Jan 2013
Ort: Hamburg
65 Beiträge
 
Delphi XE2 Architect
 
#6

AW: PNGImageList

  Alt 30. Jan 2013, 11:56
Delphi 7 benutze ich. die png komponente ist von 2003..bischen älter.

ich hab mir mal die X2GraphicList runtergeladen und die x2graphiclist1 und den x2graphiccontainer1 aufs formular gelegt..bilder in die collection reingeladen und nen TImage + button plaziert...wenn ich..

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture := X2Graphiccontainer1.graphics[1].Picture;

end;
diesen code versuche gibts zwar keine fehlermeldung - aber ein bild wird auch nicht angezeigt :S

ich hatte es ursprünglich mit
Code:
Image1.Picture.graphic
probiert aber da gibts nen error bezüglich graphic und Timage
  Mit Zitat antworten Zitat
Spectre

Registriert seit: 29. Jan 2013
Ort: Hamburg
65 Beiträge
 
Delphi XE2 Architect
 
#7

AW: PNGImageList

  Alt 30. Jan 2013, 17:08
na kommt, ihr könnt das

ich möchte einfach nur via knopfdruck aus der png imagelist in ein Timage die bilder anzeigen lassen die ich zuvor in die liste geladen habe..ich kriegs ums verrecken nicht hin! sufu hat auch nicht wirklich was gebracht weil die meisten beispiele sich auf die Imagelist mit BITMAPS konzentrieren, irgendwie bin ich zu blöd für diese komponente..

würde sich jemand erbarmen mir nen beispiel code zu geben mit dem ich experimentieren kann oder nen kleine beispiel exe compilieren?

Ihr seid die besten!

robin
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#8

AW: PNGImageList

  Alt 31. Jan 2013, 09:37
Delphi 7 benutze ich. die png komponente ist von 2003..bischen älter.
Du kannst dir hier den aktuellen Stand herunterladen. Lass dich nicht vom Titel irritieren - die gehen auch mit Delphi 7. Du musst nur die PngImage-Dateien beibehalten, die du schon hast. Seit Delphi 2009 sind die in Delphi enthalten, deshalb sind sie bei den PngComponents nicht mehr dabei.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Spectre

Registriert seit: 29. Jan 2013
Ort: Hamburg
65 Beiträge
 
Delphi XE2 Architect
 
#9

AW: PNGImageList

  Alt 30. Jan 2013, 21:39
Unabhängig davon ob ich die X2GraphicList oder die Pngimagelist verwende, bei

Code:
Image1.Picture.Graphic := PngImageCollection1.Items.Items[Tag].PngImage;
der zeile meldet er mir das pngimage als undefinierten bezeichner, obwohl ich diese 4 in der uses drin hab..: X2CLGraphicList, PngExtraEx,pngimage,uPngImageList; muss ich pngimage noch irgednwie anders klassifizieren? hier mal der ganze code...lach. lustig das man an so "kleinigkeiten" so festhängen kann ;D

hab nen button, nen Timage, ne PngImageList und eine TpngImageCollection auf der form.

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ImgList, X2CLGraphicList, PngExtraEx,pngimage,
  uPngImageList;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    PngImageList1: TPngImageList;
    collection: TPngImageCollection;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Graphic := collection.items.Items[0].pngimage;
end;

end.
danke für die geduld...wiedermal
robin
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#10

AW: PNGImageList

  Alt 30. Jan 2013, 21:44
Du solltest nur die Unit einbinden, von der du die PngImageList verwenden willst. Keine der vier von dir genannten gehört zu den PngComponents, auf die sich mein Code-Beispiel bezieht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:38 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