Ich sitze gerade an einem sehr
interessanten Fehler, den ich noch so recht verstehe. Ich habe mir ein paar Komponenten geschrieben und in Packages gepackt, was ja nach ein wenig einlesen keinerlei Problem mehr ist. Ich habe nun auch eine Trennung zwischen Designtime- und Runtime-Packages umgesetzt. Nun hab ich ein Komponente geschrieben die von TPngImageList (Bestandteil der
PngComponents -- gibt es hierfür eigentlich eine original Quelle?) abgeleitet ist.
Runtime-
Package:
Delphi-Quellcode:
package ApAnimatedPngImageListRun;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'ApComponents ‒ ApAnimatedPngImageList Runtime'}
{$LIBSUFFIX 'DXE'}
{$RUNONLY}
{$IMPLICITBUILD ON}
requires
rtl,
vclimg,
vcl,
PngComponents,
ApCommonRun,
ApMultimediaTimerRun;
contains
ApAnimatedPngImageList
in '
..\..\Source\ApAnimatedPngImageList.pas';
end.
Designtime-
Package:
Delphi-Quellcode:
package ApAnimatedPngImageListDesign;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'ApComponents ‒ ApAnimatedPngImageList Designtime'}
{$LIBSUFFIX 'DXE'}
{$DESIGNONLY}
{$IMPLICITBUILD ON}
requires
rtl,
ApAnimatedPngImageListRun;
contains
ApAnimatedPngImageListReg
in '
..\..\Source\ApAnimatedPngImageListReg.pas';
end.
Während sich das Runtime-
Package ohne Probleme erzeugen lässt, bekomme ich beim erzeugen des Designtime-Packages folgende Fehlermeldung:
Code:
[DCC Fataler Fehler] PngImageList.pas(1270): E2411
Unit ApAnimatedPngImageList in
Package ApAnimatedPngImageListRun verweist auf
Unit PngImageList, die in keinem
Package vorhanden ist.
Package-Units dürfen nur auf
Package-Units verweisen
In der Onlinehilfe steht nichts zu diesem Fehler und ich kann ihn auch einfach nicht nachvollziehen, denn in dem
Package PngComponents finde ich die
Unit PngImageList:
Delphi-Quellcode:
package PngComponents;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO OFF}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS OFF}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO OFF}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'Png Components'}
{$LIBSUFFIX '140'}
{$RUNONLY}
{$IMPLICITBUILD ON}
requires
vclactnband,
vcl,
rtl,
vclimg;
contains
PngSpeedButton
in '
..\Source\PngSpeedButton.pas',
PngFunctions
in '
..\Source\PngFunctions.pas',
PngImageList
in '
..\Source\PngImageList.pas',
PngBitBtn
in '
..\Source\PngBitBtn.pas',
PngButtonFunctions
in '
..\Source\PngButtonFunctions.pas',
PngCheckListBox
in '
..\Source\PngCheckListBox.pas';
end.
Ich bin echt für jeden Rat offen!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)