PDA

View Full Version : چگونه یک تایمر برای برنامه کافی نت بسازیم



mehdirayaneh
شنبه 08 تیر 1387, 15:25 عصر
من می خواستم یک برنامه درست کنم که دو تا Button روی فرمم بزارم یکی شروع و دومی ایست که وقتی استارت می کنم شروع کنه به تایم رفتن و بعداز اینکه ایست را زدم این تایم را به عدد تبدیل کنه بعدش ضرب عدد مبلغ مورد نظر بکنه عدد تایم*عدد مبلغ=مبلغ پرداختی من این کد را برای تایمر نوشتم
var
Form1: TForm1;
TheTime: Integer;
implementation

{$R *.dfm}
function GetCounter(Second: Integer): string;
var
Minute, NewSecond, Hour: Currency;
begin
Hour := Int(Second / 3600);
Minute := Int((Second - (Hour * 3600)) / 60);
NewSecond := Second - int(Hour * 3600 + Minute * 60);
GetCounter := CurrToStr(Hour) + ':' + CurrToStr(Minute) + ':' + CurrToStr(NewSecond);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TheTime := GetTickCount;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption := GetCounter(GetTickCount div 1000 - TheTime div 1000);
end;
اما این کد نمی تونستم استفاده کنم چون وقتی تایمرمو false می کنم باز تایم میر اگر می تونه نمونه کدی برای این کار بدید یا یک راهنمایی کنید متشکر می شوم .....بگم می خوام به تعداد سیستم های که دارم تایمر بزارم هرکدوم مجازاه باشه

vcldeveloper
شنبه 08 تیر 1387, 16:44 عصر
اگه دارید از کامپوننت Timer استفاده می کنید (به دلیل وجود متد Timer1Timer در کد بالا)، دیگه چرا تابع GetCounter را نوشتید؟!
خصوصیت Interval تایمر خود روی 1000 تنظیم کنید تا هر یک ثانیه رویداد OnTimer آن فراخوانی شود. می تونید یک متغیر تعریف کنید که در داخل رویداد OnTimer هربار یکی به مقدارش اضافه شود. به این ترتیب تعداد ثانیه ها را خواهید داشت. برای دکمه ها هم، دکمه اول باید مقدار متغیر مربوطه را صفر کند و خصوصیت Enabled تایمر را True کند تا تایمر فعال شود، و دکمه دوم هم باید خصوصیت Enabled تایمر را False کند و مقدار متغیر مربوطه را خوانده و در مبلغ مربوطه ضرب کند. اگر از یک تایمر برای کنترل چند سیستم استفاده می کنید، دیگه نیازی به False کردن خصوصیت Enabled تایمر ندارید. برای نگهداری اطلاعات زمانی مجموعه ایی از سیستم ها هم می تونید مثلا از یک آرایه استفاده کنید.
فکر کنم همینقدر کمک کافی باشه که شما بتونید یک کد جدید بنویسید.

Hsimple11
یک شنبه 09 تیر 1387, 11:52 صبح
این برنامه کوچک را ببینید:

البته تبدیل ثانیه به دقیقه و ساعتش دیگه با خودتون. هرچند نیازی نیست و فقط برای اطلاع به مشتری از تعداد ساعتایی که کار کرده کاربرد داره چون اساسا میتونبد محاسبتون رو همونجوری که توی این برنامه میبینید بر اساس تعداد ثانیه های کارکرد قرار دهید.

موفق باشید...