Cum de a depăși eroarea - 1400 mâner nevalid fereastră

Cum se depășește eroarea "1400: mâner de fereastră nevalid"?

Creez un fir în care va fi necesar să prindeți niște mesaje. Prin urmare, în proiectant creez o fereastră:







# xA0; m_hook_window: = TWinControl.Creați (zero);
# xA0; m_hook_window.Visible: = false;
# xA0; m_hook_window.Left: = - 1;
# xA0; m_hook_window.Top: = - 1;
# xA0; m_hook_window.Width: = 1;
# xA0; m_hook_window.Height: = 1;
# xA0; m_hook_window.ParentWindow: = Application.Handle;

Ei bine, îmi schimb mâna pe cont propriu.

Totul merge bine.

Opresc firul din program și sună Distruge, # xA0 și pe linie
# xA0; m_hook_window.Free;

Se produce o eroare EOSerror: "Eroare sistem. Cod 1400: mâner fereastră nevalid". Cum să depășim?

> Creez un flux în care va fi necesar să prindeți ceva
> mesaje. Prin urmare, în proiectant creez o fereastră:

În general, firul poate procesa (unele) mesaje
și fără fereastră.

> Ei bine și eu schimb agentul de ieșire pe.
> Totul funcționează bine.







> Am oprit un flux din program și am cauzat distrugerea, # xA0 și pe
> rând
> # xA0; m_hook_window.Free;

Acest act este foarte îndoielnic.

Și aplicația win32?

În opinia mea, AllocateHWND nu este sigură în legătură cu firul.

2 Leonid Troyanovsky: mulțumesc. Astfel câștigat fără excepție.

Ei bine, pentru a atribui ceva la m_hook_window.ParentWindow. Și ce altceva poți să atribui?

> # xA0; m_hook_window.Free;
> Acest act este foarte îndoielnic.

P.S. Aplicație Win32.

Și de ce a fost rău versiunea mea originală? La urma urmei, a accesat doar un thread acest m_hook_window?

De ce există "siguranța firului" aici? Din cauza prezenței mesajelor de aplicare.proces în flux?

>> # xA0; m_hook_window.ParentWindow: = Application.Handle;
>> De ce?

> Ei bine, pentru a atribui ceva la m_hook_window.ParentWindow. A
> ce altceva puteți atribui?

Mânerul ferestrei a fost creat în același fir.
Deși, aparent, nu foarte reușit este ideea utilizării unei ferestre copil.

>> # xA0; m_hook_window.Free;
>> Acest act este foarte îndoielnic.

Dacă chiar de la început, chiar crearea ferestrei este îndoielnică,
Dacă este creat în constructor, nu este o fereastră
creat fir.
Ei bine, și cu distrugerea nu este totul netedă, controalele sunt incluse
în controalele și așa mai departe. Plus consistenta -
La sfârșitul ferestrei flux nu mai este (fereastra - proprietatea de flux).

> 2 Embankments C. deci pot folosi AllocateHWND?
> Poate ceva în plus. măsuri de luat pentru a crește

Memorie: 0,74 MB
Durată: 0,15 secunde







Articole similare

Trimiteți-le prietenilor: