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

التحكم في العبارة الظاهرة على أزرار رسالة Msgbox

مغلق
بدأه محمد فؤاد تركي في 15 سبتمبر 2007 · 8 رد · 1,068 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أحبائي

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

أقدم لكم اليوم درس بسيط في تغيير العبارات التي تظهر على الزر لجعل العبارة تعبر عن شيء ما . فبدلا من ظهور كلمة نعم تظهر اطبع أو بدلا من لا ؛ تظهر لا تطبع أو احذف أو أي كلمة تراها مناسبة للسياق أكثر من ثوابت الأكسس طبعا الشرح والمثال مقدم من موقع استاذنا الجليل ومشرف منتدانا السابق ابو حمود موقع ابو حمود لتعليم الأكسيس العربي على هذا الرابط التحكم في العبارة الظاهرة على أزرار رسالة Msgbox ( تم التعديل يواسطة المشرفة زهره )

. أنظر الصورة :

25872356qm5.png

أنشئ وحدة نمطية عامة ثم فيها اكتب التالي :

Public Ok, Cancel, ABORT
Public RETRY, IGNORE, YES, NO

Private m_hHook As Long

Private Const IDOK = 1
Private Const IDCANCEL = 2
Private Const IDABORT = 3
Private Const IDRETRY = 4
Private Const IDIGNORE = 5
Private Const IDYES = 6
Private Const IDNO = 7

Private Const WH_CBT = 5
Private Const GWL_HINSTANCE = (-6)
Private Const HCBT_ACTIVATE = 5

Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
				  (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" _
				  (ByVal hDlg As Long, ByVal nIDDlgItem As Long, _
				  ByVal lpString As String) As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
	 (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _
	 ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" _
				  (ByVal hHook As Long) As Long


Public Sub MessageBoxH(hwndThreadOwner As Long)

   Dim hInstance As Long
   Dim hThreadId As Long

   hInstance = GetWindowLong(hwndThreadOwner, GWL_HINSTANCE)
   hThreadId = GetCurrentThreadId()

   m_hHook = SetWindowsHookEx(WH_CBT, AddressOf _
   MsgBoxHookProc, hInstance, hThreadId)

End Sub

Private Function MsgBoxHookProc(ByVal uMsg As Long, ByVal _
wParam As Long, ByVal lParam As Long) As Long

   If uMsg = HCBT_ACTIVATE Then
	  SetDlgItemText wParam, IDOK, Ok
	  SetDlgItemText wParam, IDCANCEL, Cancel
	  SetDlgItemText wParam, IDABORT, ABORT
	  SetDlgItemText wParam, IDRETRY, ABORT
	  SetDlgItemText wParam, IDIGNORE, ABORT
	  SetDlgItemText wParam, IDYES, YES
	  SetDlgItemText wParam, IDNO, YES

	   UnhookWindowsHookEx m_hHook
   End If
   MsgBoxHookProc = False

End Function

ولاستدعاء الدالة اكتب في حدث نقر زر أمر مثلا :

Ok = "أطبع التقرير"

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

MessageBoxH Me.hwnd
If MsgBox("رسالة .......", vbOKCancel + vbMsgBoxRight + vbMsgBoxRtlReading, "أمر طباعة") = vbOK Then
' ثم بقية الأمر .

End If

ملاحظات هامة :

1- أطول عبارة ممكن إظهارها على الزر هي ما يقارب 22 حرف مثل بسم الله الرحمن الرحيم .

2- القيم العائدة من الرسالة حسب الزر الذي وضعت له العبارة ففي المثال السابق القيم العائدة هي VbOk أو vbCancel أو ما يقابلها في الأرقام .

3- بقية الأزرار إذا رغبت في تغيير عباراتها كالتالي :

73966016ir3.jpg

مرفق مثال

MsgboxButton2000.rar

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#2

شكرا لك على مجهودك الرائع ، طريقة ممتازة وشرح جميل

أخوك : حسن

اللهم اغفر لي ولوالدي وللمسلمين والمسلمات الأحياء منهم والأموات إلى يوم الدين .

#3

السلام عليكم

ممتاز جدا أيضا كنت أحتاج اليه

مشكور أخى لك جزيل الشكر

39224663we8.gif

#4

بارك الله فيك أخي محمد

تم تعديل المشاركه للعلم

#5

بارك الله فيك أخت زهرة

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

ولكنك دائما سباقة

التغير هو القانون الدائم للحياة.ودوام الحال من المحال

فلماذا لا نتغير بإرادتنا إلى ما نريد؟ قبل أن تغيرنا الحياة مجبرين إلى ما لا نريد؟

موقعي

#6

أخي الغالي ابن مصر الغالية

محمد فؤاد تركي

فكرة جديدة ورائعة .. تعجبني دائماً مشاركاتك وبدون مجاملة دائماً ابحث عن مشاركاتك لأني أجد فيها الكثير من الروائع الجميلة والمثل يقول لن أعيش في جلباب أبي .. التغيير واجب ... وبارك الله فيك وجعله في ميزان حسناتك وكل عام وأنت بألف خير وبالتوفيق.

[يمين]

إذا كـان تـرك الـدين يعــنــي تقــدمــاً

فـيا نفــس مـوتــي قبــل أن تتقـدمــي

[/يمين]

#7

السادة جميع الاعضاء

بارك الله فيكم جميعاً

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

أختي الغالية زهرة

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

شكراً لكم جميعاً

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#8

بارك الله فيك..

شرح تشكر علية ... والفكرة رائعه

إذا دعتك قدرتك على ظلم العباد فتذكر قدرة الله عليك

#9

بسم الله الرحمن الرحيم

بارك الله فيك على الدرس الجميل

والشكر موصول الى اخونا الكبير ابو حمود

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

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

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

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

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

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