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

عرض ديالوج الألوان برمجياً !

بدأه MMA_EG_Cairo في 12 ديسمبر 2008 · 4 رد · 578 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يا جماعة ، بإختصار شديد إحنا عندنا آداة إسمها CommonDialog ، هذه الآداة بنستخدمها في عرض نوافذ المربعات الحوارية شائعة الإستخدام ، مثل الـ Open, Save, Font, Colors !!!!

إزاي أعرض هذه المربعات الحوارية بإستخدام الكود !!!!

أنا كنت أعرف أن فية توابع API بيعرض كل هذه المربعات الحوارية ، وأعرف أن فية مكتبة DLL بنقدر نربط من خلالها ونعرض هذه المربعات ... بس للأسف أنا نسيت الكود .

فياريت تعاونوني علي الحصول علي هذا الكود ثانيتاً

مع العلم أنني بحثت عن هذا الكود ولا أعلم لماذا فشلت في إيجادة

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#2

جرب البحث مرة أخري بواسطة أي من الدوال التالية ضمن مكتبة الـ ComDlg32 - Common Dialog

GetOpenFileName

GetSaveFileName

ChooseFont

ChooseColor

أو عن البنيات التالية :

OPENFILENAME

CHOOSEFONT:LOGFONT

CHOOSECOLOR

حاول الاستعانة بالـ MSDN في معرفة المزيد

http://msdn.microsoft.com/en-us/library/ms674690(VS.85).aspx

تم تعديل هذه المشاركة بواسطة Muhammad Fayed في 12 ديسمبر 2008 في 08:31

#4

كان نفسي أستخدم هذا الأسلوب من داخل الـ Form Builder الخاصة بشركة أوراكل ، لكن للأسف فوجأت بأن الألوان محددة ، يعني لازم أحدد ألوان محددة ، ومفيش حاجة إسمها Cusom Color !!!

دة غير أن الألوان كلها عبارة عن RGB ، ودي سهلة التصميم ، لكن مش أي لون بيقبل في الـ Form Builder !!!!

آسف جداً علي الإزعاج ، إظاهر أني في يوم من الأيام سأعود الي الفيجوال والسيكوال سيرفر من جديد ( والله أعلم ).

أشكركم كل الشكر علي تعاونكم المثمر الدائم معي

وكل عام وحضراتكم بخير

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#5

عذرا يا اخى ردك الثاني غير مفهوم وشككنى لدرجة فهمي للموضوع

حسب ما فهمت والله اعلى واعلم انت تريد إستدعاء نافذة اختيار اللون بدوال الـ API ??

ضع هذا الكود داخل الـ Declarations



Private Type ChooseColor
lStructSize As Long
hWndOwner As Long
hInstance As Long
rgbResult As Long
lpCustColors As Long
Flags As eChooseColorFlags
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Private Enum eChooseColorFlags
CC_RGBInit = &H1
CC_FullOpen = &H2
CC_PreventFullOpen = &H4
CC_ColorShowHelp = &H8

#If Win16 Then
CC_SolidColor = &H80 ' Win95 only
CC_AnyColor = &H100 ' Win95 only
#End If

CC_EnableHOOK = &H10
CC_EnableTemplate = &H20
CC_EnableTemplateHandle = &H40
End Enum
Private Declare Function GetChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChooseColor As ChooseColor) As Long

ثم قم بتعريف متغير على الـ Type التي تسمى ChooseColor وقم بملأ المتطلبات وإرسالها في الـ GetChooseColor


Dim CustomColor(0 To 15) As Long
Dim ChooseColor As ChooseColor

' ----- لوضع الألوان الإضافية .. على سبيل المثال ------------------------------- '
For i = 0 To 15
CustomColor(i) = QBColor(i)
Next
' --------------------------------------------------------------------------- '

ChooseColor.Flags = CC_FullOpen Or CC_RGBInit
ChooseColor.rgbResult = vbRed ' لتحديد اللون الإفتراضي
ChooseColor.hWndOwner = Me.hWnd
ChooseColor.lStructSize = Len(ChooseColor)
ChooseColor.lpCustColors = VarPtr(CustomColor(0)) ' الألوان الإضافية

Select Case GetChooseColor(ChooseColor)
Case 1 ' Success
Me.BackColor = ChooseColor.rgbResult
Case Else ' Cancelled or Error
MsgBox "لم يتم تحديد أي لون .. أو حدوث أي خطأ آخر"
End Select
End Sub
Private Sub Form_Load()

سيقوم بتغير الخلفية عند فتح النموذج

أتمنى ان يكون هذا مرادك

ومن باب العلم بالشيء يمكنك أيضا عمل Hook على الـ Dialog وهكذا

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

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