procedure TForm2.FormActivate(Sender: TObject);
var
Dosya: TextFile;
DosyaAdi, Satir: string;
begin
DosyaAdi := 'c:\netlog.txt';
AssignFile(Dosya, DosyaAdi);
{$I-}
Reset(Dosya);
if IOResult = 0 then
while not EOF(Dosya) do
begin
ReadLn(Dosya, Satir); // bir satır oku.
form2.Edit1.Text:=Satir;
form2.Edit1.Refresh;
sleep (500);
end
else
ShowMessage('Dosya açma hatası!');
CloseFile(Dosya);
{$I+}
end;
bu döngüden aynı form üzerinde bir butona basarak çıkmak mümkünmü?
bu döngü pc kilitliyor...
Bazen sert rüzgarlar eser başını öne eğmekten asla korkma
procedure TForm1.Button1Click(Sender: TObject);
var
Dosya: TextFile;
FExit: Boolean;
DosyaAdi, Satir: string;
begin
DosyaAdi := 'c:\netlog.txt';
AssignFile(Dosya, DosyaAdi);
{$I-}
Reset(Dosya);
if IOResult = 0 then
while not EOF(Dosya) and (not FExit=true ) do
begin
Application.ProcessMessages;
ReadLn(Dosya, Satir); // bir satır oku.
form1.Edit1.Text:=Satir;
form1.Edit1.Refresh;
sleep(200);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
FExit: Boolean;
begin
FExit:= True;
end;
end.
sonuç olumsuz...
döngü bitmeden çıkmıyor...
Thread olayını biraz araştırıp deneyeceğim...
Bazen sert rüzgarlar eser başını öne eğmekten asla korkma
viewtopic.php?t=1693&highlight=thread
de bulunan codu formun neresine yazacagım....?
bu thread olayı ile ilgili olarak baya bir şey ögrendim. ancak nasıl yapılacagı ile ilgili hiç bir şey bulamadım doğru dürüst, konuya hakim üstatlar konuyu biraz daha açabilirlermi... çünkü çok sık kullanılan bir işlem bu...
var
FExit: Boolean;
procedure ......
while not EOF(Dosya) or (not FExit) do
begin
ReadLn(Dosya, Satir); // bir satır oku.
form1.Edit1.Text:=Satir;
form1.Edit1.Refresh;
Application.ProcessMessages;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
FExit:= True;
end;
end.
şeklinde düzelttim.
En iyi yöntem thread. Ancak belli konularda tecrübe ister.