Witam,
zapoznałem się podstawami wątków w Delphi i napisałem już kilka programów obsługujących wątki. Jednak od rana mam pewien problem którego nie potrafię rozwiązać.
Piszę sobie moduł w którym znajdą się najczęściej używane przeze mnie procedury i funkcje. Wśród nich jest procedura, która będzie odpowiadać za przewijanie się tekstu (pojedyńczej linii). Oto ona:
procedure RS.PrzewijajLinieTXT(zrodlo, cel: String; czestotliwosc: word = 200);
var
licznik: integer;
begin
licznik := 0;
while (true) do
begin
cel := copy(zrodlo, licznik, Length(zrodlo)-1);
inc(licznik, 1);
sleep(czestotliwosc);
end;
end;
Problem polega na tym, że gdy w wątku chcę ją wykorzystać (gdy się do niej odnoszę), to nie działa:
procedure TPrzewijanieLinijki.Execute;
begin
myRS.PrzewijajLinieTXT(MainForm.Edit2.Text, MainForm.Edit3.Text, 100);
end;
Edit2 i Edit3 to pola do testowania procedury. W Edit2 jest tekst, Edit3 jest pusty. myRS to zmienna odnosząca się do klasy znajdującej się w moim module.
Powyższa instrukcja nie działa (tekst się nie przesuwa), jednak gdy treść tej procedury przekopiuję z mojego modułu i wkleję do metody Execute, wszystko działa. Dlaczego tak się dzieje? Jak to zmienić?
Pozdrawiam!