Mein Testprogramm besteht aus einer Form mit einem Button. Drückt man diesen, wird eine neue modale Form angezeigt, die Informationen über das Programm gibt. Dafür benötigte ich ein spezielles Label, das ich als neue Komponente über ein Package namens meinlabel erfolgreich in die Lazarus IDE eingebunden habe.
Programm / Units sehen im Prinzip folgendermaßen aus:
Code: Alles auswählen
program Test; {$MODE Delphi}
uses Interfaces, Forms, Unit1;
{$R *.res}
begin
...
Application.CreateForm(TFormUnit1, FormUnit1);
Application.Run;
end.
Code: Alles auswählen
unit Unit1; {$MODE Delphi}
interface
uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
TFormUnit1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
FormUnit1: TFormUnit1;
implementation
{$R *.lfm}
uses UnitAbout;
procedure TFormUnit1.Button1Click(Sender: TObject);
begin
with TFormAbout.Create(Application) do
begin
ShowModal;
Free;
end;
end;
end.
Code: Alles auswählen
unit UnitAbout; {$MODE Delphi}
interface
uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, UnitMeinLabel;
type
TFormAbout = class(TForm)
MeinLabel1: TMeinLabel;
...
Nach dem Test habe ich jetzt in einem funktionieren _anderen_ Programm entsprechend einen weiteren Button und die entsprechende OnClick-Routine hinzugefügt und die uses-Deklaration um UnitAbout erweitert (und natürlich UnitAbout.pas und UnitAbout.lfm unverändert in das Verzeichnis des anderen Programms kopiert). Jetzt tritt beim Kompilieren dieses anderen, erweiterten Programms ein fataler Fehler auf:
UnitAbout.pas(0,0) Fatal: Can not find unit UnitMeinLabel used by UnitAbout. Check if package meinlabel is in the dependencies.
Bitte um fachkundige Erleuchtung, was hier im Vergleich zum Testprogramm plötzlich falsch sein soll ...