zmienna nie chce się czyścić w wątku

0

Witam. Mam taki oto kod w którym używam wątku:

 constructor TOdczytywanieKomend.Create;
begin
    inherited Create(False);
end;

procedure TOdczytywanieKomend.Execute;
begin
  FreeOnTerminate := True;// - to dorzuc do watku przed wykonaniem tej funkcji
  while(true) do //pobieraj w nieskonczonosc komendy i wykonuj je. NIC poza ta petla sie nie wykona (bo jest nieskonczona)
  begin
    PobranaKomenda := odczytajKomende(jakasZmienna);
    sleep(3000); //3 sekundy od sprawdzania

    PobranaKomenda := '';
  end;

end;

procedure TMainForm.Button3Click(Sender: TObject);
begin
  ShowMessage(PobranaKomenda);
end; 

Problem polega na tym że zmienna PobranaKomenda nie chce sie czyścić a gdy próbowałam zobaczyć jej zawartość przyciskiem button3 to okazuje się że tekst zawarty w tej zmiennej jest do siebie cały czas dodawany.

Wielki sposób mogłabym wyczyścić ta zmienną w tym wątku?

0

Wątek i nieatomowa zmienna globalna bez korzystania z sekcji krytycznych? Tak się nie robi.
Poza tym nie powinnaś nazywać identyfikatorów w języku polskim, prościej (i znacznie lepiej) po angielsku.

0

Nie pokazałaś najważniejszego czyli odczytajKomende

0

a wystarczy taka prosta czynność jak postawić breakpointa w linijce PobranaKomenda := odczytajKomende(jakasZmienna); i zobaczyć co tam się dzieje...

1 użytkowników online, w tym zalogowanych: 0, gości: 1