2013-05-27 14 views
7

Ho creato un controllo personalizzato ereditato da TCustomControl e pubblicato la proprietà Align di TControl. Ma, quando ho usato questo controllo personalizzato in un progetto di C++ Builder, ha sollevato l'eccezione'Proprietà Align non esiste' quando si eredita da TCustomControl

Project Launcher.exe raised exception class EReadError with message 'Property Align does not exist'.

Questo è il codice per il controllo personalizzato.

unit GameListCtrl; 

interface 

uses 
    SysUtils, Classes, Controls; 

type 
    TGameList = class(TCustomControl) 
    private 
    protected 
    procedure Paint; override; 
    public 
    { Public declarations } 
    published 
    property Align default alLeft; 
    end; 

implementation 

{ TGameList } 

procedure TGameList.Paint; 
begin 
    inherited; 
end; 

end. 
+0

Avete controllato che TCustomControl faccia effettivamente riferimento a Vcl.Controls.TCustomControl corretto? – Peter

+0

@ PeterVonča Sì, fa riferimento a Vcl.Controls.TCustomControl. – UltimaWeapon

risposta

11

Spesso questo tipo di errore si verifica se il pacchetto non è stato ricostruito correttamente. Quindi è necessario aprire il progetto del pacchetto che include l'unità "GameListCtrl" e ricostruire il pacchetto. Assicurarsi di attivare l'opzione per consentire a RAD Studio di creare i file C++ Builder.

Se ciò non aiuta il linker può scegliere un file DCU o obj vecchio/errato. Cerca tutte le tue unità ed elimina tutti i file GameListCtrl.dcu e GameListCtrl.obj che puoi trovare. Uso UltraSearch da JAM Software per cercare rapidamente le unità locali, è molto più veloce di Windows Search poiché funziona direttamente sulle strutture NTFS.

Si può anche provare a passare al collegamento statico per il progetto nelle opzioni del progetto.

+1

Dopo aver eliminato tutti i file del pacchetto e ricostruirlo. Ha funzionato ora. Grazie. – UltimaWeapon

Problemi correlati