Clasa registryclass nu este înregistrată

Există un modul:

unitate UFDCE;

utilizări
# xA0; Windows, Mesaje, SysUtils, Clase, Grafică, Controale, Formulare, Dialoguri, # xA0; ComCtrls; StdCtrls;

tip
# xA0; TFDCE = clasa (TForm)






# xA0; # xA0; DateTimePicker1: TDateTimePicker;
# xA0; # xA0; procedura FormResize (Expeditor: TObject);
# xA0; sfârșitul;

procedura TFDCE.FormResize (expeditor: TObject);
începe
# xA0; DateTimePicker1.Height: = ClientHeight;
# xA0; DateTimePicker1.Width: = ClientWidth;
se încheie;

Mai departe în program, dacă căutăm această clasă de FindClass ("FDCE");
, apare o eroare: "clasa nu a fost găsită".
Dacă vă înregistrați la crearea formularului principal, același lucru se întâmplă. Spune-mi că e un glitch sau fac ceva greșit? Mulțumesc.

dar nu credeți că TFDCE și FDCE sunt două lucruri diferite?

Se pare că fac ceva greșit sau nu știu ce directivă: nu am înregistrat nici o clasă, de exemplu TListBox.

dacă clasa nu este găsită, atunci fie numele este incorect, fie registrul nu este apelat deloc

Se pare, desigur, că nu se cheamă, ai înțeles de ce?

De exemplu, deoarece modulul nu se află în niciunul dintre

iniţializarea
ShowMessage ("bla bla bla");
Clasa de înregistrare (TFDCE);


> De exemplu, deoarece modulul nu se află în niciunul din

este suficient că este listat în .dpr

Acordați atenție parametrului:

funcția RegisterClass (const lpWndClass: TWndClass): ATOM; stdcall;

și să vedem cum se face înregistrarea în forms.pas


> _Guest_ # xA0; (01.07.08 13:39) [10]

> Întrebarea este mult mai simplă: atunci când creez fereastra principală pe care o execut
> RegistrulClass (TListBox);
> Apoi dați clic pe butonul: FindClass ("TListBox"); - toate erorile: clasa
> nu a fost găsit. De ce? Evident, mi-e lipsă ceva, dar nu o găsesc.

Nu spui ceva.

> Acordați atenție parametrului:

E un pic de altă operă.

Iată un exemplu, căutați diferențe în voi înșivă

utilizări
# xA0; Formulare,
# xA0; principal în "main.pas",
# xA0; altele în "other.pas";

începe
# xA0; Application.Initialize;






# xA0; Application.CreateForm (TForm1, Form1);
# xA0; Application.Run;
end.

interfață
utilizări
# xA0; Windows, Mesaje, SysUtils, Variante, Clase, Grafică, Controale, Formulare,
# xA0; Dialoguri, StdCtrls;

tip
# xA0; TForm1 = clasa (TForm)
# xA0; # xA0; Buton1: TButton;
# xA0; # xA0; procedura Button1Click (Expeditor: TObject);
# xA0; sfârșitul;

var
# xA0; Form1: TForm1;

procedura TForm1.Button1Click (expeditor: TObject);
var
# xA0; F: TCustomForm;
începe
# xA0; F: = TFormClass (FindClass ("TForm2"))) Creați (auto);
# xA0; încercați
# xA0; # xA0; SetStrProp (F, "StrProp", "Bună ziua, lumea!");
# xA0; # xA0; F.ShowModal;
# xA0; în cele din urmă
# xA0; # xA0; F.Free;
# xA0; sfârșitul;
se încheie;

interfață
utilizări
# xA0; Windows, Mesaje, SysUtils, Variante, Clase, Grafică, Controale, Formulare,
# xA0; Dialoguri, StdCtrls;

tip
# xA0; TForm2 = clasa (TForm)
# xA0; # xA0; Edit1: TEdit;
# xA0; # procedură FormShow (expeditor: TObject);
# xA0; privat
# xA0; # xA0; FStrProp: șir;
# xA0; publicată
# xA0; # xA0; proprietatea StrProp: string șterge FStrProp scrie FStrProp;
# xA0; sfârșitul;

var
# xA0; Form2: TForm2;

procedura TForm2.FormShow (expeditor: TObject);
începe
# xA0; Edit1.Text: = FStrProp;
se încheie;


> În momentul creării formularului (nu automat), din care face parte
> această componentă primește mesajul: clasa TFDCE nu a fost găsită.
> # xA0;

în formele de utilizare nu specifică o unitate pentru această componentă?


> _Guest_ # xA0; (01.07.08 14:12) [16]

> # xA0; fac un exemplu simplu deja descris în [10] și încă mai ajung
> eroare.

Faceți același lucru, în noul proiect.
Dacă va fi o eroare la căutarea unei casete de listă, codul este aici.

> În forme de utilizare, unitatea pentru această componentă nu este specificată?

Compilatorul nu va sări peste RegisterClass.


> În momentul creării formularului (nu automat), din care face parte
> această componentă primește mesajul: clasa TFDCE nu a fost găsită

Cazul pentru mici - pentru a găsi ceea ce este în neregulă cu proiectul principal, în care o duzină de forme și o grămadă de cod, dar este clar că aceasta este hemoroizii mei. Mulțumesc tuturor, nu lovit puternic, dacă după ceva timp distrage din nou. Deoarece în cazul în care pentru a alege, nu mă pot imagina: în proiect, pe lângă afișarea datelor în TStringGrid, nu există nimic din baza de date. Voi începe să arunc totul în mod secvențial.

Toți au aruncat cu excepția formei principale - nu funcționează. Destul de accident, nimeni nu are idei decât puteți zdrobi pachetul RegisterClass - FindClass?

codul nu vom vedea?


> _Guest_ # xA0; (01.07.08 15:17) [22]
> Am aruncat totul, cu excepția formei principale - nu funcționează. complet
> în orice caz nimeni nu are nicio idee decât puteți zdrobi RegisterClass
> - FindClass?

Țineți apăsat butonul Ctrl și faceți clic pe mouse-ul pe literele RegisterClass, după ce vă uitați la scrisorile apărute și gândiți-vă foarte mult.

Puteți zdrobi codul, codul.


> Am experimentat că am aflat că această situație este cauzată de utilizări
> QControls # xA0; într-unul din module

Ei bine, el probabil are clasa lui RegisterClass

Memorie: 0.79 MB
Timp: 0.032 sec







Trimiteți-le prietenilor: