السلام عليكم ورحمة الله وبركاته
كيف يمكن معرفة الزمن المتبقي لتحميل الصورة في الكائن Image باستخدام الكائن ProgressBar ( لمعرفة الزمن المتبقي للتحميل ) .
السلام عليكم ورحمة الله وبركاته
كيف يمكن معرفة الزمن المتبقي لتحميل الصورة في الكائن Image باستخدام الكائن ProgressBar ( لمعرفة الزمن المتبقي للتحميل ) .
- طريق الألف ميل يبدأ بخطوة -
- ألعاب من تصميمي:
المنقذ
الأربع تربح
المتاهة
إستفد من الحدث OnProgress
مشكله هذا الحدث أنه قد لا يعمل مع كل الأنواع , فهو يعمل بالدرجه الأساسيه مع الصور المضغوطه (مثلا Jpeg والنسخ الأكثر ضغطا ) والتي تستغرق وقتا بالفك ... وهنا بالتالي قد لاتستفيد منه مع الصور كبيره الحجم غير المضغوطه مثل BMP ..
إستخدامه بسيط ,, مثلا
procedure TForm1.Image1Progress(Sender: TObject; Stage: TProgressStage; PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: String); begin ProgressBar1.Position:=PercentDone; end;
PercentDone تحدد النسبه المؤيه للعمل . لحساب الوقت يمكنك أن تعمل خوارزميه بسيطه شبيهه بطريقه مايكروسوفت , أن تنتظر زمن معين (بحيث أن حساب الزمن يتم في الحالات التي يطول فيها التحميل فقط) ثم بعد ذلك إذا لم تكن الصوره قد تحملت بعد , تنظر إلى النسبه المؤيه المتبقيه وتحسب بالتالي الزمن المتبقي حسب الزمن المنصرم .
مثلا إذا نطرت ثانيه وبعدها وجدت أن العمل أصبح 25% أي أن المتبقي هو 3 ثواني .. وهكذا
ملاحظة قد تضطر للبحث عن طريقه أفضل , أو حاول تتبع التابع LoadFromFile من شفره VCL للإستفاده منها أو إضافه خيار الزمن المتبقي , وبالتالي تستطيع فيما بعد بسهوله تحويله إلى مكون خاص بك ..
جرب بها قليلا , ولنا حديث فيما بعد .
هذا الموضوع مغلق.