Fire Threads
Bine ai venit!
Noi înșine nu suntem locali, vă ajutăm decât puteți, oameni buni.
Făcând clic pe elementul din meniu, CreateThread creează un fir, pornește o procedură care efectuează unele calcule și arată o fereastră cu o bara de progres pentru afișarea fluxului procesului.
procedura TMainForm.Action8Execute (Expeditor: TObject);
var
x: Cardinal;
pr: Pointer;
începe
pr: = @ TMainForm.anythread;
CreareThreadă (zero, 0, pr, zero, 0, x);
se încheie;
procedura TMainForm.anythread;
var
i: întreg;
număr: întreg;
începe
FormProgress.Show;
număr: = 10000;
FormProgress.ProgressBar1.Max: = număr;
pentru i: = 0 pentru a conta
începe
FormProgress.ProgressBar1.StepIt;
se încheie;
FormProgress.Close;
se încheie;
Crearea unei ferestre cu o bară de progres are loc în timpul fazei de lansare a aplicației.
începe
Application.Initialize;
Aplicație.CreateForm (TMainForm, MainForm);
Application.CreateForm (TFormProgress, FormProgress);
Application.Run;
end.
Problema este următoarea:
Când se închide formularul principal de cerere, apare o eroare
Excepție EOSError în modul _____. Exe la ______
Eroare de sistem. Cod: 1400.
Mâner fereastră nevalid.
Dacă același lucru se face direct din procedura de apelare a meniului (fără fir), nu apare o astfel de eroare. Ie după deschiderea și închiderea ferestrei din fir, fereastra modifică mânerul. Cum să o salvați înainte de a apela firul, apoi să îl eliberați corect?
Urmăriți răspunsurile la această întrebare prin RSS