Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Packages: E2411: [...] Package-Units dürfen nur auf Package-Units verweisen

  Alt 12. Jan 2011, 15:07
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)
  Mit Zitat antworten Zitat