PDA

View Full Version : msgbox فارسی



sarami
سه شنبه 11 بهمن 1384, 14:44 عصر
شاپرک جان زحمت کشیده بودن یه sample آپلود کرده بودن تو فروم که همکارم آقای شقاقی زحمت کشیدن اصلاحش کردن دیدم حیفه بقیه دوستان ازش بی بهره باشن برا همین نمونه اصلاح شده رو با کسب اجازه از همکارم برا تون آپلود میکنم به امید اینکه مورد استفاده دوستان قرار بگیره
داخل نمونه یه مثال کوچیک هم msgbox ساخته شده میتونین function رو تو پروژه ها تون کپی کنین و ازش استفاده کنین دقیقا مثل همون msgbox اکسس فقط وقت نوشتن بنویسین
msgboxfa "hello",vbinformation,"title"l
نمونه رو ببینین همه چی رو متوجه میشین

Sheerkoshan
سه شنبه 11 بهمن 1384, 23:19 عصر
دوست من ظاهراً موقع آپلود اشتباهاً همون فایل شاپرک جان را ارسال فرموده اید

sarami
چهارشنبه 12 بهمن 1384, 06:26 صبح
حق با شما بود شرمنده من فایل اصلی رو جایگزین کردم

Ali_Fallah
چهارشنبه 12 بهمن 1384, 12:05 عصر
آقای صارمی و شاپرک با تشکر خیلی جالب بود :تشویق: :تشویق:
همچنین با تشکر ازآقای شقاقی همکارآقای صارمی:تشویق: :تشویق:
:چشمک:

شاپرک
چهارشنبه 12 بهمن 1384, 15:54 عصر
ممنون :تشویق:

Sheerkoshan
جمعه 14 بهمن 1384, 09:33 صبح
دوست من
خیلی جلب بود و مفید . اما یه اشکال کوچولو داره . زمانی که messageBox باز می شه PopUp نیست و modal مناسبی نداره در صورتی که messageBox اصلی این ایرادو نداره .

با تشکر فراوان منتظر اصلاح آن هستیم

sarami
شنبه 15 بهمن 1384, 11:07 صبح
مشکل رفع شد فایل ضمیمه رو دوباره دانلود کنین

Sheerkoshan
شنبه 15 بهمن 1384, 15:03 عصر
دوست مهربان من
مشکل همچنان باقیست احتمالاً همون فاسل قبلی رو دوباره آپلود فرمودین

moustafa
یک شنبه 16 بهمن 1384, 19:54 عصر
جناب اقای sheerkoshan دوست عزیز بنده نیز ارزوی موفقیت برای شما دارم
چون به این مسئله اعتقاد ندارم لذا نمی تونم روش وقت بذارم اما یه راه پیشنهاد میکنم
شما یک فرم ایجاد کن روی ان سه تا باتن با کپشنهای "بله" "خیر" "لغو" بگذار ودر روید ان کلیک انها مواردی راکه می خواهی تایپ کن ببین این فرم قابلیت انتخاب عکس روی ان انعطاف در فونت
ورنگ پیغام شکل فرم وبرای توجه بیشتر بصورت چشمک زن میتواند ظاهر شود
ودر هرجای برنامه که خواستی می توانی ان را فراخوانی کنی
یک نمونه فایل برات گذاشتم که فرمهای به شکل هندسی داره می توانی از ان در برنامه ات استفاده کنی (همینشم یه ساعت وقت برده)
فارسی راپاس بداریم english را یادبگیرم توسعه بدیم رشد وپیشرفت کنیم دراسرع وقت

Sheerkoshan
یک شنبه 16 بهمن 1384, 20:10 عصر
آقا چوبکاری فرمودید من از شما تشکر می کنم
دوست عزیز من قبلاً همین کارو میکردم اما برای پیامهایی که بله نخیر ویا دستور دیگری داشت مجبور بودم فرمی مجزا تهیه کنم ولی من میخواستم یه فرم message داشته باشم ودر جاهای مختلف بتونم تعاریف متفاوت برای کلیدهای آن بدم البته تعویض Caption آن راحت بود اما دستورات کلیدها را نتوانستم متناسب با نیاز عوض کنم . برای همین ترجیح میدادم از messagebox فارسی یا انگلیسی استفاده کنم . حال اگه حضرتعالی بتوانید به حقیر یاد دهید که دستورات را چگونه عوض کنم حتماً مثل شما از فرم خودمساز استفاده میکنم
با تشکر

moustafa
دوشنبه 17 بهمن 1384, 02:15 صبح
اختیارداریدقربان ماکوچیک شما هستیم انشالله که اقای صارمی روش کار میکنه وبه جواب میرسه
برای اینکار اول یک textbox بذارروی فرم خاصیت visble ان را false کن
حالا فرض کن 5 بار می خواهی ازاین فرم در برنامه ات استفاده کنی یکدستور
selectcasetext
case1
me.lable.caption="masseg"
دستورات بعدی
case2
me.lable.caption="masseg
......
case5
endselect
"form"docmd.close
برای هر سه کلید (بله خیر لغو) بنویس
حالا می رسیم بجای که می خواهیم از این فرم به عنوان مسج استفاده کنیم
در رویداد مربوط
اول باز شدن فرم پیغام(docmd.openform
مقدار تکس باکس فرم =بسته به عددی که دردستورات بالا نوشتیم مثلاtext=5
حالا اگر هرکدوم از سه کلید بله خیر لغو راکلیک کنیم دستور مربوط به case5
ان کلید اجرا خواهد شد
می بینید که شما یه فرم پیغام فارسی انعطاف پذیر( بسته به دستورات فونت حاشیه عکس رنگ) برای هر رویدادتان دارید
یه راه دیگه بنظرم رسید یکساعت ونیم روش کار کردم جواب نداد
بازم میگم این کار اخه چه فایده ای داره شرط اونه که شما کوئر های پیچیده طراحی کنی
گزارشات کاربردی ومتنوع تولید کنی راههای سریع ورود اطلاعات راکشف کنی خطاها راکنترل کنی

Sheerkoshan
دوشنبه 17 بهمن 1384, 19:42 عصر
دوست مهربان من
محبت فرمودید این مورد را حتماً بکار می گیرم در مورد ویژگیها حق با شماست .از الطفات حضرتعالی نهایت تشکر را دارم

moustafa
سه شنبه 18 بهمن 1384, 07:47 صبح
دوست عزیز اقای sheerkoshan برایت یه فایل نمونه گذاشتم برای بدست اوردن پنجره بانک اطلاعاتی کلید f11 را فشار بده البته فقط برای بله ولغو جهت نشان دادن نحوه کار
شما مثل ان فرم را بساز در برنامه هایت امیپورت کن کدهای مربوط را کپی پیست کن ووایرایش نما

Sheerkoshan
شنبه 22 بهمن 1384, 11:54 صبح
جناب مصطفی عزیز
از محبت حضرتعالی متشکرم کاری بس مفید بود و بسیار جالب و بکار بردم به نحو عالی فقط یه مشکل دارم وقتی بعد از دستور باز شدن فرم پیام ، دستور دیگری برای باز شدن فرم دیگری (البته بعد از فشار دگمه تایید) نوشته باشم آن دستور بلافاصله بدون بسته شدن فرم پیام اجرا می شود در صورتیکه می خواهم مثل msgbox که با فشار OK دستورات بعدی اجرا میگردد ، دنباله دستورات بعد از فشار تایید اجرا شوند

moustafa
شنبه 22 بهمن 1384, 13:56 عصر
اگر منظورشمارا درست متوجه شده باشم :
من دستور بسته شدن فرم (docmd.close) را دراخر بعد از اجرای case گذاشته بودم طبعا اول دستورات اجرا می شوند و بعد فرم بسته می شه برای اینکه فرم مشاهده نشه دستور

me.visible=false
در اول قبل از select case قرار بده

Sheerkoshan
شنبه 22 بهمن 1384, 16:52 عصر
نه عزیز
یه نگاه به فایل نمونه که اونجا گذاشتم بندازید منظورم متوجه می شوید

Ali_Fallah
چهارشنبه 26 بهمن 1384, 06:57 صبح
msgbox فارسی که آقای صارمی و همکارش لطف نموده وطراحی نمودند بصورت POP UP نیست و من که چندین بار تست کردم ، کامپیوترم قفل کرد!؟

Sheerkoshan
چهارشنبه 26 بهمن 1384, 19:15 عصر
حق با شماست از من هم همینطور بود

sarami
شنبه 29 بهمن 1384, 11:38 صبح
با عرض پوزش از کلیه دوستان متاسفانه بدلیل نزدیکی به پایان سال حجم کار افزایش پیدا کرده و مجال در خدمت دوستان بودن را از بنده صلب نموده. فایل message box نیز اصلاح گردیده بود که اشتباه آپلود شد .فایل ذیل مشکل نمونه قبلی را ندارد......
و درنهایت اقا مصطفی نیز بنده رو ببخشن به محض بازگذشت به سئوالشون در حد معلوماتم جواب خواهم داد.

Ali_Fallah
شنبه 29 بهمن 1384, 16:08 عصر
بله حالا این شد یه چیزی ... خیلی ممنون ومتشکرم!

Sheerkoshan
یک شنبه 30 بهمن 1384, 00:05 صبح
البته اگه فرمی باز نباشه متاسفانه ایراد می گیره . برای اجرای اون حتماً باید یه فرم باز باشه امتحان کنید! مثلاً اگر در رویداد onopen یک فرم قبل از باز شدن فرم msgboxfa بکار رود ایراد می گیرد

sarami
یک شنبه 30 بهمن 1384, 07:47 صبح
تست کردم در on open مشکلی برای استفاده نمی باشد.

sarami
سه شنبه 23 اسفند 1384, 22:32 عصر
جهت اطلاع کلیه دوستانی که از طریق ایمیل مشکلی را در زمینه msgbox فارسی عنوان کرده اند. باید عنوان کنم که مشکلشون مربوط به نسخه اصلاح نشده msgbox میباشد و برای رفع ایراد می بایست دوباره نسبت به دانلود فایل ضمیمه که در این تاپیک موجود میباشداقدام نمایند. ودر پایان با عرض پوزش از کلیه کسانی که موفق به جوابگوئی به سئوالات انها نگردیده ام عارضم که متاسفانه بدلیل افزایش حجم کار در ماه های پایانی سال فرصتی برای به اشتراک گذاشتن تجربیات با بقیه دوستان بدست نیامد ه و بعد از پایان تعطیلات در خدمت همگی عزیزانی که با ایمیل های صمیمانه خود منو شرمنده خودشون کرده اندخواهم بود.

yavari
شنبه 25 فروردین 1386, 14:38 عصر
سلام

متاسفانه مثل اینکه فایله پریده ! :بامزه:
اگه دوستانی که دارن لطف کنن آپ کنن ممنون میشم ! :تشویق:

با تشکر

شاپرک
یک شنبه 26 فروردین 1386, 07:44 صبح
Private Const WH_CBT = 5
Private Const GWL_HINSTANCE = (-6)
Private Const HCBT_ACTIVATE = 5

'UDT for passing data through the hook
Private Type MSGBOX_HOOK_PARAMS
hwndOwner As Long
hHook As Long
End Type

'need this declared at module level as
'it is used in the call and the hook proc
Private MSGHOOK As MSGBOX_HOOK_PARAMS

Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long

Public Declare Function GetDesktopWindow Lib "user32" () As Long

Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function MessageBox Lib "user32" _
Alias "MessageBoxA" _
(ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType 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 SetWindowText Lib "user32" _
Alias "SetWindowTextA" _
(ByVal hwnd As Long, _
ByVal lpString As String) As Long

Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long

Public Function MsgBoxFa(Prompt, Optional Buttons As VbMsgBoxStyle = vbOKOnly, Optional Tiltle = "", Optional HelpFile, Optional Context) As Long

'Wrapper function for the MessageBox API
Dim hwndThreadOwner As Long
Dim frmCurrentForm As Form
Set frmCurrentForm = Screen.ActiveForm

hwndThreadOwner = frmCurrentForm.hwnd

Dim hInstance As Long

Dim hThreadId As Long
Dim hwndOwner As Long
hwndOwner = GetDesktopWindow()
hInstance = GetWindowLong(hwndThreadOwner, GWL_HINSTANCE)
hThreadId = GetCurrentThreadId()

With MSGHOOK
.hwndOwner = hwndOwner
.hHook = SetWindowsHookEx(WH_CBT, _
AddressOf MsgBoxHookProc, _
hInstance, hThreadId)
End With



MsgBoxFa = MessageBox(hwndThreadOwner, Prompt, Tiltle, Buttons)

End Function


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

If uMsg = HCBT_ACTIVATE Then

SetDlgItemText wParam, vbYes, "Èáå"
SetDlgItemText wParam, vbNo, "뒄"
SetDlgItemText wParam, vbIgnore, "áÛæ"
SetDlgItemText wParam, vbOK, "ÊÇííÏ"

UnhookWindowsHookEx MSGHOOK.hHook

End If

MsgBoxHookProc = False

End Function

mazoolagh
دوشنبه 27 فروردین 1386, 09:07 صبح
اگر Persian Language Interface Pack مربوط به Windows XP رو یک بار نصب کنین مشکل msgbox برطرف میشه و نیازی به کد نویسی نیست. حتی اگر LIP رو uninstall هم کنین msgboxهای فارسی باز هم صحیح نشون داده میشن.

majid325
دوشنبه 27 فروردین 1386, 09:45 صبح
این Persian Language Interface Pack رو از کجا میشه دانلود کرد(به صورت Free). حجمش چقدر هست؟

mazoolagh
سه شنبه 28 فروردین 1386, 21:28 عصر
رایگان هست و محصول خود مایکروسافت بنابراین با خیال راحت استفاده کنین (از نظر امنیتی منظورم هست) به validation هم نیازی نداره (فکر کنم)

حجمش 11.3 مگابایت هست - یک LIP هم برای office2003 هست که بیشتر برای word مناسبه.

هر دو رو میتونین از http://www.microsoft.com/middleeast/arabicdev/Farsi دریافت کنین

karmand
چهارشنبه 29 فروردین 1386, 06:28 صبح
جناب صارمی این sample را که اپلود نمودید کجاست تنها یک فایل ضمیمه دیدم ان هم مربوط به آقای moustafa است راهنمایی بفرمایید تا ما هم استفاده کنیم

شاپرک
چهارشنبه 29 فروردین 1386, 07:31 صبح
کد بالا رو در یک ماجول کپی کنید و فراخوانی اون دقیقا مثل Msgbox است فقط به جای Msgbox باید از MsgboxFa استفاده کنید .

sarami
شنبه 01 اردیبهشت 1386, 06:31 صبح
متاسفانه مخابرات زحمت فایل سروری که نمونه هامو آپلود کردم رو کشیده و فیلترش کرده. دوستان اگه دارن آپلود کنن ممنون میشم

majid325
شنبه 01 اردیبهشت 1386, 10:58 صبح
من یه نمونه دارم حالا نمیدونم اصلاح شده هست یا نه؟

hamid-nice
شنبه 17 فروردین 1392, 22:24 عصر
سلام
نمونه شما هنوز محدودیت وابسته به فرم را داره به
تاپیک زیر در پست 6# مراجعه کنید :

http://barnamenevis.org/showthread.php?184777-عدم-اجرای-ماژول-msgbox-فارسیدر-گزارشات&highlight=پیغام+فارسی (http://barnamenevis.org/showthread.php?184777-%D8%B9%D8%AF%D9%85-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%85%D8%A7%DA%98%D9%88%D9%84-msgbox-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4%D8%A7%D8%AA&highlight=%D9%BE%DB%8C%D8%BA%D8%A7%D9%85+%D9%81%D8 %A7%D8%B1%D8%B3%DB%8C)