View Full Version : اشکال این کد Thread چیست
fahimi
پنج شنبه 16 اردیبهشت 1389, 05:42 صبح
هدف از این سورس این است که به محض این که ارتباط قفل با برنامه قطع شد به کار بر اطلاع دهد.
unit Unit2;
interface
uses
classes,stdctrls,sysutils;
type
InitializeThread = class(TThread)
public
i:integer;
procedure setform;
private
//------------
protected
procedure execute; override;
end;
implementation
uses Unit1;
procedure InitializeThread.setform;
begin;
if i=1 then
ShowMessage('lock discounnect');
end;
procedure InitializeThread.execute;
var
j:integer;
begin
form1.Tiny1.Initialize:=true;
i:=form1.Tiny1.TinyErrCode;
Synchronize(setform);
Terminate;
Exit;
end;
end.
Felony
پنج شنبه 16 اردیبهشت 1389, 05:56 صبح
دوست عزیز لطفا از تگ کد استفاده کنید ، کدتون هم پز از خورده ایراد بود :
unit Unit2;
interface
uses
classes,stdctrls,sysutils,Dialogs,windows;
type
InitializeThread = class(TThread)
public
i:integer;
procedure setform;
private
//------------
protected
procedure execute; override;
end;
implementation
uses Unit1;
procedure InitializeThread.setform;
begin
if i=1 then
ShowMessage('lock discounnect');
end;
procedure InitializeThread.execute;
var
j:integer;
begin
form1.Tiny1.Initialize:= True;
i:= form1.Tiny1.TinyErrCode;
Synchronize(setform);
Terminate;
Exit;
end;
vcldeveloper
پنج شنبه 16 اردیبهشت 1389, 18:09 عصر
خب، مشکل تون چی هست؟
در ضمن، چرا در پایان Execute هم Terminate نوشتید، هم Exit؟! به هیچ کدامشان نیازی نیست. وقتی Execute اجراش تموم بشه، Thread خودش Terminate میشه، همچنین وقتی به پایان اجرای یک متد میرسید، اجرای برنامه از اون متد خارج میشه، پس نیازی به نوشتن Exit در انتهای یک متد نیست.
fahimi
جمعه 17 اردیبهشت 1389, 22:41 عصر
واقعیت این است که من از قفل سخت افزاری TINY در نرم افزارم استفاده کرده ام - میخواهم هر وقت ارتباط قفل سخت افزاری قطع شد تو سط یک مسیج به کاربر اطلاع داده شود .پس از جستجو در سایت به این رسیدم که از ترید(Thread) استفاده کنم.
قفل با Tiny1.Initialize:= True; نصب میشود و 0:= Tiny1.TinyErrCode; ودر صورت قطع شدن Tiny1.Initialize:= false
حسین شهریاری
شنبه 18 اردیبهشت 1389, 09:43 صبح
سلام
شما میخاین دقیقا همون آن که قفل از سیستم جدا شد به کاربر پیام بده؟
حالا با فرض این کا این کد بالا را هم صدا نزنیم آیا با باز و بسته شدن برنامه و در لود بعدی آیا از ورود کاربر جلوگیری نمیکنه؟
اگه جواب مثبت هست فکر کنم همین کافی باشه!چون اکثر نرم افزارهای کنونی هم اینطوری هستند.
موفق باشید
vcldeveloper
شنبه 18 اردیبهشت 1389, 14:37 عصر
واقعیت این است که من از قفل سخت افزاری TINY در نرم افزارم استفاده کرده ام - میخواهم هر وقت ارتباط قفل سخت افزاری قطع شد تو سط یک مسیج به کاربر اطلاع داده شود .پس از جستجو در سایت به این رسیدم که از ترید(Thread) استفاده کنم.
خب، اون کد بالا که این کار رو انجام نمیده، چیزی که شما میخواید، یعنی باید Thread در یک حلقه، در فواصل زمانی معین، این چک رو انجام بده، ولی Thread شما فقط یک بار اون چک رو انجام میده، و بعدش Terminate میشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.