Lazarus - thread
Zdravim.
Jak je to v lazarusu s vlakny?
Zatím vše co jsem dělal v delphi mi fungovalo i v lazarusu.
Vlakna však ne.
V delphi je toto funkční.
V lazarusu se mu nelibi vlakno.Resume; ale sežere to.
unit1.pas(45,15) Warning: Symbol "Resume" is deprecated
Synchronize(Zapis); neprojde
unit1.pas(55,19) Error: Incompatible type for arg no. 1: Got "untyped", expected "<procedure variable type of procedure of object;Register>"
TVlakno = class(TThread)
private
protected
procedure Execute; override;
procedure Zapis;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var vlakno:TVlakno;
begin
vlakno:=TVlakno.Create(true);
vlakno.Resume;
end;
procedure TVlakno.Execute;
begin
while not terminated do begin
Beep();
sleep(2000);
end;
Synchronize(Zapis);
end;
procedure TVlakno.Zapis;
begin
end ;
end.
Potřebují jedno vlakno, ktere bude zapisovat vysledky do komponenty ve from1
Strašne ťažké si pozrieť Multithreaded Application Tutorial...
Namiesto vlakno.Resume použi vlakno.Start.... všetko potrebné v odkaze...
Nějak to Synchronize(Zapis) se nelibí lazarusu pod linuxem.
Pod Win ok.
Na obou mam Lazarus 1.6 FPC 3
unit1.pas(157,19) Error: Incompatible type for arg no. 1: Got "untyped", expected "<procedure variable type of procedure of object;StdCall>"
Si snáď mongol? Tak, ako je to v tom príklade prečo neskúsiš?
To jsem zkoušel.
Vyskočí placka.
Projekt vykonal vyjimku třidy RunError(232) na adrese 68.