Timer objesi hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Timer objesi hakkında
s.a.
Timer Componenti neden 16 ms altındaki işlemleri yapmıyor bileniniz varmı?
Yaprığım deneme
Timer componentinin içerisinde i:=i+1 gibi bir işlem yapıyorum.
interval degerini 1 olarak tanımlıyorum
program 1 Saniye çalışıyor
ve sonuc her seferinden i = 64 çıkıyor.
bunun nedenini bilen varmı
i : i +1 işlemi 1 ms'den daha kısa sürüyor denedim.
Teşekkürler
Timer Componenti neden 16 ms altındaki işlemleri yapmıyor bileniniz varmı?
Yaprığım deneme
Timer componentinin içerisinde i:=i+1 gibi bir işlem yapıyorum.
interval degerini 1 olarak tanımlıyorum
program 1 Saniye çalışıyor
ve sonuc her seferinden i = 64 çıkıyor.
bunun nedenini bilen varmı
i : i +1 işlemi 1 ms'den daha kısa sürüyor denedim.
Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Timer objesi hakkında
yazdığın kodu tam olarak göndersen sorunu çözmede daha yardımcı olur ben timer ile bayağı işlem yaptım az çok bir fikir çıkar yani işine yarayacak ama kodların tümünü gönder..
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Timer objesi hakkında
Kod: Tümünü seç
object Form1: TForm1
Left = 222
Top = 118
Width = 199
Height = 157
Caption = 'Timer Test'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 8
Top = 10
Width = 75
Height = 25
Caption = '0'
TabOrder = 0
end
object Button2: TButton
Left = 108
Top = 8
Width = 75
Height = 25
Caption = '0'
TabOrder = 1
end
object Button3: TButton
Left = 8
Top = 42
Width = 173
Height = 23
Caption = 'Test'
TabOrder = 2
OnClick = Button3Click
end
object Timer1: TTimer
Enabled = False
Interval = 1
OnTimer = Timer1Timer
Left = 12
Top = 68
end
object Timer2: TTimer
Enabled = False
Interval = 1
OnTimer = Timer2Timer
Left = 76
Top = 70
end
object Timer3: TTimer
Enabled = False
OnTimer = Timer3Timer
Left = 148
Top = 70
end
end
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
Timer3: TTimer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button1.Caption := IntToStr(StrToInt(Button1.Caption) + 1);
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Button2.Caption := IntToStr(StrToInt(Button2.Caption) + 1);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Button1.Caption := '0';
Button2.Caption := '0';
Timer1.Enabled := True;
Timer2.Enabled := True;
Timer3.Enabled := True;
end;
procedure TForm1.Timer3Timer(Sender: TObject);
begin
Timer1.Enabled := False;
Timer2.Enabled := False;
Timer3.Enabled := False;
end;
end.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Timer objesi hakkında
kardeş yazdığın kodları olduğu gibi denediğimde butonların üzerindeki değerler 0 olarak kaldı sendeki gibi 16 falan olmadı buna göre;kodlarını şöyle düzenlediğimde sonuç buttonların üzerindeki değer 1 oldu yani timerler 1 milisaniye olarak çalıştı
senin kodundaki hata ise
buton 3'e tıklar tıklamaz butonların üzerine değerleri yazıyor kodun işlem satırı timer1' geldiğinde timer1'i çalıştırmıyor çünkü devam etmesi gereken satırlar var bu satırları bitirmeden diğer işlemlere geçmiyor yani thread görevi görmüyor bu nedenlede gecikme oluyor. anlattıklarına göre anladıklarım bu kadar yok daha farklı ise sorunun detaylı bir şekilde izah etki üzerinde çalışalım...
Allah kolaylık vere.
Kod: Tümünü seç
procedure TForm1.Button3Click(Sender: TObject);
begin
Button1.Caption := '0';
Button2.Caption := '0';
Timer1.Enabled := True;
Timer2.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var a:integer;
begin
a:=StrToInt(Button1.Caption);
Button1.Caption := IntToStr(a+1);
Timer1.Enabled := False;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var a:integer;
begin
a:=StrToInt(Button2.Caption);
Button2.Caption := IntToStr(a+1);
Timer2.Enabled := False;
end;
end.
Kod: Tümünü seç
procedure TForm1.Button3Click(Sender: TObject);
begin
Button1.Caption := '0';
Button2.Caption := '0';
Timer1.Enabled := True;
Timer2.Enabled := True;
Timer3.Enabled := True;
end;
Allah kolaylık vere.
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Timer objesi hakkında
s.a.
dabaddah arkadaşım yardımcı olmaya çalışmışsın teşekkür ederim fakat sanırım sorumu tam ifade edememimişi.
senin örnek olarak düzelttiğin kod ile benim gönderdiğim kod arasında bir fak yok test ettim.
eğer senin örneğin son satırındaki timerları false etme satırını kaldırırsan sende göreceksin.
benim problememim timer interval değeri 16 ms. altında olduğunda timer objesi bunu dikkate almıyor asıl sorun burda başlıyor.
benim öğrenmek istediğim bunun nedenini ve çözümünü bilen varmı.
teşekkürler
dabaddah arkadaşım yardımcı olmaya çalışmışsın teşekkür ederim fakat sanırım sorumu tam ifade edememimişi.
senin örnek olarak düzelttiğin kod ile benim gönderdiğim kod arasında bir fak yok test ettim.
eğer senin örneğin son satırındaki timerları false etme satırını kaldırırsan sende göreceksin.
benim problememim timer interval değeri 16 ms. altında olduğunda timer objesi bunu dikkate almıyor asıl sorun burda başlıyor.
benim öğrenmek istediğim bunun nedenini ve çözümünü bilen varmı.
teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Timer objesi hakkında
merhaba
Timer nesnesi interval özelliği ontimer olayını ms olarak minimum hangi aralıklara çalışacağını belirtir.
Ancak bu aralık çok düşük tutulduğunda, işlemcinin o an yaptığı diğer işlemler sebebi ile yükseliyor.
Timer objesi ile nasıl çözüm üretilebilir bilemiyorum ancak bu işi bir thread ile yapmanı öneririm.
Aşağıdaki örneği bir dene:
Timer nesnesi interval özelliği ontimer olayını ms olarak minimum hangi aralıklara çalışacağını belirtir.
Ancak bu aralık çok düşük tutulduğunda, işlemcinin o an yaptığı diğer işlemler sebebi ile yükseliyor.
Timer objesi ile nasıl çözüm üretilebilir bilemiyorum ancak bu işi bir thread ile yapmanı öneririm.
Aşağıdaki örneği bir dene:
Kod: Tümünü seç
unit formthread;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TProgressBarThread = class(TThread)
private
pb: TProgressBar;
FStep: Integer;
protected
procedure Execute; override;
procedure MoveTh;
public
property Step:Integer read FStep write FStep;
constructor Create(Box: TProgressBar; AStep:Integer; ThreadPriority: TThreadPriority);
end;
TForm1 = class(TForm)
ProgressBar1: TProgressBar;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TProgressBarThread.Execute;
begin
while true do begin
Synchronize(MoveTh);
Sleep(1);//bekleme aralığı burada belirtiliyor.
end;
end;
procedure TProgressBarThread.MoveTh();
begin
pb.Position := (pb.Position + FStep) MOD 100;///1 ms aralıkla yapılacak iş, buraya kendi komutunu girebilirsin
end;
constructor TProgressBarThread.Create(Box: TProgressBar; AStep:Integer;
ThreadPriority: TThreadPriority);
begin
inherited Create(False);
Self.FStep := AStep;
pb := Box;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TProgressBarThread.Create(ProgressBar1,1,tpHigher{bu parametre değeri sayesinde thread yüksek öncelikli çalışıyor});
end;
end.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Timer objesi hakkında
aktadilla arkaşım ilgine teşekkürler
bende bu işlemleri thread ile nasıl yapabilirim diye bir çalışma yapıyordum
hatta az önce farklı comportları threadler ile ilgili nasıl yönetebilirim
bazı tereddütlerim vardı bu konuda bir başlık açmıştım.
iyi çalışmalar
bende bu işlemleri thread ile nasıl yapabilirim diye bir çalışma yapıyordum
hatta az önce farklı comportları threadler ile ilgili nasıl yönetebilirim
bazı tereddütlerim vardı bu konuda bir başlık açmıştım.
iyi çalışmalar
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana