السلام عليكم ورحمة االله وبركاته
منا طريقة وصل PROGRESS مع كل الجداول لقاعدة البيانات مع علم عندي طريقة لجدول واحد فقط
PHP كود :
ProgressBar1.Position := 0;
ProgressBar1.Min := 0;
ProgressBar1.Max := adoTABLE1.RecNo;
while NOT adoTABLE1.Eof do begin
progressBar1.Position := adoTABLE1.RecNo ;
ProgressBar1.Update;
adoTABLE1.Next ;
end;
و عليكم السلام و رحمة الله وبركاته
أين تستعملها عند الفتح؟ عند تحريك المؤشر ؟
أستعملها في الحدث oncreate
onexite كتب :حاول ب RecordCount;
شكرا لك أخي العزيز و لكن ما الطريقة مع كل الجداول في لحظة واحدة
يعني عندي 6 جداول أستعملها مع progress واحدة
يمكنك كتابة إجراء Procedure
كود :
private
procedure ProgressTable(ADataSet: TDataSet);
end;
...
procedure TForm1.ProgressTable(ADataSet: TDataSet);
begin
ProgressBar1.Position := 0;
ProgressBar1.Min := 0;
ProgressBar1.Max := ADataSet.RecordCount;
Application.ProcessMessages;
with ADataSet do begin
DisableControls;
while not Eof do begin
ProgressBar1.Position := RecNo ;
ProgressBar1.Update;
Next;
end;
EnableControls;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ProgressTable(ADOTable1);
end;
السلام عليكم
هل تقوم بتحريك المؤشر من أول تسجيل إلى اللآخر ؟ ( ما هو عدد التسجيلات في كل جدول ؟ )
توجد طريقة أفضل (لكني لم أنجح في إستخدامها

) الإتصال بطريقة بالـ asynchronous يمكنك إستخدام الحدث OnFetchProgress لمعرفة الوضع الحالي للـ recordset أثناء تحميلها (الفتح)
ملاحظة: لا تدعم كل قواعد البيانات طريقة asynchronous + حسبما قرأت هذه الطريقة فيها بعض العلل
كود :
https://forums.embarcadero.com/thread.jspa?messageID=369341
بالتوفيق
بصراحة أنا ضد كل هذه الطرق
عمليات البحث في قواعد البيانات لا تأخذ وقت يتطلب عرض التقدم Progression
إذا لا تتم باستخدام حلقات، وإن تطلب ذلك فهناك خلل ما!