error: can not find unit ... check if is in the dependencies

Rund um die LCL und andere Komponenten
Antworten
Lagavulin16
Beiträge: 7
Registriert: Di 18. Sep 2012, 14:37

error: can not find unit ... check if is in the dependencies

Beitrag von Lagavulin16 »

(Lazarus 1.0 / FPC 2.6.0 / Windows)

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;      
    ...
Keine Probleme, funktioniert alles wie gewünscht.

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 ...

Benutzeravatar
theo
Beiträge: 10905
Registriert: Mo 11. Sep 2006, 19:01

Re: error: can not find unit ... check if is in the dependencies

Beitrag von theo »

Steht doch da:
Lagavulin16 hat geschrieben: Check if package meinlabel is in the dependencies.
Bei deinem Originalprojekt, wurde das Package meinlabel mit dem platzieren der Komponente ins Projekt aufgenommen. Beim Unit-Kopieren ist das nicht so.

Kannst du über den Projektinspektor nachholen.

Lagavulin16
Beiträge: 7
Registriert: Di 18. Sep 2012, 14:37

Re: error: can not find unit ... check if is in the dependencies

Beitrag von Lagavulin16 »

theo hat geschrieben:... Bei deinem Originalprojekt, wurde das Package meinlabel mit dem platzieren der Komponente ins Projekt aufgenommen. Beim Unit-Kopieren ist das nicht so.

Kannst du über den Projektinspektor nachholen.
Danke Theo, jetzt funktioniert's - wieder was gelernt.

Bei Delphi gab's das nicht, dass man beim Kopieren Komponenten immer wieder "anmelden" muss. Was ist der Grund/Sinn? Die Sachen, die mit der IDE mitgeliefert werden, muss man ja auch nicht immer wieder über den PI ins Projekt aufnehmen.

Antworten