PDA

View Full Version : MessageBox فارسی



Fastdesign
جمعه 01 دی 1391, 20:12 عصر
با سلام خدمت دوستان گلم

در این زمینه زیاد جستجو کردم ولی چیزی دستگیرم نشد !

کسی کامپوننت مسج باکس فارسی داره بزاره همه ازش استفاده کنن ؟

با تشکر

بهروز عباسی
جمعه 01 دی 1391, 20:42 عصر
درود به شما دوست عزیز
منظورت چیه؟
این کد مسیج باکس فارسی رو نمایش می ده!
procedure TForm1.btn_TestClick(Sender: TObject);
begin
MessageBox(0, 'مسیج باکس فارسی', '', MB_OK)
end;


موفق باشید

Fastdesign
جمعه 01 دی 1391, 21:22 عصر
دوست عزیز منظور من کامپوننت مسج باکس فارسی است که باتن های مسج باکس فارسی است !

عقاب سیاه
جمعه 01 دی 1391, 21:30 عصر
فکر کنم یه بار دیگه هم همین بحث بود بهترین نتیجه هم نوشتن یه یونیت توسط خودتون هست

Fastdesign
جمعه 01 دی 1391, 21:59 عصر
چجوری میشه راهنمایی کنید

عقاب سیاه
جمعه 01 دی 1391, 22:05 عصر
مثلا مثل این یونیت البته فکر کنم بهتر از این هم بشه:

و من این جوری ازش استفاده می کنم:

messageFrm.Execute(' خطا در تکمیل اطلاعات', 'سند پرداخت ثبت نشد!',
'پرداخت این مبلغ ثبت نشد.', 1, self)

یوسف زالی
جمعه 01 دی 1391, 22:38 عصر
سلام.
بهتره یه نگاهی به خود سورس ShowMessage بندازید. از همه راهنما تره.
به سادگی هم می شه بازنویسیش کرد.
تازه تر این که کاملا منطبق به ماسبق برنامتون هست.

MohsenB
جمعه 01 دی 1391, 23:20 عصر
با سلام

من این کد رو چند وقت پیش نوشتم برای یک همچین کاری . استفاده از همچین کدی میتونه مزیت های مختلفی مثل کاهش حجم نرم افزار و عدم استفاده از کامپوننت و ... داشته باشه . همچنین میتونید موارد مورد نیازتون رو تغییر بدید :

function MBMessageBox(iText, iCaption :string; iType : UINT):Integer;
const MSG_MWIDTH = 500;
MSG_BTNW = 100;
MSG_BTNH = 30;
MSG_BTNS = 7; //Button Space
MSG_SPC = 15;
MSG_OK = 'تایید';
MSG_CANCEL = 'انصراف';
MSG_YES = 'بله';
MSG_NO = 'خیر';
MSG_IGNOR = 'مهم نیست';
MSG_RETRY = 'تلاش مجدد';
MSG_ABORT = 'بیخیال';
var Frm :TForm;
btnTop :Integer;
tmpLeft :Integer;
procedure CreateButton(btnCap :string; cModal :TModalResult);
begin
with TButton.Create(Frm) do begin
Parent:= Frm;
Caption:= btnCap;
ModalResult:= cModal;
SetBounds(tmpLeft, btnTop, MSG_BTNW, MSG_BTNH);
tmpLeft:= tmpLeft + MSG_BTNW + MSG_BTNS;
end;
end;
begin
Frm:= TForm.Create(Application);
with Frm do begin
BiDiMode:= bdRightToLeft; //for right to left lang
Caption:= iCaption;
Position:= poMainFormCenter;
BorderStyle:= bsDialog;
Color:= clWindow;
end;
with TLabel.Create(Frm) do begin
Parent:= Frm;
WordWrap:= True;
Width:= MSG_MWIDTH;
Constraints.MaxWidth:= MSG_MWIDTH;
Constraints.MinWidth:= (MSG_BTNW * 4);
Caption:= iText;
Frm.ClientWidth:= Width + (MSG_SPC * 2);
Top:= (MSG_SPC);
Left:= Frm.ClientWidth - Width - MSG_SPC;
btnTop:= Top + Height + (MSG_SPC * 2);
end;
with TShape.Create(Frm) do begin
Parent:= Frm;
Align:= alBottom;
Height:= MSG_BTNH + (MSG_SPC * 2);
Pen.Style:= psClear;
Brush.Color:= clBtnFace;
end;
case iType of
MB_OK:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW div 2);
CreateButton(MSG_OK, mrOk);
end;
MB_OKCANCEL:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW + (MSG_BTNS div 2));
CreateButton(MSG_OK, mrOk);
CreateButton(MSG_CANCEL, mrCancel);
end;
MB_ABORTRETRYIGNORE:
begin
tmpLeft:= (Frm.ClientWidth div 2) - ((MSG_BTNW + (MSG_BTNW div 2)) + MSG_BTNS);
CreateButton(MSG_ABORT, mrAbort);
CreateButton(MSG_RETRY, mrRetry);
CreateButton(MSG_IGNOR, mrIgnore);
end;
MB_YESNOCANCEL:
begin
tmpLeft:= (Frm.ClientWidth div 2) - ((MSG_BTNW + (MSG_BTNW div 2)) + MSG_BTNS);
CreateButton(MSG_YES, mrYes);
CreateButton(MSG_NO, mrNo);
CreateButton(MSG_CANCEL, mrCancel);
end;
MB_YESNO:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW + (MSG_BTNS div 2));
CreateButton(MSG_YES, mrYes);
CreateButton(MSG_NO, mrNo);
end;
MB_RETRYCANCEL:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW + (MSG_BTNS div 2));
CreateButton(MSG_RETRY, mrRetry);
CreateButton(MSG_CANCEL, mrCancel);
end;
end;
Frm.ClientHeight:= btnTop + MSG_BTNH + MSG_SPC;
Result:= Frm.ShowModal;
Frm.Free;
end;


موفق و پیروز باشید

kamran749
پنج شنبه 06 تیر 1392, 11:34 صبح
با سلام

من این کد رو چند وقت پیش نوشتم برای یک همچین کاری . استفاده از همچین کدی میتونه مزیت های مختلفی مثل کاهش حجم نرم افزار و عدم استفاده از کامپوننت و ... داشته باشه . همچنین میتونید موارد مورد نیازتون رو تغییر بدید :

function MBMessageBox(iText, iCaption :string; iType : UINT):Integer;
const MSG_MWIDTH = 500;
MSG_BTNW = 100;
MSG_BTNH = 30;
MSG_BTNS = 7; //Button Space
MSG_SPC = 15;
MSG_OK = 'تایید';
MSG_CANCEL = 'انصراف';
MSG_YES = 'بله';
MSG_NO = 'خیر';
MSG_IGNOR = 'مهم نیست';
MSG_RETRY = 'تلاش مجدد';
MSG_ABORT = 'بیخیال';
var Frm :TForm;
btnTop :Integer;
tmpLeft :Integer;
procedure CreateButton(btnCap :string; cModal :TModalResult);
begin
with TButton.Create(Frm) do begin
Parent:= Frm;
Caption:= btnCap;
ModalResult:= cModal;
SetBounds(tmpLeft, btnTop, MSG_BTNW, MSG_BTNH);
tmpLeft:= tmpLeft + MSG_BTNW + MSG_BTNS;
end;
end;
begin
Frm:= TForm.Create(Application);
with Frm do begin
BiDiMode:= bdRightToLeft; //for right to left lang
Caption:= iCaption;
Position:= poMainFormCenter;
BorderStyle:= bsDialog;
Color:= clWindow;
end;
with TLabel.Create(Frm) do begin
Parent:= Frm;
WordWrap:= True;
Width:= MSG_MWIDTH;
Constraints.MaxWidth:= MSG_MWIDTH;
Constraints.MinWidth:= (MSG_BTNW * 4);
Caption:= iText;
Frm.ClientWidth:= Width + (MSG_SPC * 2);
Top:= (MSG_SPC);
Left:= Frm.ClientWidth - Width - MSG_SPC;
btnTop:= Top + Height + (MSG_SPC * 2);
end;
with TShape.Create(Frm) do begin
Parent:= Frm;
Align:= alBottom;
Height:= MSG_BTNH + (MSG_SPC * 2);
Pen.Style:= psClear;
Brush.Color:= clBtnFace;
end;
case iType of
MB_OK:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW div 2);
CreateButton(MSG_OK, mrOk);
end;
MB_OKCANCEL:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW + (MSG_BTNS div 2));
CreateButton(MSG_OK, mrOk);
CreateButton(MSG_CANCEL, mrCancel);
end;
MB_ABORTRETRYIGNORE:
begin
tmpLeft:= (Frm.ClientWidth div 2) - ((MSG_BTNW + (MSG_BTNW div 2)) + MSG_BTNS);
CreateButton(MSG_ABORT, mrAbort);
CreateButton(MSG_RETRY, mrRetry);
CreateButton(MSG_IGNOR, mrIgnore);
end;
MB_YESNOCANCEL:
begin
tmpLeft:= (Frm.ClientWidth div 2) - ((MSG_BTNW + (MSG_BTNW div 2)) + MSG_BTNS);
CreateButton(MSG_YES, mrYes);
CreateButton(MSG_NO, mrNo);
CreateButton(MSG_CANCEL, mrCancel);
end;
MB_YESNO:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW + (MSG_BTNS div 2));
CreateButton(MSG_YES, mrYes);
CreateButton(MSG_NO, mrNo);
end;
MB_RETRYCANCEL:
begin
tmpLeft:= (Frm.ClientWidth div 2) - (MSG_BTNW + (MSG_BTNS div 2));
CreateButton(MSG_RETRY, mrRetry);
CreateButton(MSG_CANCEL, mrCancel);
end;
end;
Frm.ClientHeight:= btnTop + MSG_BTNH + MSG_SPC;
Result:= Frm.ShowModal;
Frm.Free;
end;


موفق و پیروز باشید

سلام
لطفا نحوه کار و فراخواني اين تابع را با ذکر يک مثال بنويسيد.
ممنون

BORHAN TEC
پنج شنبه 06 تیر 1392, 11:39 صبح
سلام
از روشی که در تاپیک زیر گفته ام استفاده کنید:
http://barnamenevis.org/showthread.php?397217
موفق باشید...

benefid
یک شنبه 06 مرداد 1392, 09:32 صبح
سلام
لطفا نحوه کار و فراخواني اين تابع را با ذکر يک مثال بنويسيد.
ممنون


سلام
بسیار ممنون برای تابع
من هم مایلم نحوه کار با این تابع را بدونم لطزفا راهنمایی کنید

یوسف زالی
یک شنبه 06 مرداد 1392, 09:36 صبح
روش کار نداره که، همون طور که مسیج باکس رو کال می کنید، به جاش این رو کال کنید.

EvErY OnE
دوشنبه 05 خرداد 1393, 19:58 عصر
روش کار نداره که، همون طور که مسیج باکس رو کال می کنید، به جاش این رو کال کنید.
ما messageBox رو اینجوری کال میکنیم:
messagebox.show();
اما این چی؟
کجای دلم بزارم یه همچین متنی رو
آخه یکم به فکرما مبتدی ها هم باشید

یوسف زالی
دوشنبه 05 خرداد 1393, 21:01 عصر
شما عزیز دلم دلفی نمی نویسی.
با دلفی بنویسی راهنمایی هم می کنیم.

khoshblagh
چهارشنبه 07 خرداد 1393, 02:24 صبح
با سلام خدمت دوستان
با توجه به این موضوع که این دستور بخشی از دستورات داخلی ویندوز میباشد،چگونه میتوان نسبت به تغییر فونت آن اقدام نمود

یوسف زالی
چهارشنبه 07 خرداد 1393, 13:53 عصر
همون طور که گفتم، ShowMessage رو بخونید.
خودش یک فرم ران تایمه.
همه چیزش هم دست شماست.

یوسف زالی
دوشنبه 09 تیر 1393, 14:06 عصر
http://barnamenevis.org/showthread.php?454872-ShowMessage-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%D8%8C-%D8%B1%D8%A7%D8%B3%D8%AA-%D8%A8%D9%87-%DA%86%D9%BE%D8%8C-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%DA%AF%D8%B1