Thread yapı içinde gauge fonksiyonu çalışmıyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sulocan
Üye
Mesajlar: 11
Kayıt: 28 Haz 2005 06:01
Konum: İZMİR

Thread yapı içinde gauge fonksiyonu çalışmıyor

Mesaj gönderen sulocan »

Forum da verilen thread yapıyı kullandım. Yani iki döngünün aynı anda çalışmasını istiyorum ve bu döngülerin değişkenini Gauge1.Progress'le birlikte kullanamıyorum. Gauge gibi bir componet var mı delphide. Yardımcı olursanız sevinirim.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

ProgressBar kullanılabilir.
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Ben az önce gauge ve progressbar ile denemeler yaptım ve her ikiside normal çalışıyor. Örnek kodu aşağıda gönderiyorum..

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Gauges;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ProgressBar1: TProgressBar;
    ProgressBar2: TProgressBar;
    Gauge1: TGauge;
    Gauge2: TGauge;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  hThr1, hThr2: THandle;
implementation

{$R *.dfm}

procedure Thread1;
var
  i: Integer;
begin
  for i := 1 to 100 do
  begin
    Form1.ProgressBar1.Position:=i;
    Form1.Gauge1.Progress:=i;
    sleep(50);
  end;
end;

procedure Thread2;
var
  i: Integer;
begin
  for i := 1 to 100 do
  begin
    Form1.ProgressBar2.Position:=i;
    Form1.Gauge2.Progress:=i;
    sleep(50);
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
     Createthread(nil, 0, @Thread1, nil, 0, hThr1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     Createthread(nil, 0, @Thread2, nil, 0, hThr2);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     terminateThread(hThr1, 9999);
     terminateThread(hThr2, 9999);
end;

end.
Not kodlar @gkimirti hocamın makalesinden alıntıdır..
viewtopic.php?t=1693&highlight=thread
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Cevapla