[Lazarus] Unable to find the unit if the component class "TNoBackPage"

Mattias Gaertner nc-gaertnma at netcologne.de
Wed Mar 11 12:27:55 CET 2009


On Wed, 11 Mar 2009 11:30:52 +0100
Roland Turcan <konf at rotursoft.sk> wrote:

> Hello lazarus project!
> 
> I have my own component, which successfully installed into Lazarus.
> When I use this component on any form after reopening/reloading form
> it reports an error. That is a simple notebook implementation with no
> background to get pages transparent.
> 
> That component's unit contains:
> 
> unit NoBackNotebook;
> 
> INTERFACE
> 
> USES  LMessages, SysUtils, Classes, Graphics, Controls, Forms,
> Dialogs, ExtCtrls, LCLType;
> 
> TYPE
>   TNoBackPage = class(TCustomControl)
>   private
>   ...
> 
>   TNoBackNotebook = class(TCustomControl)
>   private
>     FPageList: TList;
>     FAccess: TStrings;
>     FPageIndex: Integer;
>   ...
> 
> IMPLEMENTATION
> 
> type
>   TNoBackPageAccess = class(TStrings)
>   private
>     PageList: TList;
>     Notebook: TNoBackNotebook;
> 
> constructor TNoBackNotebook.Create(AOwner: TComponent);
> const SDefault = 'Default';
> begin
>   inherited Create(AOwner);
>   Width := 150;
>   Height := 150;
>   FPageList := TList.Create;
>   FAccess := TNoBackPageAccess.Create(FPageList, Self);
>   FPageIndex := -1;
>   FAccess.Add(SDefault);
>   PageIndex := 0;
>   Exclude(FComponentStyle, csInheritable);
>   if not Registered then
>   begin
>     Classes.RegisterClasses([TNoBackPage]);
>     Registered := True;
>   end;
> end;
> 
> --------------------------
> 
> LFM file contains of form contains:
> 
> ...
>   object NoBackNotebook1: TNoBackNotebook
>     Left = 184
>     Height = 150
>     Top = 104
>     Width = 150
>     TabOrder = 1
>     object TNoBackPage
>       Left = 0
>       Top = 0
>       Caption = 'Default'
>     end
>   end
> ...
> 
> ---------------------------
> 
> When Lazarus starts this is reported:
> 
> TMainIDE.ParseCmdLineOptions:
>   PrimaryConfigPath="/Users/test/.lazarus"
>   SecondaryConfigPath="/etc/lazarus"
> NOTE: help options config file not found - using defaults
> TMainIDE.DoLoadLFM
> A /usr/local/share/lazarus/rotursoft/tests/components/unit1.pas
> IsPartOfProject=True QuickCheckLFMBuffer
> LFMBuffer=/usr/local/share/lazarus/rotursoft/tests/components/unit1.lfm
> FindMissingClass :TNoBackPage IsInherited=False TMainIDE.DoLoadLFM
> loading nested class TNoBackPage needed
> by /usr/local/share/lazarus/rotursoft/tests/components/unit1.pas
> TMainIDE.DoLoadComponentDependencyHidden /usr/local/share/lazarus/rotursoft/tests/components/unit1.pas
> AComponentClassName=TNoBackPage AComponentClass=nil
> TCarbonBitBtn.SetFocus Error: SetKeyboardFocus  failed with result
> -30585 TCarbonBit
> 
> 
> -------
> 
> The fact is, that this component was working in October 2008 when I
> used my project, but latest build I am using not.
> 
> Thanks for all ideas what I can change.

Have you tried to register the class TNoBackPage earlier, for example
in a Register procedure?

Mattias




More information about the Lazarus mailing list