
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
beginEnd;
until (Terminated = True);
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š.
Nejak mi tam chýba to vlákno - Thread...
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...