delphi4arab منتديات دلفي للعرب

نسخة كاملة : ما سبب تأخير تنفيذ كود داخل زر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله تعالى وبركاته
جمعة مباركة إن شاء الله وتقبل الله منا ومنكم الصلاة بمزيد من الآجر والثواب والمغفرة
اخواني مشكل غريب لم افهمه
داحل زر لدي كود لتنفيذ عملية ما
من ناحية يعمل بشكل جيد فهو يعمل لكن كلما انتقلت الى سجل يعمل بشكل جيد حتى يصل الى عدد معنين من السجلات واظنه 4 سجلات عندما انتقل الى السجل الخامس يتأخر لمدة 10 ثواني او أكثر وكل ما انتقلت الى السجل الموالي يتأخر أكثروعندما ارغب غي التنقل الى السجل الموالي وليكن السجل مثلا 05 او 06 يجب علي اغلاق البرنامج واعادة تشغيله والذهاب الى السجل الخامس لإكمال تنفيذ العملية
لذا ما سبب هذه المشكلة
جزاكم الله عنا كل خير
سلام عليكم / جمعة مباركة
يبدو ان برنامجك يتعامل مع قواعد بيانات
ممكن ترفق  الكود الموجود بداخل btn
لايمكن لاحد ان يعطى رائيا بدون ان يعرف ما موجود من برمجة
كما قال الاخ اما انك تستخدم قواعد بيانات او مؤقتتات او صور كبيرة او ما شابه مع برمجة سيئة
السلام عليكم ورحمة الله تعالى وبركاته
اليك الكود المتعلق بالزر Button
كود :
procedure TFrm1.BtnRefresheClick(Sender: TObject); var tcde:integer; tLib:String; tMnt:Double; var temp:TFrm2; begin  DM.Table2.Close;  temp:= TFrm2.Create(Self);  temp.Radiogroup1.ItemIndex:=1;  with DM do  begin    Table2.Open;    Table1.Open;    Table1.First;    while not Table1.Eof do    begin    {Keep Previous values}    tcde := Table1.Fieldvalues['Cde'];    tLib := Table1.fieldvalues['Lib_Cde'];    tMnt := Table1.FieldValues['Mont'];    Table1.Next;      if DM.Table2.Locate('cde',vararrayof([tcde]),[locaseinsensitive,lopartialkey]) then      begin      DM.Table2.Edit;      DM.Table2.fieldvalues['cde']     := tcde;      DM.Table2.fieldvalues['lib_cde'] := tLib;      DM.Table2.fieldvalues['Mont']    := tMnt;      end else begin      DM.Table2.Insert;      DM.Table2.fieldvalues['cde']     := tcde;      DM.Table2.fieldvalues['lib_cde'] := tLib;      DM.Table2.fieldvalues['Mont']    := tMnt;      DM.Table2.Post;      DM.Table2.Refresh;      end;    end;  end;  DM.Table3.Edit;  DM.Table3dbcheckBox.Value:=false;  DM.Table3.Post; end;
لقد حلت المشكلة والخطأ هو أنني لم احرر الفورم التي كنت مصرح بها
كان يجب علي إضافة هذا السطر بعد التصريح
كود :
temp:= TFrm2.Create(Self); temp.Radiogroup1.ItemIndex:=1; temp.free; بارك الله فيكم على المرور
السلام عليكم
يمكن اختصار الكود قليلا

كود :
procedure TFrm1.BtnRefresheClick(Sender: TObject); begin  with DM do  begin    Table2.Close; Table2.Open;    Table1.Open;    Table1.First;    while not Table1.Eof do    begin      if DM.Table2.Locate('cde',vararrayof([tcde]),[locaseinsensitive,lopartialkey]) then      Table2.Edit else Table2.Insert;      Table2.fieldvalues['cde']     := Table1.Fieldvalues['Cde'];      Table2.fieldvalues['lib_cde'] := Table1.fieldvalues['Lib_Cde'];      Table2.fieldvalues['Mont']    := Table1.FieldValues['Mont'];      Table2.Post;      Table2.Refresh;    end;    Table1.Next;  end;  DM.Table3.Edit;  DM.Table3dbcheckBox.Value:=false;  DM.Table3.Post; end;

السلام عليكم
ملاحظة اخرى: الحقل cde من نوع Integer اذن استخدام locaseinsensitive,lopartialkey في Locate لا معنى لها!
جزاكم الله عنا كل خير