Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Vlakna v delphi

Dobry den.
Je vlákno, které frčí furt dokola.
Potřebují ho s Form resetovat.
Prostě když kliknu ve form třeba na button, aby ve vlaknu proměnná radek byla zas 1 a smyčka začala zase od 1.

repeat
for radek := 1 to Form1.StringGrid1.RowCount do
begin

End;
until (Terminated = True);

Předmět Autor Datum
Na stisk tlacitka vyskocis z cyklu - prikaz Break Tim skocis opet na zacatek Repeat a cyklus FOR pob…
Jan Fiala 21.01.2014 11:22
Jan Fiala
K formulárovým prvkom sa z iného než UI vlákna nepristupuje, inak riskuješ nestabilné správanie cele…
los 21.01.2014 20:31
los
Nejak mi tam chýba to vlákno - Thread...
pme 21.01.2014 20:34
pme
Podle mne je ten kod obsah Thread.Execute Čtení z formuláře ve vláknu není tak kritické. Krititcké… poslední
Jan Fiala 22.01.2014 11:20
Jan Fiala

Na stisk tlacitka vyskocis z cyklu - prikaz Break
Tim skocis opet na zacatek Repeat a cyklus FOR pobezi od zacatku
Musis si zajistit predani informace. Pokud je to jen jedno vlakno, pak se to da resit treba tim, ze tlacitko nastavi StringGrid.Tag na 1, vlakno to zjisti a prerusi FOR cyklus.
Pak v metode Synchronize vynuluje TAG u stringgridu.

K formulárovým prvkom sa z iného než UI vlákna nepristupuje, inak riskuješ nestabilné správanie celej aplikácie. Keď nastane nejaká zmena v StringGride, tak môžeš rovno obslúžiť nejakú udalosť, ktorá nastane - takže nepotrebuješ v slučke neustále prechádzať všetky riadky v StringGride. Zvážil by som, či tam vôbec to ďalšie vlákno potrebuješ.

Podle mne je ten kod obsah Thread.Execute

Čtení z formuláře ve vláknu není tak kritické. Krititcké je z vlákna do formuláře zasahovat a k tomu se používá metoda Synchronize.

Podle toho návrhu, bych tipoval na nějakou aplikaci, která dokola pingá na seznam IP...

Zpět do poradny Odpovědět na původní otázku Nahoru