Crearea dinamică a unui cronometru înainte de începerea aplicației

crearea dinamică a cronometrului înainte de începerea aplicației

Fișierul .dpr nu funcționează
(se generează eroare de compilare)
creați TTimer
Cum se face corect?

utilizări
# xA0; Formulare,






# xA0; Windows,
# xA0; extctrls,
# xA0; Clase,
# xA0; unitate55 în "D: \ Program Files \ Borland \ Delphi5 \ Bin \ unit55.pas";


procedură # xA0; # xA0; on_Timer (Expeditor: TObject);
începe
# xA0; # xA0; # xA0; // codul handlerului
# xA0; # xA0; # xA0; fl: = false;
se încheie;
var
h: HWND;
tm: TTimer;
fl: boolean;
începe
# xA0; Application.Initialize;
# xA0; fl: = adevărat;
# xA0; tm: = TTimer.Create (Aplicație);
# xA0; tm.Interval: = 100;
# xA0; tm.OnTimer: = on_Timer; //<==  [Error] Project1.dpr(24):
# xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; // Tipuri incompatibile:
# xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; // indicatorul de metode și procedura obișnuită
# xA0; tm.Enabled: = true;

# xA0; Application.Initialize;
# xA0; Application.CreateForm (TForm1, Form1);
# xA0; în timp ce (fl) face application.ProcessMessages;
# xA0; tm.free;
# xA0; Application.Run;
end.

1 De ce trebuie să aplicați. Inițializați de două ori
2 TTimer poate fi creat fără aplicație






3 OnTimer ar trebui să fie (după cum probabil ați citit și imbătat) prin metoda obiectului, mai degrabă decât printr-o procedură obișnuită
4 Și în cele din urmă tot ceea ce a scris fără limbă, la care ați scris, este redus

Handlerul de evenimente al obiectului trebuie să fie metoda unui obiect și nu doar o procedură.

În general, nu este clar din cod, de ce nu doar pune timer pe formularul principal și obține același lucru fără probleme. Dar dacă vreți cu adevărat, scrieți-vă descendentul TTimer, adăugați-l la manipulatorul OnTimer și lăsați-l să se ocupe de el însuși.

PS:
1 unit55 - :) horror
2 dar de ce ar trebui să vă: HWND
3 Application.ProcessMessages înainte de Application.Run este o idee misto!

Puteți rula o aplicație mică în loc de un cronometru,
dar nu vreau

Esența este următoarea: după Application.CreateForm (TForm1, Form1);
înainte de apariția formularului, se deschide o fereastră pe ecran, care
în dispozitivul de acționare a timerului trebuie să fie ucis.
Hmm. Nu poate fi mai ușor să o creați?

h: HWND - desigur, trebuie să eliminați procedura
> Application.ProcessMessages to Application.Run este rece
> idee!
Dumnezeu are grijă de amar, așa cum a spus călugăria.

> după aplicarea.CreateForm (TForm1, Form1);
> înainte de apariția formularului, se deschide o fereastră pe ecran, care
> în dispozitivul de acționare temporizator trebuie să fie ucis.

Ce fereastră? De unde a venit? De ce să-l omorâți? Și de ce neapărat pe cronometru?

> În unite, trecerea creionului de mai sus trece
> normal, dar cum să fiu aici?

Aduceți cronometrul într-o unitate. Este posibil în același loc, unde Form1.

P.S.
Înainte de a apela Application.Run, timer-ul încă nu funcționează.

Da, toate vasele ingenioase simple sunt adevărate.
Rămâne doar aplicația externă.

Da, nenorocitule? scufundați FindWindow în timp? acolo somn și ProcessMessages - adică Programul va aștepta până când apare fereastra și apoi vă veți ucide.

Memorie: 0,75 MB
Sincronizare: 0.089 sec







Articole similare

Trimiteți-le prietenilor: