ما سبب تأخير تنفيذ كود داخل زر
#1
السلام عليكم ورحمة الله تعالى وبركاته
جمعة مباركة إن شاء الله وتقبل الله منا ومنكم الصلاة بمزيد من الآجر والثواب والمغفرة
اخواني مشكل غريب لم افهمه
داحل زر لدي كود لتنفيذ عملية ما
من ناحية يعمل بشكل جيد فهو يعمل لكن كلما انتقلت الى سجل يعمل بشكل جيد حتى يصل الى عدد معنين من السجلات واظنه 4 سجلات عندما انتقل الى السجل الخامس يتأخر لمدة 10 ثواني او أكثر وكل ما انتقلت الى السجل الموالي يتأخر أكثروعندما ارغب غي التنقل الى السجل الموالي وليكن السجل مثلا 05 او 06 يجب علي اغلاق البرنامج واعادة تشغيله والذهاب الى السجل الخامس لإكمال تنفيذ العملية
لذا ما سبب هذه المشكلة
جزاكم الله عنا كل خير
الرد
#2
سلام عليكم / جمعة مباركة
يبدو ان برنامجك يتعامل مع قواعد بيانات
ممكن ترفق  الكود الموجود بداخل btn
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
الرد
#3
لايمكن لاحد ان يعطى رائيا بدون ان يعرف ما موجود من برمجة
كما قال الاخ اما انك تستخدم قواعد بيانات او مؤقتتات او صور كبيرة او ما شابه مع برمجة سيئة
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#4
السلام عليكم ورحمة الله تعالى وبركاته
اليك الكود المتعلق بالزر 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;
الرد
#5
لقد حلت المشكلة والخطأ هو أنني لم احرر الفورم التي كنت مصرح بها
كان يجب علي إضافة هذا السطر بعد التصريح
كود :
temp:= TFrm2.Create(Self); temp.Radiogroup1.ItemIndex:=1; temp.free; بارك الله فيكم على المرور
الرد
#6
السلام عليكم
يمكن اختصار الكود قليلا

كود :
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;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#7

السلام عليكم
ملاحظة اخرى: الحقل cde من نوع Integer اذن استخدام locaseinsensitive,lopartialkey في Locate لا معنى لها!
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#8
جزاكم الله عنا كل خير
الرد


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


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