الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن إستخدام ProgressBar ليظهر داخل StatusBar

مغلق
بدأه abduljawaad saad في 29 ديسمبر 2002 · 4 رد · 955 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن إستخدام ProgressBar ليظهر داخل StatusBar عند إجراء نسخ أو قراءة ملف طويل نسبيا ..بمعنى أن يظهر شريط تقدم الإنجاز من داخل شريط الحالة أسفل واجهة البرنامج

mytrial_a.gif

نحن بحاجة لتدوين تجاربنا , نحن بحاجة إلى اكتشاف قيمة التجربة, هذه تجربتى مثيرة ومفيدة ...,

هنا
#2

فقط اجعل للـ progress bar مكان في الـ status bar عن طريق تحديد عرض الـ Panel بما يناسبك ثم ضع الـprogress bar في المكان المصنوع واجعل خاصية appearence تساوي Flat. هذا بالنسبه للشكل ....

اما بالنسبه للعمل فهذا موضوع منفصل.

#3

لاستخدام هذا الكود قم بفتح مشروع جديد و أضف لل Form1:

* ProgressBar, StatusBar, CommandButton

[ALIGN=LEFT]Option Explicit



Private Type RECT

        Left As Long

        Top As Long

        Right As Long

        Bottom As Long

End Type



Private Declare Function SetParent Lib "user32" _

    (ByVal hWndChild As Long, _

    ByVal hWndNewParent As Long) As Long



Private Declare Function SendMessage Lib "user32" _

    Alias "SendMessageA" (ByVal hwnd As Long, _

    ByVal wMsg As Long, _

    ByVal wParam As Long, lParam As Any) As Long



Const WM_USER = &H400

Const SB_GETRECT As Long = (WM_USER + 10)



Private Sub ShowProgressInStatusBar(ByVal bShowPrgBar As Boolean)

Dim RC As RECT

    If bShowPrgBar Then

        

        ' نوجد قياس الخانة التي سنضع فيهاشريط تقدم الإنجاز

        SendMessage StatusBar1.hwnd, SB_GETRECT, 1, RC

        

        ' Convert to Twips

        With RC

            .Top = (.Top * Screen.TwipsPerPixelY)

            .Left = (.Left * Screen.TwipsPerPixelX)

            .Bottom = (.Bottom * Screen.TwipsPerPixelY) - .Top

            .Right = (.Right * Screen.TwipsPerPixelX) - .Left

        End With

        

        ' نحدد الأب لمؤشر الحالة

        With ProgressBar1

            SetParent .hwnd, StatusBar1.hwnd

            .Move RC.Left, RC.Top, RC.Right, RC.Bottom

            .Visible = True

            .Value = 0

        End With

    Else

        SetParent ProgressBar1.hwnd, Me.hwnd

        ProgressBar1.Visible = False

    End If

End Sub



Private Sub Command1_Click()

Dim i As Integer

    Call ShowProgressInStatusBar(True)

    

    For i = 1 To ProgressBar1.Max

        ProgressBar1.Value = i

    Next i

End Sub[/ALIGN]

This Tip written by Chris Eastwood (www.codeguru.com/vb)

#4

إخوانى الأفاضل: hamohd70 و ابوخالد

شكرا لكم وجزالكم الله كل خير

وأتمنى أن تكملا جميلكما بكود عمل الـ progress bar مع ملف طويل يتم نسخه على أحد الدريفرات

لكما تقديرى وتحياتى

mytrial_a.gif

نحن بحاجة لتدوين تجاربنا , نحن بحاجة إلى اكتشاف قيمة التجربة, هذه تجربتى مثيرة ومفيدة ...,

هنا
#5

السلام عليكم:

شكرا لك يا أخي على الموضوع

وأشكر الأخ أبو خالد على الكود الرائع مع تمنياتي له بالتواصل والعطاء

تحياتي مقرررررررررررررررررررررررش:cool:

هذا الموضوع مغلق.

مواضيع مشابهة