Komponentenerstellung: Resource "TKlassenName" nicht gefunden



  • hi,

    ich habe mir eine klasse erstellt die im KeyPress-Ereignis eine weitere klasse instanzieren soll. jedoch kommt dann immer "Resource TListBoxPopup nicht gefunden". woran kann das liegen?

    // header
    class PACKAGE TEditDropDown : public TEdit
    {
      private:
    
      protected:
    
      public:
    
        DYNAMIC void __fastcall KeyPress(char &Key);
                     __fastcall TEditDropDown(TComponent *Owner);
    };
    
    class TListBoxPopup : public TCustomForm
    {
      private:
    
        TEditDropDown *FOwner;
    
      protected:
    
        virtual void __fastcall CreateParams(TCreateParams &Params);
    
      public:
    
        virtual __fastcall ~TListBoxPopup(void);
                __fastcall  TListBoxPopup(TEditDropDown *AOwner);
    };
    
    extern TListBoxPopup *FPopupForm;
    
    // cpp
    //---------------------------------------------------------------------------
    TListBoxPopup *FPopupForm;
    //---------------------------------------------------------------------------
    
    //---------------------------------------------------------------------------
    __fastcall TEditDropDown::TEditDropDown(TComponent *Owner) : TEdit(Owner)
    {
    }
    //---------------------------------------------------------------------------
    namespace Editdropdown
    {
      void __fastcall PACKAGE Register()
      {
        TComponentClass classes[1] = {__classid(TEditDropDown)};
        RegisterComponents("HMKompos", classes, 0);
      }
    }
    //---------------------------------------------------------------------------
    void __fastcall TEditDropDown::KeyPress(char &Key)
    {
      // hier kommt der fehler
      FPopupForm = new TListBoxPopup(this);
    
    // ...
    
      inherited::KeyPress(Key);
    }
    
    //---------------------------------------------------------------------------
    // TListBoxPopup
    //---------------------------------------------------------------------------
    __fastcall TListBoxPopup::TListBoxPopup(TEditDropDown *Owner) : TCustomForm(Owner)
    {
    // wird gar nicht ausgeführt
    
      FOwner = Owner;
    }
    //---------------------------------------------------------------------------
    __fastcall TListBoxPopup::~TListBoxPopup()
    {
      UnhookPopup();
      UnhookForm();
    }
    //---------------------------------------------------------------------------
    void __fastcall TListBoxPopup::CreateParams(TCreateParams &Params)
    {
      inherited::CreateParams(Params);
    
      Params.Style     = WS_POPUP | WS_CLIPSIBLINGS | WS_VISIBLE | WS_BORDER;
      Params.ExStyle   = WS_EX_TOPMOST | WS_EX_TOOLWINDOW;
      Params.WndParent = Application->Handle;
    }
    //---------------------------------------------------------------------------
    

    [ Dieser Beitrag wurde am 05.06.2003 um 17:16 Uhr von Sunday editiert. ]



  • Hi,
    das klingt jetzt bestimmt trivail! Aber ich schätze die Resource TKlassenName wurde nicht gefunden!
    Woran das liegen kann?
    k.A. vielleicht hast du sie gelöscht, dann musst du sie halt wieder erstellen!

    MFG

    Alexander Sulfrian



  • mit TKlassenName meinte ich TListBoxPopup... hatte ich vergessen zu ändern... 😞

    [ Dieser Beitrag wurde am 05.06.2003 um 17:15 Uhr von Sunday editiert. ]



  • hm, hast du die Projekt- Pfade überprüft ?
    die Unit dem Projekt hinuzugefügt ?



  • naja soll doch ne komponente werden und gehört doch zur dclusr50.bpk. die pfade zum verzeichnis, in dem die kompo liegt, ist korrekt gesetzt. habe in dclusr50.bpk auch andere eigene komponenten drin, die alle funktionieren, aber halt keine mit zwei klassen.

    kompilieren lässt sich die komponente ohne fehler. nur wenn man sie halt auf ein forumlar zieht und alles kompiliert und danach etwas in das Edit eingibt, erscheint der fehler.

    [ Dieser Beitrag wurde am 05.06.2003 um 18:06 Uhr von Sunday editiert. ]



  • wenn der konstruktur mit nem dummy-wert aufgerufen wird, funktioniert es!

    [cpp]
    __fastcall TListBoxPopup::TListBoxPopup(TEditDropDown *Owner) : TCustomForm(Owner, 0 /* dummy-wert */)
    {
    FOwner = Owner;
    }[/cpp]



  • hm,

    solch ein Problem hatte ich auch mal. Es liegt wohl kaum an die anzahl der Klassen nin der Datei. Das funktioniert nämlich bei mir.

    Das Problem hab ich damals gelöst, in dem ich eine neue Kompo geschrieben habe ( Wizard) und den Quellcode der einen Klasse in diese Kompo reinkopiert habe. Merkwürdigerweise lief es dann. 🙄

    Dein PRoblem scheit ähnlich zu sein...


Anmelden zum Antworten