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

نام تاپیک: فارسی نوشتن در دلفی

  1. #1

    فارسی نوشتن در دلفی

    برداشت شده از barnamenevis.com

    __________________________________________________ ___________

    چگونه میتوان در پنجره showmessage فارسی نوشت؟

    با سلام؛

    دوست عزیز در همان کامپوننتهای HRTools یک یونیت بانام Convert وجود دارد که برای همین کار دو تابع دارد:

    FConfirmMSG
    ShowFMessage



    برای نوشتن Message فارسی تو ویندوز انگلیسی چیزی نمی دونم .

    ولی MessageDlgدلفی تو ویندوز فارسی هم مشکل داره. مثلا icon سمت راست نیست یا متن دکمه ها فارسی نیست ....

    واسه این کار میتونی از FMessageDlg که تو فایل Fdialogs.dcu تعریف شده استفاده کنی. این فایل تو www.delphi7.net/falad هست که میتونی download کنی.

    تو این unit تابع های دیگه ای مثل

    FInputQuery
    FInputBox
    FMessageDlg
    هم هست.



    Nightbat


    آقای ربیعی

    من از showfmessage استفاده کردم ولی فونتهایش مشکل داشت. با توجه به اینکه در ویندوز XP این مشکل بوجود آمد لطفا در صورت امکان بیشتر توضیح بدهید.

    و یک پیشنهاد: چقدر خوب میشد اگه در یک متن Text کوچک در مورد HRtools توضیح میدادید و بهمراه آن درون سایت قرار می دادید. دراین صورت خیلی بهتر و کاملتر میشد از کامپوننتهای شما استفاده کرد.
    با آرزوی توفیق روزافزون برای شما.


    ebrahim


    بیا این هم یک مثال ساده خودت را خسته نکن

    {
    Var
    MsgText, MsgCaption : String;
    MsgType, UserResp : integer;
    }

    MsgCaption := 'اخطار';
    MsgText := 'جهت امتحان';
    MsgType := MB_YESNO + MB_ICONWARNING + MB_DEFBUTTON1 + MB_APPLMODAL + MB_RIGHT;


    UserResp := MessageBox( Handle, PChar(MsgText), PChar(MsgCaption), MsgType);
    { UserResp := MessageBox( Handle, 'جهت امتحان', 'اخطار', $80034); }

    Case UserResp of
    IDYES :
    begin
    end;
    IDNO :
    begin
    end;
    end;

    قسمت کد دلفی را در برنامه ات ک÷ی کن اجرا کن

    MVF

    __________________________________________________ __________

    چگونه می توان یک Edit داشت که به محض ورود به آن بتوان فارسی تایپ کرد.(نیازی به تغییر نوع زبان در روی tray نباشد)

    متشکرم.................


    عاشقم بر همه عالم که همه عالم از اوست

    مخلص شما--سعید--


    Application.Bidikeyboard:='00000429';
    MahdiSeifJamali


    شما میتوانید از این دستور استفاده کنید :
    SetKeyboardLayout(LANG_FARSI);
    ناصر فدائی


    کد آقای فدائی خوبه - به این آدرس هم سر بزن http://www.delphi-unicode.net/



    ..قانونه جنگلو زیر پا گذاشتی ...



    سلام. در onenter از دستور LoadKeyboardLayout(KLF_ACTIVATE ,"00000401") و در onexit ازLoadKeyboardLayout(KLF_ACTIVATE ,"00000409") استفاده کنید.
    babayetaparman()

    سلام

    می بخشی آقا سعید

    ولی یادت باشه که 00000401 برای زبان عربیه و 00000429 برای زبان فارسی استاندارد.

    البته در ویندوز 98 درسته ولی در ویندوز XP باید 00000429 باشه.


    مجید افرا



    HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/keyboard leyouts


    ..قانونه جنگلو زیر پا گذاشتی ...

    __________________________________________________ __________

    سلام

    از خدمتتان سوالی داشتم:

    چگونه میتوان منوی فارسی در برنامه استفاده نمود؟

    متشکرم.


    ebrahim



    سلام

    درست گفتی اشتباه از من بود چون mainmenu فونت نداره . اگه ویندوزت فارسی باشه فارسی رو نمایش می ده. اگه فونت های فارسی رو نصب نکردی این کارو بکن.

    caption form هم تو properties form هست(اگه منظورت این بود)

    امید


    دوست عزیز

    1-از سایت جناب ربیعی ابزار فارسی را بردار و استفاده کن چیزهای خوبی است.

    2-از فونتهای ایران سیستم کن.

    دز صورت نصب فونت مذکور در هر ویندوزی مشکلت حل میشود.

    در سوالهای اخیر چند مورد در باره یونیکد و امثال آن مطرح شده و اساتید نیز جوابهای خوبی داده اند حتما مراجعه کن


    MahdiSeifJamali


    اضافه بر مطالب بالا که صحیح بود عرض شود که :

    کامپوننت های متفاوتی دیدم که از main menu اصلی دلفی منشق نشده اند و همه ظواهر و شمایل اونها بطور اختصاصی تنظیم میشود . ( مثلا“ از فونت استاندارد ویندوز برای نمایش منو ها تبعیت نمیکند و میتوانید هر فونتی با هر کد پیجی بهش بدید ) . فکر میکنم اگر اصرار به فارسی یا right justified بودن منو داری از اونها استفاده کنی . یکی شون رو من توی یکی از همین سایتهای معروف دلفی که کامپوننت مفتی قربه الی الله ( خدا خیرشون بده ) میدن کش رفتم . سرچ کن پیدا میکنی فکر کنم اسمش big menu یا یه همچین چیزهائی بود .




    ..قانونه جنگلو زیر پا گذاشتی ...

  2. #2
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    15
    دوست گرامی به جای استفاده از MessageDlg تابع زیر رو یک جاپی بنویس و هر وقت لازم داشتی اجراش کن

    Procedure MyMessageDlg(const Msg: string; DlgType: TMsgDlgType;
    Buttons: TMsgDlgButtons);
    begin
    with CreateMessageDialog(Msg, DlgType, Buttons) do
    try
    .
    .
    .
    font.Name := 'Titr';
    ShowModal;
    finally
    Free;
    end;

    end;
    در ضمن به جای نقطه چین می تونی هر بلاپی سر فرم پیغام بیاری حتی راست چین کردن آیکون

  3. #3
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    میتونی یک مثال کامل بزنی؟ مثلا همون راست چین کردن آیکون دیالوگ.

  4. #4
    سلام

    اینم چیزه خوبیه :wink: . عنوان پنجره رو هم می شه فارسی نوشت :

    application.MessageBox

    امید

  5. #5
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    15
    جناب اسیستان باسلام :
    باید عرض کنم که منظور از راست چین کردن آیکون تغییر مکان قرار گیری آیکون بود مثلا می شود بجای نقطه چین در تابع بالا دستور زیر را نوشت

    for I := 0 to (ComponentCount - 1) do begin
    if Components[I] is Timage then
    Timage(Components[I]).Left := ClientWidth - 50;

  6. #6
    کاربر جدید
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    15
    اضافه بر مطالب بالا تابع کاملی که من تو یکی از برنامه هام از آن استفاده کردم و در آن مکان آیکون و لیبل را تغییر دادم در زیر آمده است

    Procedure MyMessageDlg(const Msg: string; DlgType: TMsgDlgType;
    Buttons: TMsgDlgButtons);
    var
    I : Integer ;
    begin
    with CreateMessageDialog(Msg, DlgType, Buttons) do
    try
    font.Name := 'Titr';
    for I := 0 to (ComponentCount - 1) do begin
    if Components[I] is Timage then
    Timage(Components[I]).Left := ClientWidth - 50;
    If Components[I] is TLabel then
    TLabel(Components[I]).Left := 10;
    end;
    ShowModal;
    finally
    Free;
    end;

    end;

    ارادتمند همه دوستان

  7. #7

    مشکل نوشتن فارسی در listbox زمان واکشی اطلاعات از db

    من زمانی که اطلاعات فارسی را از بانک اطلاعاتی بیرون می کشم و در listbox قرار میدم , روی سیستم خودم هیچ مشکلی ندارم ولی زمانی که برنامه رو به صورت exe به یک سیستم دیگه میبرم فارسی نشون نمیده
    در حالیکه در قسمتهای دیگه هیچ مشکلی ندارم مثلا از بانک وقتی اطلاعات فارسی رو در یک label قرار میدم درست نشون میده.
    لطف کنید و به دادم برسید.
    دیگه واقعا کلافه شدم
    :cry:

  8. #8

    تشکرجات

    از پیشنهادهایی که ندادید ممنونم.

    خودم پیدا کردم و درست شد.

    :wink:
    :P

  9. #9
    اگه یه جایی همون اولهای برنامه بنویسید:
    Application.BiDiMode:= bdRightToLeft;

    بعد Messagedialog ها از راست به چپ میشن. البته MessageDialog های خود دلفی مشکل دارن. ولی MessageBox ویندوز یعنی Application.MessageBox درست کار میکنه.

  10. #10
    salam
    mikhastam karborde "help context " ro bedoonam
    age kasi midoone lotfan javab bede

  11. #11
    کاربر دائمی آواتار mjdeveloper
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران
    پست
    124
    این هم یه messagedlg کاملا فارسی با امکان راست چین و caption های فارسی برای دکمه ها

    این تابع را به یک فرم در قسمت public اضافه کنید و هر جا خواستید استفاده کنید

    Farsi message Dialog ------------------------------------
    function msgdlg(CONST Msg:string; DlgTypt:TmsgDlgType;
    button:TMsgDlgButtons; Caption:ARRAY OF string;dlgcaption:string): integer;
    var
    aMsgdlg:TForm;
    i:integer;
    Dlgbutton:Tbutton;
    Captionindex:integer;
    begin
    amsgdlg:= createMessageDialog(Msg,DlgTypt,button);
    aMsgdlg.Caption:=dlgcaption;
    aMsgdlg.BiDiMode:=bdRightToLeft;
    Captionindex:=0;
    for i:= 0 to amsgDlg.componentcount-1 Do
    begin
    if(amsgDlg.components[i] is Tbutton) then
    Begin
    dlgbutton:=Tbutton(amsgdlg.components[i]);
    if Captionindex <= High(Caption) then
    dlgbutton.caption:=caption[captionindex];
    inc(captionindex);
    end;
    end;
    Result:=amsgdlg.Showmodal;
    end;
    ---------------------------------------------------

  12. #12
    لطفا کدهایی رو که می نویسید در تگ CODE قرار بدید تا درست خونده بشند. مرسی


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

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

  1. فارسی نوشتن در دلفی
    نوشته شده توسط heroma در بخش برنامه نویسی در Delphi
    پاسخ: 11
    آخرین پست: یک شنبه 26 تیر 1384, 08:49 صبح
  2. فارسی نوشتن در دلفی
    نوشته شده توسط mostafa612003 در بخش برنامه نویسی در Delphi
    پاسخ: 10
    آخرین پست: چهارشنبه 17 دی 1382, 08:14 صبح
  3. فارسی نوشتن در دلفی
    نوشته شده توسط mostafa612003 در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: شنبه 01 آذر 1382, 12:58 عصر
  4. فارسی نویسی در دلفی 7
    نوشته شده توسط tazekar در بخش برنامه نویسی در Delphi
    پاسخ: 12
    آخرین پست: دوشنبه 26 آبان 1382, 10:46 صبح

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

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