![]() |
Pngimage
Hey Leute,
Ich bin von D7 auf Delphi 2010 umgestiegen. Und ich habe eine Komponente ( Sevenbutton ), in dieser Komponente braucht man um Pngimages zu sehen die Unit "pngimage". Hab ich ja. Aber wenn ich das Programm starte habe ich 45 Errors.
Delphi-Quellcode:
[DCC Error] pngimage.pas(3674): E2064 Left side cannot be assigned to
Das wird dann rot unterlegt
Delphi-Quellcode:
Wenn ich die Unit "Pngimage" weg lasse kann ich das Png Bild nicht sehen :cry:
Byte(Dest^) := Owner.InverseGamma[pByte(Longint(Src) + 2)^]; inc(Dest);
Wie schaffe ich das nun? In delphi 7 klappte das alles ?! gruß Mathias |
AW: Pngimage
D2010 kann PNG von Haus aus
|
AW: Pngimage
Wenn Delphi 2010 das von Haus aus kann, wieso zeigt er mir das dann nicht an?:gruebel:
|
AW: Pngimage
kann es sein, dass du ne alte png-unit eingebunden hast?
|
AW: Pngimage
Ich kann mich erinnern, dass mit Delphi 2009 es ein Update der PNGImage.pas gab und der Link hier im Forum (oder sogar die Unit selbst?) war. Mal danach suchen.
|
AW: Pngimage
Wo kann ich den die "neue" png Unit finden? Wenns nicht geht ist auch nicht schlimm. Muss ich halt mit Bitmaps oder Icons auskommen
|
AW: Pngimage
Hier müsste sie mit dabei sein:
![]() |
AW: Pngimage
Zitat:
z.B. in D2010 "<Program Files>\Embarcadero\RAD Studio\7.0\source\Win32\vcl\pngimage.pas" Was deine Errors betrifft, wäre etwas mehr Code hilfreich... |
AW: Pngimage
Ich glaube das lieht daran das, die Komponente Delphi 2010 nicht kennt. Und verlangt deswegen immer ein
PngImage? Möglich oder? Weil sie von 2005 ist ( Die Komponente ). Mehr Errors sind da nicht. |
AW: Pngimage
Zitat:
|
AW: Pngimage
Vielleicht ist er verwirrt, da er nicht weiß ob er dein pngimage oder das von Delphi 2010 verwenden soll?
MfG Fabian |
AW: Pngimage
Ja welchen Code? Wenn ich die Unit nicht einbinde kommt kein Fehler, aber das Image wird nicht angezeigt wenn ich Pngimage einfüge kommt ein Error den ich schon geschrieben habe ! Ich brauche ja kein Code schreiben und das Pngimage einzufügen ?!
|
AW: Pngimage
Zitat:
![]() Für D2010 gilt also: Es gibt nur ein PngImage und das gehört zur Delphi Library. |
AW: Pngimage
Zitat:
Delphi-Quellcode:
Woher sollen wir denn wissen, was Dest, Owner, und Src sind und was Owner.InverseGamma liefert?
Byte(Dest^) := Owner.InverseGamma[pByte(Longint(Src) + 2)^]; inc(Dest);
Da der Code compiliert, wenn PngImage nicht eingebunden ist, liegt offensichtlich ein Problem mit gleichnamigen Identifiern vor. Das ist mit der Angabe der Code-Zeile, wo der Fehler vom Compiler bemängelt wird, allein nicht zu analysieren. Oder doch? :glaskugel: Nehmen wir an, Owner ist ein TPngImage (das hat nämlich ein InverseGamma). Wenn es ohne
Delphi-Quellcode:
compiliert, muss es noch eine andere Deklaration von TPngImage geben, die in dem Fall für Owner verwendet wird.
uses pngimage
Dest ist offensichlich ein Pointer, aber auf was? Vermutlich nicht auf Byte (dann wäre der Cast überflüssig) sondern einen Char, denn PChar konnte man in früheren Delphi-Versionen einfach inkrementieren. Da aber Char in D2009+ zwei Byte groß ist, lässt der Compiler eine Zuweisung auf die gecastete Pointer-Dereferenz nicht zu. Ergo: Die Deklaration von Dest scheint der Casus Cnactus zu sein! Also entweder du zeigst uns deutlich mehr von deinem Code, oder du suchst alleine weiter. |
AW: Pngimage
Das ist doch die Unit "pngimage.pas" Die hast du doch selber bestimmt oder nicht? Oder soll ich hier nun 1000 Zeiligen Code posten?
|
AW: Pngimage
Zitat:
Ich vermute also, in deinem Suchpfad liegt eine PngImage.pas, die eventuell veraltet ist? Pack die mal irgendwohin, wo der Compiler sie nicht findet und dann versuch's nochmal. |
AW: Pngimage
Der Fehler taucht nur auf wenn ich sie Extra einbinde. Wenn nicht dann kommen keine Fehler aber das Pngimage wird nicht angezeigt. Ich glaube der Fehler liegt bei der Komponente.
|
AW: Pngimage
Es scheint so, als ob er die Version für eine alte Version findet und deshalb neu kompiliert. Entferne den Pfad, in dem du den Source kopierst hat, mal aus dem Bobliotheks-/Suchpfad der IDE
|
AW: Pngimage
Wenn ich das mache, kennt er doch die .dcu der Komponente nicht mehr? Ich weiß nun nicht genau welchen Pfad du meinst...
|
AW: Pngimage
Doch, abe dann die "richtige" Version. Du benötigst die "alte" Version nicht, da diese Unit (zur D-Version passende) bereits Teil der VCL ist.
Zitat:
Zitat:
|
AW: Pngimage
Also wenn ich auf "suchen" gehe und da pngimage eingebe kommt da die die .pas Datei. Aber sie ist laut dem Pfad wohl mit der Jedi Komponente Installiert worden
"C:\Users\Administrator\Downloads\JVCL338CompleteJ CL201-Build3449\jvcl\devtools\MakePNG\pngimage.pas" Und wo kann ich diesen Pfad in Löschen? Ich finde das in Delphi 2010 ziemlich unübersichtlich. |
AW: Pngimage
Habe es gefunden. Es geht wenn ich den Pfad lösche und dann wieder die Pngimage einbinde. Wenn ich sie nicht einbinde geht es nicht aber aber Hauptsache das geht nun! Danke
|
AW: Pngimage
Zitat:
Also aus den Suchpfad rausnehmen/nicht ins Projekt einbinden/Datei umbennen/Datei löschen. MfG Fabian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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 by Thomas Breitkreuz