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

سؤال في صنع Msgbox

بدأه محمد غريب في 27 سبتمبر 2008 · 21 رد · 3,740 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا اصنع msgbox خاصة لتتيح امكانيات اكثر مثل التحكم بعناوين الازرار , واريد دالة Function لاستدعاء نافذة الرسالة ويجب ان يكون بها بعض المتغيرات مثل عنوان الرسالة ومحتوي الرسالة والايقونة و الازرار , ولكن هذه المتغيرات اريد ان يكون بعضها اجباري مثل محتوي الرسالة وبعضها اختياري وله قيمة افتراضية مثل عدد الازرار والايقونة

ارجو المساعدة ولكم جزيل الشكر

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#2

هكذا :

  1. Public Function CustomMsg(CustomPrompt As String, Optional CustomTitle As String = "CustomTitle") As VbMsgBoxResult
  2. 'Put what you like here, Like:
  3. CustomMsg = MsgBox(CustomPrompt, vbCritical + vbAbortRetryIgnore, CustomTitle)
  4. End Function
  5.  
  6.  

و تستخدم مثلا هكذا:
  1. Me.AutoRedraw = True
  2. Dim Msg As VbMsgBoxResult
  3. Msg = CustomMsg("Hello.............")
  4. Print Msg
  5.  
  6.  

تم تعديل هذه المشاركة بواسطة msayed2004 في 27 سبتمبر 2008 في 11:23

#3

فعلا فعلا والله منتدي رائع واعضاء ومشرفون رائعون

فكل ما احتاج ايه اجده عندك

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

ولي استفسار بسيط ارجو المساعدة فيه

المسج بوكس التي اصنعها هي عبارة عن فورم وصممت فيه الازرار والايقونات والعناوين ونقوم بأستدعائها بهذه الدالة التي تفضلت عليا بها وهي موجودة في Module

والان قد انتهيت بحمد الله من تصميم هذا المسج بوكس , ولكي استخدمها في كل برامجي يجب ان اضيف في كل برنامج فورم الماسج و ال Module , فهل هناك طريقة اجعل بها هذا الفورم و الموديول مثل اداة الاكتف اكس واضيفهم بعد ذلك في برامجي لكي استدعي الماسج بوكس ؟؟!

انا اعلم انهما لا يجب ان يكونا اداة اكتف اكس وان في هناك طريقة اخري لفعل هذا ولكني لا اعلمها واامل ان تخبرني بها وجزاك الله خير

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#4

كما تفضلت و قلت : يمكن إنشاء ActiveX Control تحتوى عليهم.

أو إنشاء DLL (يستحسن ActiveX Control لكن ممكن أيضا فى DLL)

أو جعل الموضوع كله فى Module و إنشاء النافذة كاملة بالـ APIs لكنها عملية مرهقة جدا جدا جدا جدا.

يبقى أفضل حل هو إستعمال الـ Form و الـ Module مباشرة (لتقليل إعتماد البرنامج على ملفات أخرى) يليه فكرة إنشاء ActiveX

#5

هذه مكتبة DLL من صنعي كنت قد صممتها

لأستخدمها في مشاريعي . أرفقتها لك مع الـ Source Code

طريقة الإستخدام :


Dim msg As New MessageBox

msg.Show "العنوان الذي تريده" , "النص الذي تريده" , Exclamation, OKOnly

بعد أن تقوم بتحميل المرفق قم بنسخ الملف إلى مجلد النظام

و بعدها افتح الـ Run و اكتب Regsvr32 MicronetMessagebox.dll

بعد ذلك تستطيع أن تضيفها إلى مشروعك من الـ References .

صممتها خصيصاً لكي تدعم اللغة العربية و الإتجاه من اليمين إلى اليسار

MessageBox.rar

تم تعديل هذه المشاركة بواسطة COMFORT في 28 سبتمبر 2008 في 02:53

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#6

السلام عليكم

جئت لكم اليوم بعد انتهائي من تصميم صندوق الرسالة العربي ArbMsg بحمد الله وبمساعدتكم

اشكر الاخ COMFORT علي وضعه سورس مسج بوكس والذي استفدت منه في صنع هذا المسج العربي

طريقة استخدام صندوق الرسالة العربي ArbMsg :

يوجد بالمرفقات السورس كامل لمن يريد الاستفادة , نفك ضغط الفولدر المرفق ثم نبدأ مشروع فيجوال بيسك جديد ونقوم بستدعاء المكتبة ArbMsgDLL.dll ثم نكتب الكود الاتي

Dim msg As New ArbMsg

'لكتابة بيانات صندوق الرسالة
msg.Show "هنا نكتب عنوان الرســــالة", "هنا نكتب مضمون الرســــالة", OkCancel, Information_Icon


'لمعرفة اي زر تم الضغط عليه في الرسالة
If msg.Clicked_Button = "ok" Then

'هنا نكتب ما نريد تنفيذه عن الضغط علي زرار موافق

End If

اتمني ان يعجبكم وان تبدوني برأيكم فرأيكم مهم عندي

مع تحياتي ,,,

"يوجد اصدار جديد في الصفحة الثانية"

ArbMsg.rar

تم تعديل هذه المشاركة بواسطة محمد مصطفي غريب في 29 سبتمبر 2008 في 09:57

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#7

المكتبة التي وضعتها أنا تدعم العربية

وتدعم الـ RTL Layout للفورم

كما أرى أنك لم تغير شيئاً من الكود الذي قدمته

أنا غير أنك غيرت الأسماء فقط و تصميم النموذج

يمكن أن تجعل شكل الرسالة جيد باستخدام Skin و الاستغناء عن ذلك التصميم

كما في الصورة

post-44984-1222653457_thumb.png

كما أنك أضفت طريقة لتعود لك الزر المضغوط

و هذا يمكن عمله في مكتبتي


        End
    End If
If msg.Show("Do you Really want to exit ?", "Exit", Question, YesNo) = msgYes Then

تم تعديل هذه المشاركة بواسطة COMFORT في 29 سبتمبر 2008 في 07:57

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#8

اخي العزيز انا احترم رأيك عن صندوق الرسالة خاصتي

ولكني اريد ان اوضح لك شئ واحد :

وهو انني لم اخد من الكود خاصتك سوي طريقة جعله مكتبة dll , فلو تلاحظ من المشاركة 3 فأنا كنت قد انتهيت من تصميم صندوق الرسالة لكني كنت منتظر ردكم لكي اعلم كيف سأجعلها ocx او dll

ولقد صممت هذه المكتبة لتدعم اللغة العربية والشكل ايضا دون الحاجة لملفات اخري مثل Skin

وفي النهاية اشكرك علي رأيك ولك تحياتي

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#9
اقتباس
وهو انني لم اخد من الكود خاصتك سوي طريقة جعله مكتبة DLL

الكود واضح يا أخي وأترك الرأي لباقي الأعضاء

أن يطلعو على المصدرين إن كان حقاً ليس هو ( بتصرف )

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#10

اخي الكريم انا لا احب ان يحمل احد لي شيا في قلبه فمهما كان نحن اخوة في الاسلام

ولكني اريد ان افهم شيا واحدا , ماذا تقصد باني قمت بنقل كودك

فإذا كنت تقصد تصميم صفحة الرسالة فلو لاحظت فإن صفحة رسالتك مختلفة في فكرتها كليا عن صفختي رسالتي وربما لاحظت هذا

اما اذا كنت تقصد صفح ال class , فإن الدالة الخاصة بالرسالة ليس لها طريقة اخري لتكتب بها , فهي طريقة واحدة وانا اعترف اني لم اكن اوفق فيها لولا رد الاخ العزيز msayed2004 , جزاه الله الف خير لأني لم اكن اعرف كيف اجعل المتغير اختياري optional وبالنسبة لل enum فقد عرفتها في موضوع آخر لي لادوات الاكتف اكس وجزاه الله خيرا من اعطاني هذه المعلومة

فأرجو التوضيح وانا اتفق معك في ان يقارن عملنا الاعضاء

تم تعديل هذه المشاركة بواسطة محمد مصطفي غريب في 29 سبتمبر 2008 في 07:29

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#11

آخر تحديث

1. تم إضافة إمكانية عدم ظهور أيقونة للرسالة

2. إلغاء تفعيل زر الإغلاق في رسائل السؤال التي من النوع YesNo و ما شابهها

3. إضافة خاصية ( Property ) لجعل المستخدم يخصص صوت معيناً للرسالة

الخاصية 1:

msg.Show "Text you want" , "Title you want" , None , OKCancel

الخاصية 2:

لا يوجد مثال

الخاصية 3:

msg.SoundFile = App.Path & "\MySoundFile.wav" 
msg.Show "Text you want" , "Title you want" , Question , YesNo

MessageBox.rar

تم تعديل هذه المشاركة بواسطة COMFORT في 29 سبتمبر 2008 في 08:24

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#12

اصدار جديد :wink: من ArbBox

تم تغيير الاسم من ArbMsg الي ArbBox حيث اصبح يحتوي علي:

msgbox

inputbox

طريقة استخدام كلا منهما:

اولا ال msgbox :

Dim msg As New ArbBox

msg.Show_Msg "مضمون الرسالة", "عنوان الرسالة", OkCancel, Exclamation_Icon

'لمعرفة الزر الذي تم الضغط عليه في الرسالة

If msg.Msg_Clicked_Button = "msgok" Then

'الامر الذي سينفذ عند الضغط علي زر موافق

End If

ثانيا ال inputbox :

Dim msg As New ArbBox
Dim ans As String

ans = msg.Show_Input("مضمون صندوق الادخال", "عنوان صندوق الادخال", "القيمة الافتراضية لنص صندوق الادخال")

'لمعرفة ما اذا تم الغاء صندوق الرسالة بالضغط علي زر الغاء الامر

If msg.Cancel_Input = True Then

'الامر الذي سينفذ عند الضغط علي زر إلغاء صندوق الرسالة

End If

'لمعرفة النص الذي تم ادخاله في صندوق الادخال

msg.Show_Msg ans

بالنسبة للاخ الذي سرقت منه اكواد هذا المسج :

بصراحة امكانيات جديدة وفكر رائعة "بالذات الامكانيتين الاولي والثانية" :clapping:

يا تري من اين حصلت عليهم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :hmm:

ArbBox.rar

تم تعديل هذه المشاركة بواسطة محمد مصطفي غريب في 29 سبتمبر 2008 في 10:35

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#13

من أين حصلت على أنت على الكلاس كاملاً

و بصراحة اسمه الجديد Arab Box أحلى من Arabmsg

تعديل رهيب و خصوصاً الواجهة السوداء .

عندما يساعدك أحد الأعضاء فلا داعي لنسخ الكود كما هو و التعديل عليه

ثم تقول أمامي أن هذا من صنعك و لم تتجاوز المدى التي أعطيتك فيها المثال يوماً :wink: .

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#14

للاعضاء التقييم

هذا هو كلاس الاخ العزيز

Const MinWidth = 2835
Const Min3ButtonWidth = 4170
Private SoundFilePath As String
Public Enum msgType
    Error = 1
    Info = 2
    Question = 3
    Exclamation = 4
    None = 5
End Enum
Public Enum Buttons
    YesNo = 1
    OKOnly = 2
    OKCancel = 3
    AbortRetryIngnor = 4
    YesNoCancel = 5
    AbortRetryCancel = 6
End Enum
Public Enum MessageBoxResult
    msgYes = 1
    msgNo = 2
    msgOK = 3
    msgCancel = 4
    msgRetry = 5
    msgAbort = 6
    msgIgnore = 7
End Enum
Public Function Show(ByVal Text As String, ByVal Caption As String, ByVal MessageType As msgType, Optional ByVal ButtonsType As Buttons = OKOnly) As MessageBoxResult
    Dim CenterOFTheForm As Integer
    Dim I As Integer
    With frmMessage

        .lblMessage.Caption = Text
        .Caption = Caption
        For I = 0 To 6
            .msgButton(I).Top = .lblMessage.Top + .lblMessage.Height + 350
        Next
        .Height = .msgButton(0).Top + .msgButton(0).Height + 600
        '.Width = .msgButton(0).Left + .msgButton(0).Width + .msgButton(1).Width + 320
        .Width = (.lblMessage.Width + .lblMessage.Left + 200 + .msgIcon(0).Width)

        If Not MessageType = None Then
            .msgIcon(MessageType - 1).Visible = True
            .msgIcon(MessageType - 1).Left = .lblMessage.Left - .msgIcon(MessageType - 1).Width - 100
        Else
            .lblMessage.Left = (.Width - .lblMessage.Width) / 2
        End If

        If .Width < MinWidth Then .Width = MinWidth
        CenterOFTheForm = .Width / 2


        Select Case ButtonsType
        Case 1
            .msgButton(0).Visible = True
            .msgButton(1).Visible = True

            DisableCloseWindowButton frmMessage

            .msgButton(0).Left = CenterOFTheForm - .msgButton(0).Width - 100
            .msgButton(1).Left = CenterOFTheForm + 20
        Case 2
            .msgButton(2).Visible = True
            .msgButton(2).Left = CenterOFTheForm - (.msgButton(0).Width / 2)
            .msgButton(2).Top = .msgButton(0).Top
        Case 3
            .msgButton(2).Visible = True
            .msgButton(3).Visible = True

            .msgButton(2).Left = CenterOFTheForm - .msgButton(0).Width - 100
            .msgButton(3).Left = CenterOFTheForm + 20
        Case 4
            .msgButton(6).Visible = True
            .msgButton(5).Visible = True
            .msgButton(4).Visible = True

            DisableCloseWindowButton frmMessage

            .msgButton(6).Left = CenterOFTheForm - .msgButton(0).Width - 300
            .msgButton(5).Left = CenterOFTheForm - 200
            .msgButton(4).Move .msgButton(5).Left + .msgButton(5).Width + 100, .msgButton(1).Top

            '.Width = .Width + .msgButton(0).Left
            If .Width < Min3ButtonWidth Then .Width = Min3ButtonWidth
        Case 5
            .msgButton(0).Visible = True
            .msgButton(1).Visible = True
            .msgButton(3).Visible = True

            .msgButton(0).Left = CenterOFTheForm - .msgButton(0).Width - 300
            .msgButton(1).Left = CenterOFTheForm - 200
            .msgButton(3).Move .msgButton(1).Left + .msgButton(1).Width + 100, .msgButton(1).Top

            '.Width = .Width + .msgButton(0).Left
            If .Width < Min3ButtonWidth Then .Width = Min3ButtonWidth
        End Select

        If Not Me.SoundFile = vbNullString Then
            If Not Dir(Me.SoundFile) = vbNullString Then
                sndPlaySound Me.SoundFile, 1
            End If
        End If

        .Show vbModal

        Show = ClickedButton
    End With
End Function
Public Sub About()

    frmAbout.Show vbModal
End Sub


Public Property Let SoundFile(strPath As String)
    SoundFilePath = strPath
End Property
Public Property Get SoundFile() As String
    SoundFile = SoundFilePath
End Property

وهذا هو الكلاس الخاص بي الذي سرقته منه

Enum arbmsg_buttons_style

OkOnly = 1
OkCancel = 2
YesNo = 3
RetryCancel = 4
YesNoCancel = 5
AbortRetryIgnore = 6

End Enum



Enum arbmsg_icon_style
None_Icon = 1
Critical_Icon = 2
Information_Icon = 3
Question_Icon = 4
Exclamation_Icon = 5

End Enum

Enum arbmsg_Result
    msgYes = 1
    msgno = 2
    msgOK = 3
    msgcancel = 4
    msgRetry = 5
    msgAbort = 6
    msgIgnore = 7

End Enum



Public Function Show_Msg(arbmsg_Prompt As String, Optional arbmsg_Title As String = "", Optional arbmsg_buttons As arbmsg_buttons_style = OkOnly, Optional arbmsg_icon As arbmsg_icon_style = None_Icon) As arbmsg_Result

On Error Resume Next

With frmmsg

Select Case arbmsg_buttons

Case 1
.cl(0).Caption = "موافق"

.c(1).Visible = False
.cl(1).Visible = False
.c(2).Visible = False
.cl(2).Visible = False

.c(0).Left = .c(1).Left
.cl(0).Left = .cl(1).Left

Case 2
.cl(0).Caption = "موافق"
.cl(1).Caption = "الغاء الامر"

.c(0).Left = (.Width / 8 * 5)
.cl(0).Left = (.Width / 8 * 5) + 120
.c(1).Left = .Width / 8
.cl(1).Left = .Width / 8 + 120

.c(2).Visible = False
.cl(2).Visible = False

Case 3
.cl(0).Caption = "نعم"
.cl(1).Caption = "لا"

.c(0).Left = (.Width / 8 * 5)
.cl(0).Left = (.Width / 8 * 5) + 120
.c(1).Left = .Width / 8
.cl(1).Left = .Width / 8 + 120

.c(2).Visible = False
.cl(2).Visible = False

.cclose.Picture = .noclose.Picture
.xe.Text = "0"

Case 4
.cl(0).Caption = "إعادة المحاولة"
.cl(1).Caption = "الغاء الامر"

.c(0).Left = (.Width / 8 * 5)
.cl(0).Left = (.Width / 8 * 5) + 120
.c(1).Left = .Width / 8
.cl(1).Left = .Width / 8 + 120

.c(2).Visible = False
.cl(2).Visible = False

Case 5

.cl(0).Caption = "نعم"
.cl(1).Caption = "لا"
.cl(2).Caption = "الغاء الامر"

Case 6
.cl(0).Caption = "إحباط"
.cl(1).Caption = "إعادة المحاولة"
.cl(2).Caption = "تجاهل"

.cclose.Picture = .noclose.Picture
.xe.Text = "0"

End Select

Select Case arbmsg_icon

Case 1
.ico.Picture = LoadPicture("")
.Label1.Left = 120
.Label1.Width = 5175

Case 2
.ico.Picture = .er.Picture
sndPlaySound "C:\WINDOWS\MEDIA\Windows XP Critical Stop.wav", 1  'error

Case 3
.ico.Picture = .inf.Picture
sndPlaySound "C:\WINDOWS\MEDIA\Windows XP Error.wav", 1 'info

Case 4
.ico.Picture = .qun.Picture

Case 5
.ico.Picture = .exc.Picture
sndPlaySound "C:\WINDOWS\MEDIA\Windows XP Exclamation.wav", 1 'Exclam


End Select

.Label1.Caption = arbmsg_Prompt
.Label3.Caption = arbmsg_Title
.Show 1

End With

Show_Msg = selectedbutton_msg

End Function

Public Function Msg_Clicked_Button() As String
On Error Resume Next

Select Case selectedbutton_msg

Case 1: Msg_Clicked_Button = "msgyes"
Case 2: Msg_Clicked_Button = "msgno"
Case 3: Msg_Clicked_Button = "msgoK"
Case 4: Msg_Clicked_Button = "msgcancel"
Case 5: Msg_Clicked_Button = "msgretry"
Case 6: Msg_Clicked_Button = "msgabort"
Case 7: Msg_Clicked_Button = "msgignore"

End Select



End Function



Public Function Show_Input(ArbInput_Prompt As String, Optional ArbInput_Title As String = "", Optional ArbInput_Default As String = "") As String

With frminput
.Label1.Caption = ArbInput_Prompt
.Label3.Caption = ArbInput_Title
.Text1.Text = ArbInput_Default
.Show 1

End With

Show_Input = input_text

End Function


Public Function Cancel_Input() As Boolean
Cancel_Input = cancel_input_b
End Function


Public Sub Show_About()

Show_Msg "من تصميم : محمد مصطفي غريب  -  ت/ : 0124876633", "عن صندوق الرسالة العربي ArbBox", OkOnly, Information_Icon

End Sub

وانا اترك للاعضاء الكرام التقييم علي الشكل

وفي النهاية اشكرك اخي علي كل شي والله اعلم بكلانا

وايضا اشكرا عي ما شكرتك عليه مسبقا وهو كيفية عمل هذا المسج dll , فأنا حقيقتا الكود اللذي تقول اني سرقه منك كنت واضعه في موديول كما اخبرت الاخ العزيز اللذي ساعدني في كود دالة الفانكشن

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#15

تحديث آخر :happy: :wink: :P

تم إضافة InputBox أيضاُ إلى مكتبة

مكتبة ( MNIODialogs ( Micronet Input & Output Dialogs

حيث أن الـ MessageBox يعتبر Output Dialog

و الـ InputBox يعتبر Input Dialog لتصبح متكاملة و كله من أفكاري :lol:

أمثلة على المميزات الجديدة

أولاً: تنصيب المكتبة:

بعد التحميل قم بنسخ الملف MNIODialogs.dll إلى مجلد الـ System32

بعد ذلك إذهب إلى الـ Run وأكتب Regsvr32 MNIoDialogs.dll

وبعدها من الـ Visual Basic اذهب إلى قائمة Project ثم اختر References

ثم أضف المكتبة إلى مشروعك.

لتصريح عن MessageBox

Dim msg As New MessageBox

للتصريح عن InputBox

Dim Inpt As New InputBox

ثانياً: التعامل مع الـ InputBox

تم إضافة أربع Property إلى هذه الكائن

1. Prompt و هذه مسؤلة عن الرسالة التوضيحية التي تظهر للمستخدم .

2. DialogTitle و هذه مسؤلة عن عنوان صندوق الإدخال .

3. DefualtValue وهذه مسؤلة عن القيمة الإفتراضية لصندوق الإدخال

4. ResultText وهي خاصية للقراءة فقط و تعود بقيمة النص الذي يدخله المستخدم

ويحتوي الكائن على طريقة Method تدعى Show و ذلك لعرض صندوق الإدخال

مثال 1:

Dim Inpt As New InputBox

'يتم ضبط الخصائص

Inpt.DialogTitle = "النص الذي تريده"
Inpt.Prompt = "الرسالة التي تريدها"
Inpt.DefualtValu = "القيمة التي تريدها" 

'نعرض المربع و نتحقق إذا كان المستخدم ضغط موافق أم لا
If Inpt.Show () = InpOK Then
'إذا كان نعم بالفعل
Text1.Text = Inpt.ResultText
Else 
'ضغط المستخدم إلغاء الأمر أو أغلق مربع الحوار
'قم بعمل ما تريد
End If

مثال 2:

يتم ضبط الخصائص من الطريقة Show

Dim Inpt As New InputBox

'نعرض المربع و نتحقق إذا كان المستخدم ضغط موافق أم لا
If Inpt.Show("القيمة الإفتراضية" , "العنوان الذي تريدها" , "الرسالة التي تريدها") = InpOK Then
'إذا كان نعم بالفعل
Text1.Text = Inpt.ResultText
Else 
'ضغط المستخدم إلغاء الأمر أو أغلق مربع الحوار
'قم بعمل ما تريد
End If

والنتيجة واحدة و ما تم عمله في عدة سطور حصلنا عليه في سطر واحد .

ستجدون في المرفقات التالي:

1. السورس كود للمكتبة كاملة

2.مثال للتعامل مع الـ InputBox

3. مثال للتعامل مع MessageBox

4. المكتبة في شكلها التنفيذي MNIODialogs.dll

لا تنسونا من الدعاء

MNIoDialog.rar

تم تعديل هذه المشاركة بواسطة COMFORT في 30 سبتمبر 2008 في 03:28

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#16
اقتباس
الكود اللذي تقول اني سرقه منك

أنا لم أقل لك سرقت ، لكن المفروض من الحقوق العلمية أن تنسب كل ما

تقتبسه إلى أصحابه لكن أنت قمت بالتعديل وسميتها اسم آخر وغيرت الشكل

و هذه هي مكتبتك . لا مشكلة في الاقتباس أبداً و إلا لما تعلمنا .

كما أرى أنك أضفت About للمكتبتك في الإصدارت الجديدة :lol: .

تم تعديل هذه المشاركة بواسطة COMFORT في 30 سبتمبر 2008 في 01:03

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#17

اخي العزيز انت تقول اني اقتبست منك الكلاس كله , فدعنا نعرض اجزاء الكلاس لنري اي جزء بالضبط قمت انا بأقتباسه

طالما انك لا تصدقني ووالله العظيم (اذا كنت تصدق يمين الله) انا لم اقتبس من موضوعك كله إلا الاتي:

1- ال enum الخاص بالازرار حيث انني كنت اود كتابته بيدي لكني رأيته مكتوب عندك فنسخته بعد تصحيح خطأ لغوي فيه اختصارا للوقت

ولكن اخي العزيز هذه لا يعد اقتباسا فأنا كنت قد كتبت كل ال enum الاخري وكنت استعرض الازرار الخاصة بالماسج بوكس العادية لكي اكتبها في ال enum فهل هذا يعد اقتباسا في رأيك؟

اما دالة الفانكشن فانا كنت اعرفها ولكني لم اكن اعرف كيف اضع بها متغير اختياري وقد تفضل علي الاخ msayed2004 بأني يجب ان اضع كلمة optional قبل المتغير ليكون اختياري

اما ما بعد دالة الفانكشن فهو استدعاء لفورم الماسج وتظبيط للفورم من حيث كبشنات الازرار ومواقعهم وظبط الاشكال ولو تلاحظ فإن تصميم فورم المسج الخاص بي يختلف عن تصميم فورم المسج الخاص بك لذلك لا يمكن اقتباسه - صحيح؟

وهذا كل ما في الكلاس اخي العزيز فماذا اقتبست؟

وثاني شيئ اقتبسته منك اخي العزيز وهذا هو اهم شيء وهو ما اقتبسته فعلا واشكرك عليه وهو انني كنت واضع هذا الكود في مديول وعندما جعلته dll لم ينفذ شي فرأيتك انت تكتبه في الكلاس فوضعته في كلاس وعمل

اما غير هذا فوالله العظيم انا لم اقتبس شيء اخر وإن هذا الطبع ليس في واني احب تصميم مشاريعي بنفسي ولا احب التكملة او التعديل علي مشروع احد فكل مبرمج له طريقة مختلفة عن الاخر

ارجو ان تكون قد صدقتني لان هذه هي الحقيقة والله شاهد علي ما اقول ونحن في آخر يوم من شهر رمضان الكريم اعاده الله علي المسلمين

واخيرا اخي العزيز لي اقتراح بسيط علي مشروعك ارجو ان تتقبله مني فهو شيء بسيط جدا

اجعل المتغير الخاص بالزر المضغوط في صندوق الادخال او صندوق الاخراج , اجعله cancel عند الضغط علي زر اغلاق النافذة

ارجو ان لا اكون قد أطلت عليك لكني لا احب ان تعتقد ما هو ليس في وارجو ان لا تكون قد غضبت مني

وانا اري ان لا احد قد اهتم بموضوعنا ربما لاننا بدأناه بالعراك فما رأيك في ان نكتب موضوع جديد لنعرض فيه المكتبتين دون عراك

وكل عام وانتم بخير

تم تعديل هذه المشاركة بواسطة محمد مصطفي غريب في 30 سبتمبر 2008 في 13:49

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#18

كل عام و أنت بخير أخي محمد مصطفي غريب

و أعتذر لك إن كنت قد أخطأت في حقك في شيء

و أتمنى أن لا يكون في نفسك شيء ، كل ما حدث هو سوء تفاهم

و أنا موافق على أن نفتح موضوع جديد نعرض فيه المكتبتين .

و كل عام و جميع الأعضاء معنا في المنتدى بخير

نسأل الله العظيم رب العرش الكريم أن يعيد علينا و عليكم الأيام بخير

تم تعديل هذه المشاركة بواسطة COMFORT في 30 سبتمبر 2008 في 18:41

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#19
اقتباس
اجعل المتغير الخاص بالزر المضغوط في صندوق الادخال او صندوق الاخراج , اجعله cancel عند الضغط علي زر اغلاق النافذة

هو كذلك مع صندوق الإدخال أما صندوق الرسالة فلا

لأنك تحتاج أن تتحقق من المفتاح الذي تريده بالتحديد

فقط فإن لم يكن فإنك لن تنفذ أمر معين

مثال :

Dim Msg As New MessageBox

If Msg.Show ("خروج" , "هل تريد الخروج من البرنامج حقاً ؟" , Question , OKCancel ) = msgOK Then 

End 

End If

تم تعديل هذه المشاركة بواسطة COMFORT في 30 سبتمبر 2008 في 18:56

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#20

تم التعديل كما اقترحت أخي محمد

و تم تصحيح العديد من الأخطاء الكثيرة أيضاً في صندوق الرسالة

هذا آخر إصدار أرجو عدم تحميل الإصدارات السابقة

المكتبة مرفقة.

MNIODialogs.rar

تم تعديل هذه المشاركة بواسطة COMFORT في 1 أكتوبر 2008 في 00:57

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#21

كل عام وانتم بخير جميعا بمناسبة عيد الفطر المبارك اسعد الله ايامكم

وشكرا لك اخي العزيز علي تصديقك لي

وانا والله ليس في نفسي اي شي لك سوي المحبة والإيخاء

افتح انت اخي الموضوع الجديد وضع فيه مكتبتك بالشرح وانا سوف اضع مكتبتي

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#22

الموضوع الجديد

/index.php?showtopic=172807

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif

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