اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته..

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

 

Constant Value Description
vbBlack 0x0 Black
vbRed 0xFF Red
vbGreen 0xFF00 Green
vbYellow 0xFFFF Yellow
vbBlue 0xFF0000 Blue
vbMagenta 0xFF00FF Magenta
vbCyan 0xFFFF00 Cyan
vbWhite 0xFFFFFF White

 

ولكن كثيراً ما نريد ان نقوم بإختيار الواناً غير التي موجودة في الاعلى مثلا اللون الفسفسوري غير موجود في القائمة.

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

لكن احيانا تواجهنا مشاكل ورسائل مزعجة من الاكسس عند وضع الالوان عن طريق VBA

مثلا انا دائما ماكانت تصادفني رسالة مزعجة Expected Array عندما اقوم بوضع اللون بالصورة الاتية:

 

txt_name.BackColor = RGB(20,30,60)

تظهرلي هذه الرسالة:

 

p0oNUAX.png

 

فكرت في تحويل اللون من HEX الى OLE ، وقد تم تغيير اللون بنجاح وبدون اي رسائل خطأ

 

Public Function HEX2OLE(ByVal hexValue As String) As Long

    Dim R, G, B As Long

    If Left(hexValue, 1) = "#" Then hexValue = Replace(hexValue, "#", "")
 
    R = CByte("&H" & Left(hexValue, 2))
    G = CByte("&H" & Mid(hexValue, 3, 2))
    B = CByte("&H" & Mid(hexValue, 5, 2))
 
    HEX2OLE = CLng(R + (G * 256) + (B * 65536))
    
End Function

 

بالتوفيق للجميع.

HEX_2_OLE.accdb

  • Like 4
  • Thanks 1
قام بنشر

شكرا لك أستاذنا @SEMO.Pa3x على ماتقدمة لنا

قمت بتعديل بسيط حتى يكون اللون ثابت عند تحميل النموذج .. فتم بنجاح

Me.SEMO.BackColor = HEX2OLE("#00838F")

 

بارك الله فيك .. وجزاك الله خيرا

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • اضف...

Important Information