![]() |
Graphics32 anno domini 2012
Moin Moin.
Ich muss in einer VCL Anwendung PNG Grafiken 128x128 Pixel verwenden. Diese Grafiken werden außerdem in 48x48 TImages gestretched. Was sch... aussieht. Also habe ich gesucht und auf meinem eigenen Rechner graphics32 gefunden. Also aktuelle Version geholt und los geht's ...nicht. Die aktuelle Version (aktuell=2017) 1.9.1 kann nur unter aufwendigem Rumgefummel (soweit ich das beurteilen kann) unter Delphi 10.3.3 zum laufen (wenn überhaupt) gebracht werden. Dazu habe ich jetzt mal keine Lust. Aber so gar keine. Gibt es im Jahre 2020 von Embarcadero für Delphi eine Stretchlösung die den heute allgemein üblichen grafischen Qualitätsansprüchen genügt oder bleibt es dabei das jeder Pixel per Hammer und Meissel aus dem LED Bildschirm gekloppt werden muss? creehawk |
AW: Graphics32 anno domini 2012
|
AW: Graphics32 anno domini 2012
|
AW: Graphics32 anno domini 2012
Die SourceForge Seite dazu wird wohl seit längerem nicht mehr gepflegt, und das ist auch wo die 2012er Version das Neuste ist. Darüber bin ich auch schon mal gestolpert. Wäre gut, wenn das mal jemand löschen könnte der das kann/darf.
|
AW: Graphics32 anno domini 2012
Zitat:
Immerhin gibt es relativ prominent den Link auf das git-Repository |
AW: Graphics32 anno domini 2012
Soweit mir bekannt ist, kann die VirtualImageList Lösung von Delphi
die zur HiDPI Unterstützung umgesetzt wurde besseres Stretching. |
AW: Graphics32 anno domini 2012
|
AW: Graphics32 anno domini 2012
Moin Moin.
Es gibt also doch Hoffnung. Ich lege also zunächst mal Hammer und Meissel weg. GitHub aktuellest Version hatte ich am schon am Wickel, aber da muss man erst mal sehen ob das 10.3.3 auch frisst. Und die letzte Post ist auch sehr interessant! Ich bedanke mich umständlich!:thumb: creehawk |
AW: Graphics32 anno domini 2012
Ich nutze Graphics32Version = '2.0.0 alpha'; in Delphi 10.3.3 - leider weiss ich nicht mehr, was ich angepasst habe. Viel war's aber nicht.
Ich weiss, dass dir das nun nicht viel nützt, aber du weisst wenigstens, dass es funktioniert. |
AW: Graphics32 anno domini 2012
Moin Moin.
So, jetzt habe ich das alles mal durchgenudelt. Image32 kann viel, macht aber bei PNG's mit Transparenz Fehler. Graphics32 ist eine Installations/Einbindungskatastrophe: wer nicht Delphi 47 Semester lang studiert hat kriegt das nicht gebacken. Und das ist auch entschieden zuviel Arbeit. Wobei ehrlich gesagt: ich kämpfe IT-mäßig eher mit Datenbanken rum als mit grafischen Problemen, so das mir etliche Termini der Grafikkünstler auch nicht geläufig sind. Dann habe ich mir die von Embarcadero selbst stammende TImageCollection und TVirtualImageList gegriffen. Damit komme ich schon eher zurecht und vor allem ohne viel Aufstand und ohne Hammer und Meissel. Bis jetzt. Also: Ich habe auf der Form eine TImagecollection gesetzt und 257 128er Png's eingelesen. Prima. Dann eine TVirtualImageList gesetzt und als Quelle für diese die TImageCollection angegeben. Prima. Dann die TVirtualImageList als Quelle in den SmallImages einer TListview angegeben. Prima. Läuft. Auch und gerade von der Qualität der Grafiken her. (128 > 48) Jetzt das Problem: ich muss immer wieder andere Png's entsprechend einer Sortierung verwenden. WIE kann ich jetzt in die TVirtualImageList PROGRAMMATISCH einzelne Bilder aus der TImageCollection einlesen? Und bevor einer sagt "Wie in die TImagelist auch!" : prima, wie geht das da? Hat jemand einen Dunst? creehawk |
AW: Graphics32 anno domini 2012
Zitat:
Delphi-Quellcode:
VirtualImageList1.BeginUpdate;
try VirtualImageList1.Clear; VirtualImageList1.Add('Image 1', 'address-book'); VirtualImageList1.Add('Image 2', 'alert'); finally VirtualImageList1.EndUpdate; end; |
AW: Graphics32 anno domini 2012
Okay, hatte ich auch gesehen und folgendes gemacht:
Auf der Form ist eine TImageCollection und TVirtualImageList vorhanden, TImageCollection hat wie gesagt 257 128er Png's, TVirtualImageList ist leer und hat die TImageCollection als ImageCollection vermerkt. Der jeweilige Bildname kommt aus einer XML Datei und entspricht exakt dem Namen in der TImageCollection.
Delphi-Quellcode:
Nach dem Durchlauf ist in der VirtualImageList nichts drin wenn ich VirtuelImageList.count vertrauen darf. Setze ich VirtualImageList1.Add(BildName,I), also I als Index, holt er die Bilder zwar, aber natürlich nur in der Reihenfolge 0,1,2,3,..... was mir jetzt nicht wirkltich hilft.
Var
I:Integer; BILD:String; begin For I := 0 to ShortListItemsNodes.length-1 do begin BILD := ShortListItemsNodes.Item[I].attributes[6].Text; VirtualImageList1.Add(BildName,BildName); end; end; Und jetzt der Witz: Setze ich manuell einzelne Bilder wie
Delphi-Quellcode:
werden diese anstandlos verarbeitet und angezeigt. Versteh ich jetzt überhaupt nicht.
Main.VirtualImageList1.add('icon_cat_0','icon_cat_0');
Main.VirtualImageList1.add('icon_eagle_0','icon_eagle_0'); Main.VirtualImageList1.add('icon_fish_0','icon_fish_0'); creehawk |
AW: Graphics32 anno domini 2012
BILD <> BildName
|
AW: Graphics32 anno domini 2012
Ja, klar, habe mich hier verschrieben. Soll heißen:
Delphi-Quellcode:
Ergebnis : geht trotzdem nicht.
Var
I:Integer; BildName:String; begin For I := 0 to ShortListItemsNodes.length-1 do begin BildName := ShortListItemsNodes.Item[I].attributes[6].Text; VirtualImageList1.Add(BildName,BildName); end; end; creehawk |
AW: Graphics32 anno domini 2012
Und was sagt der Debugger steht in Bildname?
|
AW: Graphics32 anno domini 2012
Asche auf mein Haupt.
Ich habe den Fehler gefunden. In der XML steht der Name der Grafik ohne eine Zusatz (_0), in der ImageList natrülich mit. Da habe ich ständig drüber weg gelesen. Ich bedanke mich sehr. Als funktioniert tadellos. creehawk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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