سؤال حول عملية inherited مع الـ Thread
#2
وعليكم السلام ورحمة الله وبركاته
إقتباس :نظرتي لهاته الطرق :
الطريقة الاولى : في نظري غير منطقية
الطريقة الثانية : غير منطقية أيضا
الطريقة الثالث : منطقية لكن الكومبيلر يظهر لي هذه الرسالة :
اخي عبد المالك لو تمعنت في النظر قليلا لاوجدت الإجابة لبائس :
لحظ هاته الاجابة سوف تجد كل شيئ منطقي :
لا يتم الانتقال الى دالة اخرى قبل الانتهاء من الدالة الاولى .
اعني لا يتم تنفيذ :
PHP كود :
procedure TUploaderThread.execute;
begin
  
If (Not Terminated) Then
     Upload
;
end; 
قبل الخروج من الاجرائية :
PHP كود :
constructor TUploaderThread.Create(AServer: string; APort: integer; AConnectTimeout:Integer; ACommand : String; AFileName: string);
begin
inherited Create
(False);//---------------
    
FreeOnTerminate := True;
    
FServer:=AServer;
    
FPort:=APort;
    
FConnectTimeout:=AConnectTimeout;
    
FCommand:=ACommand;
    
FFileName:=AFileName;
    
FTransferRate:=0;
    
FTransferProgress:=0;
    
FTransferMax:=0;
end; 
وهذا يعني تنفيد كل العمليات قبل الخروج منها بضرورة .
اما بالنسبة لي هاته الرسالة :
PHP كود :
[DCC Warning] USendFilesThread.pas(51): W1000 Symbol 'Resume' is deprecated 
الكمبلر يقولك يوجد هناك عدم تفاهم او انت لم تعمل بالبدهيات وهو يقول غير هذا الكود :
PHP كود :
constructor TUploaderThread.Create(AServer: string; APort: integer; AConnectTimeout:Integer; ACommand : String; AFileName: string);
begin
inherited Create
(True);//---------------
    
FreeOnTerminate := True;
    
FServer:=AServer;
    
FPort:=APort;
    
FConnectTimeout:=AConnectTimeout;
    
FCommand:=ACommand;
    
FFileName:=AFileName;
    
FTransferRate:=0;
    
FTransferProgress:=0;
    
FTransferMax:=0;
    
Resume;//---------------
end; 
بهذا :
PHP كود :
constructor TUploaderThread.Create(AServer: string; APort: integer; AConnectTimeout:Integer; ACommand : String; AFileName: string);
begin
    FreeOnTerminate 
:= True;
    
FServer:=AServer;
    
FPort:=APort;
    
FConnectTimeout:=AConnectTimeout;
    
FCommand:=ACommand;
    
FFileName:=AFileName;
    
FTransferRate:=0;
    
FTransferProgress:=0;
    
FTransferMax:=0;
  
inherited Create(False);//---------------
end; 
بارك الله فيك وجزاك الله خيرا .
بالتوفيق ,,
كن متواضعا ولا تكن متكبرا // الصبر + المثابرة = النجاح
الرد


الردود في هذا الموضوع
سؤال حول عملية inherited مع الـ Thread - بواسطة abdelmalek - 17-02-2012, 01:21 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم