PDA

View Full Version : تایمر با قابلیت شمارنده و شروع و پایان



dark-man
یک شنبه 27 دی 1388, 16:27 عصر
سلام و خسته نباشید خدمت همه اساتید .
من می خوام تایمری داشته باشم که بتونه اونو Start یا Stop کنم . یه چیزی شبیه کرونومتر . ممنون میشم در این مورد کمکم کنید .

Felony
یک شنبه 27 دی 1388, 17:07 عصر
:متعجب:خوب همون شئ تایمر همین کار رو میکنه دیگه !
برای Start و Stop هم خصیصه Enabled رو True یا False کن .

dark-man
یک شنبه 27 دی 1388, 17:23 عصر
:متعجب:خوب همون شئ تایمر همین کار رو میکنه دیگه !
برای Start و Stop هم خصیصه Enabled رو True یا False کن .
لطفا" یه نمونه کد برام بذارید . من با تایمر دلفی کار نکردم

msoleiman
یک شنبه 27 دی 1388, 17:42 عصر
با سلام
یک شیئی تایمر بگذار تو فرمت
بعد در مشخصاتش interval را بر اساس میلی ثانیه تنظیم کن و بعد هم کدی که میخواهی هنگام فعال سازی اجراشود روی تایمر دبل کلیک کن و اونجا بنویس ...

dark-man
یک شنبه 27 دی 1388, 17:51 عصر
با سلام
یک شیئی تایمر بگذار تو فرمت
بعد در مشخصاتش interval را بر اساس میلی ثانیه تنظیم کن و بعد هم کدی که میخواهی هنگام فعال سازی اجراشود روی تایمر دبل کلیک کن و اونجا بنویس ...

جسارتا" شما روش کار کرونومتر رو دید؟ یا روش کار یه ساعت دیجیتال معمولی !؟ بنده قصد دارم یه همچین چیزی با تایمر طراحی کنم که کمک خواستم . نه procedureبرای اجرا دارم و نه function فقط می خوام با تایمر یه ساعت یا کرونومتر ساده بسازم که با یک دکمه شروع به کار کنه و با یه دکمه دیگه توقف کنه همین . ممنون میشم در این مورد کمکم کنید

vcldeveloper
یک شنبه 27 دی 1388, 17:57 عصر
برای چه نسخه ایی از دلفی؟ اگر دلفی 2010 هست، خودش در یونیت Diagnostics یک کلاس TStopWatch داره:

var
Stopwatch : TStopwatch;
begin
Stopwatch.Start;
{Add your code here}
Stopwatch.Stop;
ShowMessage(Stopwatch.ElapsedMilliseconds);
end;

dark-man
یک شنبه 27 دی 1388, 18:12 عصر
برای چه نسخه ایی از دلفی؟ اگر دلفی 2010 هست، خودش در یونیت Diagnostics یک کلاس TStopWatch داره:

var
Stopwatch : TStopwatch;
begin
Stopwatch.Start;
{Add your code here}
Stopwatch.Stop;
ShowMessage(Stopwatch.ElapsedMilliseconds);
end;

ممنون . من از دلفی 7 استفاده کردم . مشکل رو به روشی حل کردم . نمونه کدش رو اینجا میذارم شاید دوستان بخوان استفاده کنند .

unit Unit1;

interface

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

type
TForm1 = class(TForm)
tmr1: TTimer;
edt1: TEdit;
btn1: TButton;
btn2: TButton;
procedure tmr1Timer(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
x, hh, mm : Integer;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.tmr1Timer(Sender: TObject);

begin
x := x + 1;
if x = 60 then
begin


mm := mm + 1;


end;
if mm = 60 then
begin
hh := hh + 1;


end;

if x >= 60 then
begin
x := x - 60;
end;
if mm >= 60 then
begin
mm := mm - 60;
end;
edt1.Text := IntToStr(hh) + ':' + IntToStr(mm) + ':' + IntToStr(x);
end;

procedure TForm1.btn1Click(Sender: TObject);

begin
tmr1.Enabled := True;


end;

procedure TForm1.btn2Click(Sender: TObject);
begin
x := 0;
tmr1.Enabled := False;
end;

end.

Majid.Ebru
چهارشنبه 28 بهمن 1388, 10:29 صبح
سلام
ببخشید اینجا سوال می پرسم چون بحث درباره تایمر هست اینجا می پرسم :
1-من از دلفی 2007 استفاده می کنم و توی برنامه از یه تایمر و یه ترک بار(Trackbar) استفاده می کنم و تایمر رو روی 1 ثانیه تنظیم کردم و با هر بار شمارش تایمر پوزیشن ترک بار رو یکی اضافه می کنم.این عمل باید تا عدد 20 ادامه پیدا کنه ، توی تابع تایمر نوشتم که هر وقت عدد پوزیشن به 20 رسید تایمر رو دیزیبل کنه اما تایمر خاموش نمیشه و پوزیشن ترک بار مرتباً زیاد میشه و قطع هم نمی شه؟
لطفاً راهنمای کنید.


procedure TForm1.tmr1Timer(Sender: TObject);
begin
avdtrackbar1.position:=advtrackbar1.position + 1;
if advtrackbar1.position=20 then
timer1.enable:=false;
end;

Felony
چهارشنبه 28 بهمن 1388, 14:56 عصر
سلام
ببخشید اینجا سوال می پرسم چون بحث درباره تایمر هست اینجا می پرسم :
1-من از دلفی 2007 استفاده می کنم و توی برنامه از یه تایمر و یه ترک بار(Trackbar) استفاده می کنم و تایمر رو روی 1 ثانیه تنظیم کردم و با هر بار شمارش تایمر پوزیشن ترک بار رو یکی اضافه می کنم.این عمل باید تا عدد 20 ادامه پیدا کنه ، توی تابع تایمر نوشتم که هر وقت عدد پوزیشن به 20 رسید تایمر رو دیزیبل کنه اما تایمر خاموش نمیشه و پوزیشن ترک بار مرتباً زیاد میشه و قطع هم نمی شه؟
لطفاً راهنمای کنید.


procedure TForm1.tmr1Timer(Sender: TObject);
begin
avdtrackbar1.position:=advtrackbar1.position + 1;
if advtrackbar1.position=20 then
timer1.enable:=false;
end;


شرط غیر فعال شدن تایمرت رو تو رویداد OnChange شئ TrackBar بزار .

mrbm_2007
چهارشنبه 28 بهمن 1388, 15:18 عصر
ببخشید اینجا سوال می پرسم چون بحث درباره تایمر هست اینجا می پرسم ...
timer1.enable:=false;
timer1.enabled:=false;

Max ترک بار رو هم چک کن کمتر از 20 نباشه!