نمایش نتایج 1 تا 17 از 17

نام تاپیک: MessageBox

  1. #1

    MessageBox

    می خواستم با دلفی برنامه ای بنویسم تا بوسیله آن بتوانم MessageBox را تغییر دهم . یعنی نوشته دکمه های OK,Cancel,Ignore و غیره را فارسی کنم و رنگ آن ها را نیز تغییر دهم

  2. #2
    فکر کنم چون اینها اجزای استاندارد ویندوز هستند باید dll های خود ویندوز را تغییر دهید.البته من در مورد dll آن اطلاعی ندارم اما اگر بخواهید اجزایی مثل dial up networking را فارسی کنید <می توانید از طریق تغییر Rasapi32.dll این کار را انجام دهید(در ویندوز 98)
    یا برای منوها از shell32.dll و برای دیالوگها از commdlg32.dll.
    برای تغییر هم می توانید از برنامه هایی مانند exe Scope (که کاملا با دلفی نوشته شده است)
    استفاده کنید.

  3. #3
    یا اینکه بی خیال این قضیه بشی و خودت 1 Message Box خوشگل بنویسی

  4. #4
    کاربر دائمی آواتار Mohammad_Mnt
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    جنگلی به نام ایران
    سن
    41
    پست
    1,875
    اتفاقا می شه این کار رو انجام داد . آقای دلفی اسیستانت بلده ! یکی از فایل های دلفی رو باید فارسی کنی همین :wink:

  5. #5
    مهمان
    این کار رو می تونین با تغییر دو فایل "Dialogs.pas" و "Consts.pas" که در مسیر Source\Vcl قرار دارند انجام بدین ( در شاخه ای که دلفی را نصب کردین )
    فایل Consts شامل متغییرهای ثابتی است که در دلفی استفاده می شود، برای تغییر عنوان کلیدهای MessageBox باید متغییرهایی را که با SMsgDlg شروع می شوند رو تغییر بدین مثلا
    SMsgDlgWarning = 'Warning';

    و از فایل Dialogs هم برای بعضی از تغییرات دیگه، مثلا تغییر فونت دیالوگ می شه استفاده کرد.
    تنها لازمه که یک بار تغییراتتون رو بصورت دستی و نه برنامه نویسی انجام بدین، تا دیالوگ شما فارسی بشه !

  6. #6
    کاربر دائمی آواتار Mohammad_Mnt
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    جنگلی به نام ایران
    سن
    41
    پست
    1,875
    آفرین به شیما !
    هری جان همینه 8)

  7. #7
    نقل قول نوشته شده توسط شیما
    این کار رو می تونین با تغییر دو فایل "Dialogs.pas" و "Consts.pas" که در مسیر Source\Vcl قرار دارند انجام بدین ( در شاخه ای که دلفی را نصب کردین )
    فایل Consts شامل متغییرهای ثابتی است که در دلفی استفاده می شود، برای تغییر عنوان کلیدهای MessageBox باید متغییرهایی را که با SMsgDlg شروع می شوند رو تغییر بدین مثلا
    SMsgDlgWarning = 'Warning';

    و از فایل Dialogs هم برای بعضی از تغییرات دیگه، مثلا تغییر فونت دیالوگ می شه استفاده کرد.
    تنها لازمه که یک بار تغییراتتون رو بصورت دستی و نه برنامه نویسی انجام بدین، تا دیالوگ شما فارسی بشه !
    ----------------------------------------------------
    سلام

    من تغییرات بالا را اعمال کردم ولی هیچ تاثیری نداشت(ضمن اینکه در چند سایت دیگر هم مطالب مشابهی را دیدم وانجام دادم که باز هم تاثیری نداشت.)

    آیا بغیر اینها کار دیگری هم باید انجام داد؟
    اگر کسی اطلاعاتی دارد لطفا کمک کند.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    30/11/53
    پست
    243
    برای اینکه تغییرات مورد نظر اعمال بشن باید فایلهای dcu‌مربوطه رو پاک کنی از شاخه lib و بعد این فایلهای جدید رو توی شاخه lib یا یه جایی که به عنوان search path معرفی کردی بذاری تا دلفی کامپایلشون کنه .

  9. #9
    :idea: یک راه راحت تر بدون نیاز به پاک کردن فایلها این است
    ‍Project\options...
    از برگه Directories/Conditionals
    به Search path مقدار
    $(DELPHI)\Source\Vcl
    (یا مسیر ...\Borland\Delphi5\Source\Vcl)
    رابدهید
    و بعد از هر بار تغییر برنامه را دوباره Build کنید
    <<Delphi 5>>
    //××××××××××××××××××
    :idea: با این کار حتی می توانید از کد های VCL نیز اجرای خط به خط بگیرید!

  10. #10
    سلام دوستان
    البته راه بهتر و اصولی هم وجود داره. خود مسیج باکس هم قابل تغییر هست. شما میتونید با تابع CreateMessageDialog مسیج باکس ایده آل خودتون رو درست کنید با فرم استاندارد ویندوز و با همه چیز از جمله آیکون کوچولوی خوشگل که همه میشناسیمش و البته راست به چپ. از اونجایی که نمیخوام پرچونگی کنم با یه مثال صحبتم رو تموم میکنم. تابع زیر یک مسیج باکس با دو کلید Cancel و Ok البته با کپشن فارسی و کاملا راست به چپ درست میکنه. لازم به ذکره که این تابع قابل تعمیم هست که بیشتر از یک کلید داشته باشه. اگر سوال یا مجهولی بود در خدمتم:

    function FarsiMsg(m:string;mtype:TMsgDlgType&#4 1;:TModalResult;
    var
    fd1:tform;
    begin
    fd1:=CreateMessageDialog(m,mtype,[mbok ,mbno]);
    fd1.BiDiMode:=bdrighttoleft;
    fd1.Caption:='سلام';
    fd1.Font.Name :='Tahoma';
    fd1.Font.Size := 10;
    tbutton(fd1.Components[2]).caption :='انصراف';
    tbutton(fd1.Components[3]).caption :='تایید';
    result:=fd1.ShowModal;
    fd1.Free;
    end;

  11. #11


    احسنــــــــــت علی جان

  12. #12
    سلام

    از همه کسانی که جواب بنده را دادند ممنونم.

    SyntaxCheck عزیز ! کد شما اجرا شد ولی تنها مشکلی که دارد(شاید فقط در کامپیوتر من ) این است که Caption فرم فارسی نمیشود. البته برای اطلاع شما بگویم که OS کامپیوتر من Windows Xp فارسی میباشد. که delphi در این محیط فارسی را پشتیبانی نمیکند . و من برای فارسی نویسی از برنامه IPT 5 ساخت شرکت برنارایانه استفاده میکنم که چندان هم راضی نیستم چرا که هنگام نوشتن چه در Object Inspector و چه در Editor دلفی حروف نامشخصی را نشان میدهد و مثل کد شما صراحتا نمیتوان نوشت مثلا : 'انصراف' و فقط در هنگام اجرای برنامه روی فرمهای مربوط میتوان آنها را خواند.
    آیا شما روش دیگری برای فارسی نویسی دارید؟
    اگر در این زمینه هم بنده را راهنمایی فرمایید تا مشکل Caption را حل کنم ممنون
    میشوم.

  13. #13
    ُسلام
    دوست عزیز ویندوز اکس پی با فارسی کاملا سازگاره و مشکلی نداره همچنین دلفی کاملا فارسی رو پشتیبانی میکنه.برای فارسی کردن ویندوز من ذکر چند تا نکته رو بیفایده نمیدونم. شما هم موارد زیر رو کنترل کنید:
    1) به کنترل پنل برید و Regional & Language Options رو انتخاب کنید.
    2) در برگه Regional Options دو تا کامبو باکس میبینید.اولی باید Farsi و کامبوباکس انتهای صفحه باید Iran رو نشون بده.
    3) در برگه Languages در قسمت Supplemental Language Support دو تا چک باکس وجود داره.چک باکس اول باید تیک خورده باشه. در همین برگه در قسمت Text Services and input languages با فشار دکمه Details یک پنجره باز میشه که تنزیمات مربوط به کیبورد رو میتونید انجام بدید. و اگر میخواهید که تایپ فارسی رو داشته باشید باید FA در قسمت Installed Services دیده بشه.یه چیزی شبیه زیر و البته نه بصورت رنگی :wink: :

    EN English(United States) Keyboard US
    FA Farsi Keyboard Farsi

    4) در برگه Advanced و در قسمت Languages for non-Unicode programs یک کامبو باکس وجود داره که باید Farsi رو نشون بده.(این قسمت خیلی مهمه)

    با رعایت موارد فوق شما براحتی میتونید در دلفی فارسی کار کنید و برنامه های فارسی رو اجرا کنید با پشتیبانی راست به چپ به طور کامل.

  14. #14
    سلام!
    بالاخره موفق شدم!!
    SyntaxCheck عزیز! از راهنمایی شما بینهایت ممنونم. ظاهرا کمی ناشی گری کرده بودم وتنظیمات Control Panel رو خوب انجام نداده بودم.
    خب! برای هر تازه کاری پیش میاد دیگه. :oops:

  15. #15
    سلام
    من در ویندوز 2000 کارمی کنم تنظیمات مربوط به فارسی کردن ویندوز را نیز انجام دادم
    در محیطهای دیگر با فارسی نوشتن مشکلی ندارم ولی در دلفی نمی توانم فارسی بنویسم

    متشکرم

  16. #16
    کاربر دائمی آواتار jirjirakk
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    wwwroot
    پست
    660
    مرسی علی آقا خیلی با حال بودش :mrgreen:

  17. #17
    کاربر دائمی آواتار DataMaster
    تاریخ عضویت
    تیر 1382
    محل زندگی
    مشهد الرضا
    پست
    634
    وای سوال چی بود به کجا ختم شد
    حالا منم اون تابعی که آقای syntaxheck داده بودند رو این جوری در آورد فکر کنم نحوه فراخوانی اون راحت تر باشه
    function FMessageDlg(const Msg: string; DlgType: TMsgDlgType;
    Buttons: TMsgDlgButtons): Integer;
    begin
    with CreateMessageDialog(Msg, DlgType, Buttons) do
    begin
    FlipChildren(True);
    BiDiMode := bdRightToLeft;
    Result := ShowModal;
    end;
    end;

    دست آخر ما هم یاد نگرفتیم توی این سایت درست بنویسیم :cry:
    اصلاح شده توسط مشاطان

تاپیک های مشابه

  1. messagebox در دلفی
    نوشته شده توسط lajevardi106 در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: چهارشنبه 28 تیر 1396, 23:33 عصر
  2. فارسی کردن دکمه های messagebox
    نوشته شده توسط barati_1367 در بخش VB.NET
    پاسخ: 17
    آخرین پست: یک شنبه 02 آذر 1393, 20:21 عصر
  3. Right to Let کردن متن عنوان MessageBox
    نوشته شده توسط babak23 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: جمعه 14 دی 1386, 23:36 عصر
  4. درخواست : یه Messagebox ی میخواهم که کاربر نتونه بیشتر از 7 کاراکتر وارد کنه
    نوشته شده توسط hp1361 در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: سه شنبه 07 شهریور 1385, 18:47 عصر
  5. کلیدهای فارسی برای MessageBox
    نوشته شده توسط once4ever در بخش C#‎‎
    پاسخ: 5
    آخرین پست: جمعه 22 اردیبهشت 1385, 19:44 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •