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 ?!
Die einzige Code-Zeile, die du bisher rausgerückt hast ist diese:
Byte(Dest^) := Owner.InverseGamma[pByte(Longint(Src) + 2)^]; inc(Dest);
Woher sollen wir denn wissen, was Dest, Owner, und Src sind und was Owner.InverseGamma liefert?
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?
Nehmen wir an, Owner ist ein TPngImage (das hat nämlich ein InverseGamma). Wenn es ohne
uses pngimage
compiliert, muss es noch eine andere Deklaration von TPngImage geben, die in dem Fall für Owner verwendet wird.
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.