اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تغير لون الزر عند الضغط عليه وجعل حدود الحقل شفافة وعند الضغط على الزر التالى يرجع الى لونه الاساسى


الحلبي

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

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

اخوانى مرفق مثال

المطلوب عند الضغط على الزر الاول (A) يتغير لون الزر الى اى لون مثلا (الاصفر) وحدود الزر تتغير الى شفافة ولا يتغير لون الزر ان حركت الماوس او تم الخروج عنه

وعند الانتقال الى الزر التالى (B) يرجع لون الزر (A) الى لونه الاساسى ويتغير لون الزر التالى (B) الى الاصفر وحدوده شفافة وهكذا فى الزر الثالث

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

تغير لون الزر.accdb

رابط هذا التعليق
شارك

30 دقائق مضت, Eng.Qassim said:

تفضل هذا المثال

متشكر جدا ياباشمهندس 

لم اعرف لماذج يظهر خطأ فى السطر      ctl.BackColor = RGB(150, 180, 215

جزاك الله كل خير وجعله فى ميزان الحسنات

رابط هذا التعليق
شارك

ليست هناك مشكلة دكتور ..سطر الكود لديك بدون نهاية قوس

الفكشن هو

Function SetActiveControlColour()
Dim ctl As Control

    For Each ctl In Me.Controls
        ctl.BackColor = RGB(150, 180, 215)
    Next ctl
    Me.ActiveControl.BackColor = vbYellow
End Function

 

رابط هذا التعليق
شارك

فعلا فى المثال الذى ارفقته يظهر عندى كذلك مفيش مشاكل خالص

ولكن عند تطبيق الكود فى برنامجى الاساسى يظهر الخطأ

 

رابط هذا التعليق
شارك

1 دقيقه مضت, الحلبي said:

ولكن عند تطبيق الكود فى برنامجى الاساسى يظهر الخطأ

في اغنية قديمة للرائع محمد الحلو ..بتقول

عراف وداير انا بوشوش الاصداف...😂

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

رابط هذا التعليق
شارك

طب عشان برنامجى انا فيه نموذج فرعى يظهر هذا الخطأ

شوف المرفق هذا نفس المثال ولكن به نموذج فرعى

ياريت نعرف من اين هذا الخطأ

تغير لون الزر.accdb

رابط هذا التعليق
شارك

15 دقائق مضت, الحلبي said:

ياريت نعرف من اين هذا الخطأ

جرب المرفق

فقط حددنا الكائن الذي سيتم تطبيق الامر عليه

Function SetActiveControlColour()
Dim ctl As Control

    For Each ctl In Me.Controls
    If ctl.ControlType = 104 Then
    ctl.BackColor = RGB(150, 180, 215)
    End If
    Next ctl
    Me.ActiveControl.BackColor = vbYellow
End Function

104 يعني زر امر

الملف مرفق

 

تغير لون الزر(2).accdb

  • Like 3
رابط هذا التعليق
شارك

6 دقائق مضت, Eng.Qassim said:

لم اكن اعلم ان هناك كنترول غير الازار

كنترول الازرار حسب مايكروسوفت

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

acAttachment 	126 	Attachment control
acBoundObjectFrame 	108 	BoundObjectFrame control
acCheckBox 	106 	CheckBox control
acComboBox 	111 	ComboBox control
acCommandButton 	104 	CommandButton control
acCustomControl 	119 	ActiveX control
acEmptyCell 	127 	EmptyCell control
acImage 	103 	Image control
acLabel 	100 	Label control
acLine 	102 	Line control
acListBox 	110 	ListBox control
acNavigationButton 	130 	NavigationButton control
acNavigationControl 	129 	NavigationControl control
acObjectFrame 	114 	Unbound ObjectFrame control
acOptionButton 	105 	OptionButton control
acOptionGroup 	107 	OptionGroup control
acPage 	124 	Page control
acPageBreak 	118 	PageBreak control
acRectangle 	101 	Rectangle control
acSubForm 	112 	SubForm control
acTabCtl 	123 	Tab control
acTextBox 	109 	TextBox control
acToggleButton 	122 	ToggleButton control
acWebBrowser 	128 	WebBrowserControl control

تحياتي

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

الله عليك ياباشمهندس 

فعلا باش مهندس بمعنى الكلمة

الله يفتح عليك ويبارك فيك ويرحم والديك ويبارك لك فى اسرتك

هو المطلوب

هاكون معاك طماع شوية نقدر نغير لون الخط ان لم يكن هناك اجابة

فشكرا لوقتك معى وجزاك الله كل خير

رابط هذا التعليق
شارك

13 دقائق مضت, مبرمج متقاعد said:

لو املك الوقت لقدمت حل بفكره اخرى

حبيبى استاذ / خالد ومعلمنا ومرشدنا

الله ينعم عليك ويرحم والديك 

فعلا هذا هو المطلوب

ولو كان عندك وقت او بمعنى اصح مزاجك عال 

ياريت تأتى لنا بفكرة جديدة

  • Like 1
رابط هذا التعليق
شارك

ذكرني هذا الموضوع بمنشور قديم تم استخدام نفس التقنية فيه 😊👌🏻 ..

أعيد تذكيركم به .. مع إسبال الشكر الجزيل للأساتذة الأعزاء المهندسين قاسم وخالد .. نفعنا الله بهما .. وأمد في أعمارهما 🙂🌹

 

  • Like 2
رابط هذا التعليق
شارك

منذ ساعه, Moosak said:

ذكرني هذا الموضوع بمنشور قديم تم استخدام نفس التقنية فيه 😊👌🏻 ..

موضوع جميل ومتميز وبمشاركة اساتذه المنتدى

من المؤسف انني لم اطلع عليه من قبل او ربما مر من امامي مرور الكرام

منذ ساعه, Moosak said:

مع إسبال الشكر الجزيل للأساتذة الأعزاء المهندسين قاسم وخالد

الشكر لله ثم للمهندس قاسم

انا فقط حددت عنصر التحكم حتى لا يحصل خطأ وكما تعلم اننا عندما نستخدم حلقة تمر على عناصر التحكم في النموذج اما ان

  • نحدد عنصر التحكم المطلوب
  • او نستثني عنصر او عدة عناصر
  • ندع الامر وسوف يتم المرور على كافة العناصر وكما تعلم ان بعض هذه العناصر لا يمكن تطبيق تغيير اللون عليها والبعض الاخر يتطلب الدخول لعرض التصميم

لذا كانت تظهر رسالة الخطأ Error 438 لدي استاذنا الفاضل د.حلبي ويتوقف الكود عن العمل وهذه الرسالة سببها كما اشرت آنفا " بعض عناصر التحكم لا تدعم هذه الخاصية "

لذا وجب التنوية ويبقى الفضل لاهله

والله الموفق

 

 

  • Like 1
رابط هذا التعليق
شارك

منذ ساعه, مبرمج متقاعد said:

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

  • نحدد عنصر التحكم المطلوب
  • او نستثني عنصر او عدة عناصر
  • ندع الامر وسوف يتم المرور على كافة العناصر وكما تعلم ان بعض هذه العناصر لا يمكن تطبيق تغيير اللون عليها والبعض الاخر يتطلب الدخول لعرض التصميم

لذا كانت تظهر رسالة الخطأ Error 438 لدي استاذنا الفاضل د.حلبي ويتوقف الكود عن العمل وهذه الرسالة سببها كما اشرت آنفا " بعض عناصر التحكم لا تدعم هذه الخاصية "

لذا وجب التنوية ويبقى الفضل لاهله

نعم تماما كما ذكرت مهندسنا العزيز ..

وأضيف أني أرى من الأسهل استخدام خاصية الـ Tag بوضع علامة معينة عليه للعناصر المراد التحكم بها ( وذلك للخروج من متاهات أسماء العناصر وأنواعها ) 😅

نضع العلامة أو الرمز هنا

image.png.c2e1590873f1cf4774c2bd0236fbc263.png

ثم نستخدمها في الكود هكذا :

For Each ctl In Me.Controls
    If ctl.Tag = "*" Then
    ctl.BackColor = RGB(150, 180, 215)
    End If
    Next ctl

طبعا الشرح للمبتدأين أمثالي .. أما لكم أنتم فمن باب " وذكّر ...😁

  • Like 1
رابط هذا التعليق
شارك

منذ ساعه, Moosak said:

طبعا الشرح للمبتدأين أمثالي .. أما لكم أنتم فمن باب " وذكّر ...😁

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

If ctl.Tag = "*" Then

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

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

تم تعديل بواسطه مبرمج متقاعد
  • Like 1
رابط هذا التعليق
شارك

11 ساعات مضت, مبرمج متقاعد said:

ولو املك الوقت لقدمت حل بفكره اخرى

 

منذ ساعه, Moosak said:

وأضيف أني أرى من الأسهل استخدام خاصية الـ Tag بوضع علامة معينة عليه للعناصر المراد التحكم بها

 

12 ساعات مضت, Eng.Qassim said:

كنترول الازرار حسب مايكروسوفت

اساتذنا الكرام ومعلمينا / الاستاذ خالد (مبرمج متقاعد)  والاستاذ / قاسم والاستاذ / موسى                        بدون ترتيب الاسماء

اشكركم جميعا على تقديم المساعدة  ولكنى قد خاننتى الذاكرة وعرضت عليكم السؤال بطريقة خطأ

انا اسف جدا ان اقول لكم انا اريد كما فى المرفق الاخير (به نموذج فرعى )

ان الازرار الثلاثة بدون لون يعنى شفاف

عند الضغط على الزر الاول ان يتلون باى لون ويفتح الفرعى معه وعند الضغط عليه مرة اخرى يختفى الفرعى ويرجع شفاف

وعند الانتقال الى الزر التالى يتلون الزر التالى بنفس لون الاول ويفتح الفرعى 

والغرض من ذلك ان الضغط على اى زر من الثلاثه يفتح الفرعى ويتلون الزر بلون يدل ان الفرعى مفتوح وعند الانتقال واغلاق الفرعى يرجع الى الشفافية

انا اسف جدا جدا جدا فى عرضى واستعجالى خصوصا المهندس العظبم / قاسم

جزاكم الله جميعا كل خير 

رابط هذا التعليق
شارك

في 20‏/10‏/2022 at 10:49, الحلبي said:

انا اسف جدا ان اقول لكم انا اريد كما فى المرفق الاخير (به نموذج فرعى )

ان الازرار الثلاثة بدون لون يعنى شفاف

عند الضغط على الزر الاول ان يتلون باى لون ويفتح الفرعى معه وعند الضغط عليه مرة اخرى يختفى الفرعى ويرجع شفاف

وعند الانتقال الى الزر التالى يتلون الزر التالى بنفس لون الاول ويفتح الفرعى 

 المهندس قاسم اعطاك الحل وللوصول لما اشرتم اليه ممكن تعديل بسيط بدلا من تحديد اللون نتحكم في الشفافية

والفكرة تتعلق بخاصية BackStyle وهي خاصية تتيح امكانية جعل عنصر التحكم شفاف او عادي ولها قيمتان 0 شفاف 1 عادي

وطالما لدينا قيمتان رقيمة فيمكن توظيفهم للوصول للمطلوب

الخطوة الاولى نحجز متغير ونجعل المتغير يساوي

x = Me.ActiveControl.BackStyle

ثم نضع امر يقوم بالمرور على الازرار و تعديل خاصيتها الى شفاف

ctl.BackStyle = 0

الخطوة الثانية نضع الشرط

If x = 0 Then

اي اذا كانت خاصية جميع الازار شفاف نفذ الاتي

Me.ActiveControl.BackStyle = 1
Me.f1.Visible = True

اجعل خاصية الزر الحالي غير شفاف واظهر النموذج الفرعي

وان لم يتحقق الشرط اعكس الامر

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

nz212.gif

  • Like 3
رابط هذا التعليق
شارك

3 ساعات مضت, مبرمج متقاعد said:

ربما لا يكون الحل الافضل ولكن اعتقد يؤدي للمطلوب بنفس فكرة العزيز قاسم

معلمنا واستاذنا / الاستاذ خالد

شرح جميل جدا وواضح جدا ـ حل عبقرى من خبرة كبيرة 

بارك الله فيك ولا يحرمنا من علمك وثقافتك ـ ورحم الله والديك وجزاك كل خير 

ممكن التطبيق على المثال المرفق اكون شاكرا

 

  • Like 1
رابط هذا التعليق
شارك

44 دقائق مضت, الحلبي said:

حل عبقرى

اولا الف شكر على الدعاء الطيب واسأل الله ان ينالك مثله واكثر

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

لذا اسمح لنفسي ان اختلف معك ليست الحل الامثل ولكن حل ربما يحقق المطلوب وفقا للمعطيات

4 ساعات مضت, مبرمج متقاعد said:

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

الحقيقة في ردي السابق ذكرت يحفز لتقديم افكار افضل ليس فقط على مستوى الحل وانما المطلوب ايضا

  • مثلا لماذا ثلاثة ازرار لاخفاء واضهار نموذج واحد ؟
  • هل يتغير مصدر بيانات النموذج بناء زر الامر اي ان ثلاثة ازرار يقابلها نموذج واحد يخدم ثلاثة جداول؟
  • ام ان النموذج الرئيسي يحتوي على اكثر من فرعي ؟

في جميع الاحوال الملف مرفق والاسئلة السابقة بمثابة تفكير بصوت مرتفع

تحياتي وتقديري لاخي واستاذي الفاضل د.محمد

تغير لون الزر(3).accdb

  • Like 1
رابط هذا التعليق
شارك

15 ساعات مضت, مبرمج متقاعد said:

الحقيقة في ردي السابق ذكرت يحفز لتقديم افكار افضل ليس فقط على مستوى الحل وانما المطلوب ايضا

معلمى : عند حق فى كل سؤال حضرتك سألته والان احاول ان اجاوبك

15 ساعات مضت, مبرمج متقاعد said:

مثلا لماذا ثلاثة ازرار لاخفاء واضهار نموذج واحد ؟

هى شاشة رئيسية وبها حوالى عشرة ازرار وليس ثلاثة وقد جعلتها اصغر عدد ممكن كمثال

15 ساعات مضت, مبرمج متقاعد said:

هل يتغير مصدر بيانات النموذج بناء زر الامر اي ان ثلاثة ازرار يقابلها نموذج واحد يخدم ثلاثة جداول؟

بما انها شاشة رئيسية ليس لها مصدر جدول او استعلام 

ولكى اوضح لك الفكرة : هى عبارة عن شاشة رئيسية بها عدة ازار  بها نموذج فرعى ليس له اى مصدر بيانات

مثلا الزار الاول مكتوب عليه البيع يفتح الفرعى وهذا الفرعى عبارة عن عدة ازرار ـ بيع ـ حركة صنف ـ المبيعات كلها وهكذا

يعنى الموضوع كله عبارة عن تاب مثل اداة التاب الموجودة فى اكسس ولكن فيها شئ من الاحترافية

وانا اريد تغير لون الزر حتى اعرف ان النموذج المفتوح حاليا هو عبارة عن المبيعات مثلا ـ والتالى عبارة المشريات وهكذا

يارب اكون وضحت الفكرة لاستاذى العظيم 

المرفق الذى ارفقته حضرتك انا طبقته على البرنامج وماشى عال العال وقام بحل المشكلة

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

  • Like 1
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

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



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information