2013-05-27 10 views
7

Utworzono niestandardowy formant odziedziczony po TCustomControl i opublikowano właściwość Align z TControl. Jednak, gdy użyłem tego niestandardowego formantu w projekcie C++ Builder, że podniesiony wyjątek"Właściwość aliasu nie istnieje" po odziedziczeniu po TCustomControl

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

Jest to kod do kontroli niestandardowej.

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

Czy sprawdziłeś, że TCustomControl faktycznie odwołuje się do prawidłowego Vcl.Controls.TCustomControl? – Peter

+0

@ PeterVonča Tak, odnosi się do Vcl.Controls.TCustomControl. – UltimaWeapon

Odpowiedz

11

Często ten rodzaj błędu występuje, jeśli pakiet nie został poprawnie odbudowany. Następnie musisz otworzyć projekt pakietu, który zawiera jednostkę "GameListCtrl" i przebudować pakiet. Upewnij się, że aktywujesz opcję pozwalającą RAD Studio tworzyć pliki C++ Builder.

Jeśli to nie pomoże, linker może wybrać zły/stary plik DCU lub obj. Wyszukaj wszystkie dyski i usuń wszystkie znalezione pliki GameListCtrl.dcu i GameListCtrl.obj. Korzystam z UltraSearch z JAM Software, aby szybko przeszukiwać moje lokalne dyski, jest znacznie szybszy niż Windows Search, ponieważ działa bezpośrednio na strukturach NTFS.

Możesz także spróbować przełączyć się do łączenia statycznego dla swojego projektu w opcjach projektu.

+1

Po usunięciu wszystkich plików pakietu i odbudowaniu go. Teraz zadziałało. Dziękuję Ci. – UltimaWeapon

Powiązane problemy