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

نسخة كاملة : كيفية استعمالprogressbar1 مع الجداول
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة االله وبركاته
منا طريقة وصل 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; 
و عليكم السلام و رحمة الله وبركاته

أين تستعملها عند الفتح؟ عند تحريك المؤشر ؟
الخطا هنا
PHP كود :
:= adoTABLE1.RecNo  ; 
حاول ب RecordCount;
أستعملها في الحدث 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;
السلام عليكم

هل تقوم بتحريك المؤشر من أول تسجيل إلى اللآخر ؟ ( ما هو عدد التسجيلات في كل جدول ؟ )

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