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

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

مغلق
بدأه ابن البلد في 30 أبريل 2003 · 8 رد · 907 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مثلا انا في نموذج سندات القبض أو غيره واريد ان افتح نموذج الفواتير بمفتاح F3

#2

تفضل يا أخي / ابن البلد (gift)

هذا مثال على ما طلبته ,,,,,,,,,,,,,,,,,

تحياتي : أبو عقيل (f)(f)(f)

f3.zip

المسلم من سلم الناس من لسانه ويده

#3

شكرا أبوعقل على مساعدتك لي .

مزيدا من توضيح لطلبي ..اريد برمجة مفتاح F3 لفتح نموذج معين بحيث يمكن استخدام هذا المفتاح في اي مكان في البرنامج ، طريقتك هذه تحتاج مني ان اعرف هذا المفتاح في كل نماذج البرنامج وتخيل لوكان عندي 40 نموذج مثلا علي ان اعرف اربعين مرة برمجة مفتاح F3

وهذا شاق جدا وغير منطقي وتخيلي انني اريد ان اعرف كذلك 5 مفاتيح لعمل اشياء معينة ففي كل مرة اضطر ان اعرف في جميع النماذج

#4
اقتباس
وهذا شاق جدا وغير منطقي

إن الطريقة الوحيدة المعروفة لي هي التي إستخدمها الاخ أبو عقيل

و هي مرتبطة بحدث خاص بالنموذج

و عليه فان ما تجده شاقا هو الحل الوحيد المتاح ( علي حد علمي )

و الله أعلم

و نتمني أن تجد لنا طريقة منطقية و غير شاقة :)

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

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

مع ملاحظة انه فى حالة تكرار الكود فى أكثر من نموذج يتم كتابة روتين فرعي واحد فى وحدة نمطية يخص جميع الازرار ثم استدعاؤه بسطر واحد فى كل نموذج

مثال

من موضوه مشابه فى قسم الاوفيس ( الكود يخص الباوربوينت )

Public Sub moveit(KeyCode)

  Select Case KeyCode



Case 49

MsgBox "You Pressed on 1 and you shall go to slide no 1"

   With SlideShowWindows(1).View

    .GotoSlide 1

    End With

Case 50

MsgBox "You Pressed on 2 and you shall go to slide no 2"

   With SlideShowWindows(1).View

    .GotoSlide 2

    End With



Case 51

MsgBox "You Pressed on 3 and you shall go to slide no 3"

   With SlideShowWindows(1).View

    .GotoSlide 3

    End With



Case 52

MsgBox "You Pressed on 4 and you shall go to slide no 4"

   With SlideShowWindows(1).View

    .GotoSlide 4

    End With



Case 97

MsgBox "You Pressed on 1 and you shall go to slide no 1"

   With SlideShowWindows(1).View

    .GotoSlide 1

    End With

Case 98

MsgBox "You Pressed on 2 and you shall go to slide no 2"

   With SlideShowWindows(1).View

    .GotoSlide 2

    End With



Case 99

MsgBox "You Pressed on 3 and you shall go to slide no 3"

   With SlideShowWindows(1).View

    .GotoSlide 3

    End With



Case 100

MsgBox "You Pressed on 4 and you shall go to slide no 4"

   With SlideShowWindows(1).View

    .GotoSlide 4

    End With

    

Case 27

MsgBox "You Pressed Esc, Good bye !!"

   With SlideShowWindows(1).View

    .Exit

    End With

    

    

    Case Else

    MsgBox " Sorry this example is prepared for only 4 slides," & Chr(10) & Chr(13) & _

    "Choose a number from 1 to 4 please" & Chr(13) & Chr(13) & "Best Regards from : Mohamed Taher"



End Select

End Sub

و يتم استدعاؤه فقط ب

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)



Call moveit(KeyCode)



End Sub

و الله أعلم

#5

شكرا محمد على تفاعلك مع الموضوع

اخ محمد قلت :أن نسخ الكود فى كل النماذج هو عمل غير شاق لانه نفس الكود !

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

اي مكان سواء كانت فاتح نموذج او تقرير .

على طريقتك احتاج ان امر على كل النماذج والتقارير وهذا غير منطقي وهدر لوقت المبرمج ( حتى لوكان عددها قليل 5 مثلا ) منطق البرمجة السليم يقول انه

للابد من وجود امكانية تسمح لي بذلك ،

اضرب لك مثال شبيه بطلبي بعريف مثغير ثابت ، افتح وحدة نمطية جديدة وخلي الكود التالي فيها :

Option Compare Database

Option Explicit

Global Const mytest = "1234567890""

الان المتغير mytest اصبح معرف في كامل البرنامج بالقيمة "1234567890" ولو ذهبت في اي مكان في البرنامج واردت ان تظهر قيمة المتغير

mytest لحصلت على نفس النتيجة ونفس القيمة

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

كل مكان .

سوف ابحث وان شاء الله اصل إلى نتيجة واخبركم

#6

أخي الكريم

كما قلت لك سابقا

الموضوع مرتبط بحدث ، و الحدث مرتبط بكائن

و أنت تريد التعامل مع الحدث بصورة عامة بعيدا عن الكائن ، مثلما فى تعريف الثابت . و هو فى هذه الحالة ممكن لانه غير مرتبط بكائن مثل الحدث

و مازلت لا أري ان نسخ سطر 5 مرات شاق و غير منطقي و غير منافي لمنطق البرمجة السليم :)

عموما أتمني أن تصل الي ما تريد ـ و قد عودنا الاخوة دائما علي اضافاتهم المفيدة ، و أتمني أن يوافيك أحدهم بما ترغبه ان كان ممكنا

مع تحياتي

#8
اقتباس
عموما أتمني أن تصل الي ما تريد ـ و قد عودنا الاخوة دائما علي اضافاتهم المفيدة ، و أتمني أن يوافيك أحدهم بما ترغبه ان كان ممكنا

بالفعل أعتقد ان ما ذكره د كمال هو ما تريد ، مع الشكر له

و أود توضيح أن هناك خطوة وسيطة فى إنشاء الماكرو لمن غاب عن ذهنه الموضوع مثلي

و هو كما فى الصورة

autokeys.gif

1- اذهب الي جموعة الماكرو

2- اختار ماكرو جديد

3- اضغط علي الأيقون الزي عليه أحرف xyz مثلما فى الصورة

4-سيظهر عمود جديد به اسم الماكرو

5-ضع فى العمود الزر الذي تريد استخدامه

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

طريقة الكتابة --->  ما تدل عليه 





^A or ^4 --->  CTRL+A or CTRL+4 



{F1} --->   F1 



^{F1} --->   CTRL+F1 





+{F1} --->   SHIFT+F1 



{INSERT}  --->  INS 





^{INSERT} --->   CTRL+INS  



+{INSERT} --->   SHIFT+INS 







{DELETE} or {DEL} --->   DEL



 ^{DELETE} or ^{DEL} --->   CTRL+DEL 



+{DELETE} or +{DEL}  --->  SHIFT+DEL

6- إختار الفعل الذي تريد تخصيصه لكل زر

7- أحفظ الماكرو باسم autokeys

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

مع الشكر ثانية للدكتور كمال :)

#9

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

مشرفنا الغالي محمد طاهر جزاك الله خيرا .

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…