Bir yayınlama, oynatıcının geçerli olduğundan emin olmak için gerçek nesne türünü denetler ve değilse bir istisna oluşturur. Bir "hard cast" (TMyClass(MyObj)
stili) kontrol etmiyor, sadece derleyicinin cast'ın geçerli olduğunu varsaymasını söyler.
ClassNameIs öğesinin doğru döndüğü, ancak yayınlamanın başarısız olduğu bir durum söz konusuysa, bu, aynı ada sahip iki farklı birimdeki iki farklı sınıfa sahip olduğunuz anlamına gelir ve as-cast yanlışlara dökülmeye çalışılır bir. Bu aynı zamanda hard-cast'ınızın yanlış yere döküm anlamına geldiği anlamına gelir ve bu da hafıza bozulmasına neden olabilir.
"TMyclass =" için tam bir proje araması yapın ve birden çok bildirimin nerede olduğunu görmek için, sınıflardan birini yeniden adlandırın veya tam tanımı kullanın (MyUnit.TMyClass olarak kullanın). yayınlamaya çalışıyor.
Bu oldukça fazla etiket. Sanırım 'delphi' yeterli olurdu. –
Sorunu işaret ettiğin için teşekkürler Sadece işaret ediyordum –
DLL kullanıyor musunuz? DLL'ler sınıf kimliğini bozar. –