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

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

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    141

    Exclamation نحوه فراخوانی تابع دلخواه با بروز هر نوع خطا

    سلام
    آیا دستوری تو دلفی داریم که بواسطه اون با بروز هرخطا(مربوط به هر موضوعی) بشه تابعی رو صدا بزنیم و داخل اون تابع براساس کد خطا پیغام دلخواهمون رو به فارسی صادر کنیم.
    (شبیه دستور on error توی foxpro)

  2. #2
    می تونی با Application.Onexception کار کنی(البته اگه منظورتون رو درست فهمیده باشم)
    You never know what you can do until you try

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    141
    می خوام بجای Try...Excep...وIoResult و نظایر آنها که دلفی امکان چک کردن خطا به ما می دهد یک فانکشن عمومی بنویسم که با بروز هرنوع خطا فراخوانی شودوما فقط درآن فانکشن براساس کد خطا پیغام مناسب را به فارسی
    صادر نماییم.طبیعی است پیغامهایی به فارسی صادر خواهند شد که ما در آن فانکشن معرفی کرده ایم بعبارتی می خواهم جلوی پیغامهایی که لاتین صادر می شود را بگیرم

  4. #4
    از تب Additional یه ApplicationEvent بذار رو فرم . تو رخداد OnException همه این کارا رو می تونی انجام بدی و دیگه پیغام انگلیسی نذاری رد بشه
    You never know what you can do until you try

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    141
    ممنونم . امتحان کردم ولی اولا بعد از پیغام لاتین اجرا می شه . دوم اینکه کد خطا را بواسطه پارامتری مثل errno یا مشابه اون می شناسه یا نه(که بشه با دستورات شرطی مثل caseشناسایی کرد و پیغام مرتبط با اونو صادر کرد یا نه؟)

  6. #6
    نقل قول نوشته شده توسط ali_divsalar
    ممنونم . امتحان کردم ولی اولا بعد از پیغام لاتین اجرا می شه . دوم اینکه کد خطا را بواسطه پارامتری مثل errno یا مشابه اون می شناسه یا نه(که بشه با دستورات شرطی مثل caseشناسایی کرد و پیغام مرتبط با اونو صادر کرد یا نه؟)
    اگر درست کنترلش کنی دیگه پیغام لاتین نمی ده
    شماره خطا رو هم بر می گردونه
    You never know what you can do until you try

  7. #7
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    141
    شرمنده ,حقیقتش تو این زمینه کار نکردم اگه بیشتر راهنمایی کنیدکهچطور اینکار رو کنم ممنون می شم

  8. #8

    procedure TMainForm.AppException(Sender: TObject;
    E: Exception);
    begin
    // ShowMessage(E.ClassName);
    if E.ClassType=EInvalidOperation then//E.Message='Cannot make a visible window modal' then
    MB.ShowMessage('äÌÑå ãæÑÏ äÙÑ åã Çßäæä ÝÚÇá ÇÓÊ')
    Else if E.ClassType=EVariantArrayLockedError then
    MB.ShowMessage('ÑÏíÝ ãæÑÏ äÙÑ ÝÇÞÏ ÇØáÇÚÇ&E circ; ãí ÈÇÔÏ')
    Else
    MB.ShowMessage(E.Message);
    end;

    You never know what you can do until you try

  9. #9
    پیشنهاد می کنم برای فارسی کردن پیغامها، به جای اینکه با این روالها ور برین، اینگونه عمل کنین:
    به Project->Language->Add مراجعه کنید و یک زبان جدید اضافه کنید. پس از انجام این کار شما امکان تغییر و ترجمه کلیه پیغامهای سیستمی را خواهید داشت.

  10. #10
    نقل قول نوشته شده توسط Naficy
    پیشنهاد می کنم برای فارسی کردن پیغامها، به جای اینکه با این روالها ور برین، اینگونه عمل کنین:
    به Project->Language->Add مراجعه کنید و یک زبان جدید اضافه کنید. پس از انجام این کار شما امکان تغییر و ترجمه کلیه پیغامهای سیستمی را خواهید داشت.
    درسته
    اینجوری دردسرت خیلی کمتره
    You never know what you can do until you try

  11. #11
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    141
    E.ClassType جواب سوال اول منو داد و لی جلو پیغام لاتین رو نگرفتم

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

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