سلام دوستان
فكر كنم همچين تاپيكي توي انجمن بود ولي سرچ كردم پيدا نكردم :41: در هر صورت مي خواهم يه كادر پيام داشته باشم با دكمه هاي (بلي و خير ) به جاي yes , no بايد چكار كنم . (در ضمن نمي خواهم از يه فرم ديگه اي استفاده كنم . :10:
Printable View
سلام دوستان
فكر كنم همچين تاپيكي توي انجمن بود ولي سرچ كردم پيدا نكردم :41: در هر صورت مي خواهم يه كادر پيام داشته باشم با دكمه هاي (بلي و خير ) به جاي yes , no بايد چكار كنم . (در ضمن نمي خواهم از يه فرم ديگه اي استفاده كنم . :10:
خوب خودت فورم خودت رو بساز این جوری بهتر نیست !؟ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام.
تا اون جا که یادمه نمیشه متن کلید های مسیج باکس رو فارسی کرد. تولز هایی هستند که در صورت نصب امکانات زیادی مثل همین مسیج باکس فارسی رو به شما میدن. ولی فکر میکنم اونا هم از فرم جدید استفاده میکنن.
بهترین و ساده ترین کار همون استفاده از فرم جدیده.
سلامنقل قول:
ميشه چند تا از اين تولز ها رو معرفي كنيد :11:
میتوین با هوک کردن اینکارو بکنی من نمیدونم چطوری تو VB میشه از فارسی استفاده کرد،
یه نمونه کد میزارم، فارسی کردن با خودت
کد:http://rapidshare.com/files/172049764/Hook_MsgBox.zip.html
قسمتی که پیام ها هستن به این صورت تعریف کردم
کد:SetWindowText hYes, "Yes ... Yes "
SetWindowText hNo, "No ... No "
سلام.
جناب hoax3r درست میفرمایند.
میشه با api ها و findwindows و getwindowstext و setwindowstext هندل پنجره مسیج باکس رو گرفت و هر بلایی که میخوایم سرش بیاریم. ولی به درد سرش نمی ارزه.
فکر هم نمیکنم این دوستمون کد به پیچدیگی در اون حد بخوان. به هر حال اگه AM87 خواستی بگو اون روش رو برات توضیح بدیم. ولی باز میگم بهتره از فرم جدید استفاده کنی. چون اون روش برای این کار استاندارد و مناسب نیست و احتمال خطای برنامت رو بالا میبره.
یک مسیج باکس توپ و حرفه ای برات طراحی کردم
با امکانات خیلی حرفه ای
یک ذره ریزه کاریش مونده تموم بشه با آموزش نحوه کار باهاش برات می زارمش [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
یک جوری نوشتم که تا جایی که میشه نیازی به آموزش نباشه:13:
ولی خوب بازم بی هیچی نشد:31:
ببین اول فرم زیر رو دانلود کن و به برنامت اضافه کن:
بعد یک ماژل به فرمت اضافه کن و کد زیر رو توش کپی کن:کد:http://javadraoufdanger.parsaspace.com/vb/msgform.frm
_________________________________________کد:Public onvane_pishfarz As String
Public foc As Integer
Public javab As Integer
Public Function famsg(matne_payam As String, Optional onvane_payam As String, Optional tedadedokme As Integer = 1, Optional dokme_pishfarz As Integer = 1, Optional Dokme_1 As Variant = "تایید", Optional Dokme_2 As Variant = "لغو", Optional Dokme_3 As Variant = "", Optional Dokme_4 As Variant = "", Optional right_to_left As Boolean = True, Optional rad_kardane_khata As Boolean = True, Optional top_dokmeha As Integer = 1380, Optional top_matne_payam As Integer = 300, Optional Width_msgbox As Integer = 6255, Optional Height_msgbox As Integer = 2775, Optional width_dokme_ha As Integer = 1455)
On Error GoTo er
javab = 0
msgform.matn.Caption = matne_payam
If onvane_payam <> "" Then
msgform.Caption = onvane_payam
Else
msgform.Caption = onvane_pishfarz
End If
If tedadedokme >= 1 Then msgform.M(1).Caption = Dokme_1
If tedadedokme >= 2 Then msgform.M(2).Caption = Dokme_2
If tedadedokme >= 3 Then msgform.M(3).Caption = Dokme_3
If tedadedokme >= 4 Then msgform.M(4).Caption = Dokme_4
If dokme_pishfarz <= tedadedokme Then
foc = dokme_pishfarz
Else
foc = 1
End If
msgform.matn.Top = top_matne_payam
For i = 1 To 4
msgform.M(i).Top = top_dokmeha
Next i
msgform.Height = Height_msgbox
msgform.Width = Width_msgbox
'right to left set:
msgform.RightToLeft = right_to_left
msgform.matn.RightToLeft = right_to_left
For i = 1 To 4
msgform.M(i).RightToLeft = right_to_left
Next i
'chidemane dokme ha:
For i = 1 To 4
msgform.M(i).Width = width_dokme_ha
Next i
Dim G1 As Integer
G1 = msgform.Width
Select Case tedadedokme
Case Is <= 1
msgform.M(1).Visible = True
msgform.M(1).Left = (G1 - msgform.M(1).Width) \ 2
Case 2
msgform.M(1).Visible = True
msgform.M(2).Visible = True
msgform.M(1).Left = ((G1 - msgform.M(1).Width) \ 2) - (msgform.M(1).Width \ 2) - 50
msgform.M(2).Left = ((G1 - msgform.M(1).Width) \ 2) + (msgform.M(1).Width \ 2) + 50
Case 3
msgform.M(1).Visible = True
msgform.M(2).Visible = True
msgform.M(3).Visible = True
msgform.M(1).Left = ((G1 - msgform.M(1).Width) \ 2) - (msgform.M(1).Width) - 50
msgform.M(2).Left = (G1 - msgform.M(1).Width) \ 2
msgform.M(3).Left = ((G1 - msgform.M(1).Width) \ 2) + (msgform.M(1).Width) + 50
Case Is >= 4
msgform.M(1).Visible = True
msgform.M(2).Visible = True
msgform.M(3).Visible = True
msgform.M(4).Visible = True
msgform.M(1).Left = ((G1 - msgform.M(1).Width) \ 2) - (msgform.M(1).Width \ 2) - (msgform.M(1).Width) - 100
msgform.M(4).Left = ((G1 - msgform.M(1).Width) \ 2) + (msgform.M(1).Width \ 2) + (msgform.M(1).Width) + 100
msgform.M(2).Left = ((G1 - msgform.M(1).Width) \ 2) - (msgform.M(1).Width \ 2) - 45
msgform.M(3).Left = ((G1 - msgform.M(1).Width) \ 2) + (msgform.M(1).Width \ 2) + 45
End Select
'payane chidemane dokme ha
msgform.Show (1)
famsg = javab
er:
Select Case Err.Number
Case 0
Case 20
Case 13
'If rad_kardane_khata = True Then
'Resume Next
'Else
MsgBox Err.Number & " & " & Err.Description & " & خطایی رخ داده لطفا در کد نویسی خود دقت کنید"
Resume Next
'End If
Case Else
MsgBox Err.Number & " & " & Err.Description & " & خطایی رخ داده لطفا در کد نویسی خود دقت کنید"
End
End Select
End Function
تموم شد مسیج باکس سفارشی شما آمادست:21:
شما در این مسیج باکس امکانات زیر را دارید:(امکاناتی که قرمز شده اند مسیج باکس معمولی ندارد)
نوشتن یک متن برای پیام
نوشتن یک متن چند خطی برای پیام
تعیین عنوان برای مسیج باکس
تعیین عنوان پیش فرض برای مسیج باکس
تعیین کردن تعداد دکمه های مسیج باکس تا 4 دکمه(مسیج باکس معمولی حداکثر 3 دکمه را دارا می باشد)
نوشتن متن دلخواه برای هر دکمه
تعیین دکمه پیشفرض برای مسیج باکس
امکان Right To left کردن کادر پیام(به طور پیشفرض right to left مساوی با true هست که شما می توانید آن را False کنید:21:)
امکان رد کردن خطاهای ساده:21:
تعیین Top دکمه های کار پیام و متن پیام
تعیین طول و عرض کادر پیام
تعیین عرض دکمه ها (width)
توضیحات:
برای تعیین عنوان پیش فرض کافیه در رویداد form_load پروژه خود کد زیر را بنویسید:
_____________________________کد:onvane_pishfarz = "عنوان پیش فرض"
استفاده از کادر مسیج باکس فارسی:
برای فراخوانی این مسیچ باکس حرفه ای به جای استفاده از کلید واژه MSGBOX از کلید واژه famsg استفاده کنید
بدین صورت:
یک کار پیام ساده را نشان می دهد:
اگر عنوان پیش فرض انتخاب کرده باشید می توانید جای عوان پیام را خالی بگذارد و همچنین می توانید عنوان پیش فرض انتخاب نکنید و جای عنوان پیام را نیز خالی بگذارید تا کادر پیام شما عنوان نداشته باشد:21:کد:famsg "متن پیام","عنوان پیام"
________________
در صورتی که تعداد دکمه ها را مشخص نکنید به طور پیش فرض فقط یک دکمه ظاهر می شود و در صورتی که متن دکمه را هم تعریف نکنید به طور پیش فرض متن دکمه "تایید" می باشد
________________
در صورتی که تعداد دکمه های کادر پیام یکی باشد بعد از اینکه کاربر بر روی دکمه تایید کلید کرد و یا کادر پیام رو بست تابع مقدار 1 را بر می گرداند
در صورتی که تعداد دکمه های کادر پیام بیش از یکی باشد کاربر نمی تواند کار پیام را بدون کلیک بر روی دکمه ای ببند و بعد از کلید بر روی هر دکمه تابع عدد آن دکمه را بر می گرداند
به طو مثال اگر کاربر بر روی دکمه سوم (دکمه ها از سمت چپ حساب می شوند) کلیک کند تابع famsg مقدار سه را بر می گرداند
یک مسیج باکس سفارشی:
کد:famsg "متن پیام","عنوان پیام",تعداد دکمه ها از یک تا چهار,تعیین دکمه پیش فرض,متن دکمه یک,متن دکمه دو,متن دکمه سه , متن دکمه چهار,راست به چپ کادر پیام به طور پیش فرض مساوی است با ترو,رد کردن خطای ساده به طور پیش فرض مساوی است با ترو,تاپ دکمه ها,تاپ متن کادر پیام به طور پیش فرض سی صد,عرض کادر پیام,ارتفاع کادر پیام ,عرض دکمه ها
به نظر خودم که خیلی توپ شده:21:
فردا یک برنامه نمونه هم می زارم الان خیلی خوابم میاد [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام.
تو مسیج باکس هم میشه با دستور vbcrlf پیغام چند خطی نمایش داد.
بلی بلی صحیح استنقل قول:
سلام.
تو مسیج باکس هم میشه با دستور vbcrlf پیغام چند خطی نمایش داد.
دوستان نظرتون رو راجع به این مسیجباکسی که ساختم بگید
انتقادی
پیشنهادی
بی صبرانه منتظر نظرات شما هستم [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ببخشدچه جورمیشه برای درایوفلش مموری درvbکدنوشت