سلام
آیا دستوری تو دلفی داریم که بواسطه اون با بروز هرخطا(مربوط به هر موضوعی) بشه تابعی رو صدا بزنیم و داخل اون تابع براساس کد خطا پیغام دلخواهمون رو به فارسی صادر کنیم.
(شبیه دستور on error توی foxpro)
سلام
آیا دستوری تو دلفی داریم که بواسطه اون با بروز هرخطا(مربوط به هر موضوعی) بشه تابعی رو صدا بزنیم و داخل اون تابع براساس کد خطا پیغام دلخواهمون رو به فارسی صادر کنیم.
(شبیه دستور on error توی foxpro)
می تونی با Application.Onexception کار کنی(البته اگه منظورتون رو درست فهمیده باشم)
You never know what you can do until you try
می خوام بجای Try...Excep...وIoResult و نظایر آنها که دلفی امکان چک کردن خطا به ما می دهد یک فانکشن عمومی بنویسم که با بروز هرنوع خطا فراخوانی شودوما فقط درآن فانکشن براساس کد خطا پیغام مناسب را به فارسی
صادر نماییم.طبیعی است پیغامهایی به فارسی صادر خواهند شد که ما در آن فانکشن معرفی کرده ایم بعبارتی می خواهم جلوی پیغامهایی که لاتین صادر می شود را بگیرم
از تب Additional یه ApplicationEvent بذار رو فرم . تو رخداد OnException همه این کارا رو می تونی انجام بدی و دیگه پیغام انگلیسی نذاری رد بشه
You never know what you can do until you try
ممنونم . امتحان کردم ولی اولا بعد از پیغام لاتین اجرا می شه . دوم اینکه کد خطا را بواسطه پارامتری مثل errno یا مشابه اون می شناسه یا نه(که بشه با دستورات شرطی مثل caseشناسایی کرد و پیغام مرتبط با اونو صادر کرد یا نه؟)
اگر درست کنترلش کنی دیگه پیغام لاتین نمی دهنوشته شده توسط ali_divsalar
شماره خطا رو هم بر می گردونه
You never know what you can do until you try
شرمنده ,حقیقتش تو این زمینه کار نکردم اگه بیشتر راهنمایی کنیدکهچطور اینکار رو کنم ممنون می شم
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
پیشنهاد می کنم برای فارسی کردن پیغامها، به جای اینکه با این روالها ور برین، اینگونه عمل کنین:
به Project->Language->Add مراجعه کنید و یک زبان جدید اضافه کنید. پس از انجام این کار شما امکان تغییر و ترجمه کلیه پیغامهای سیستمی را خواهید داشت.
درستهنوشته شده توسط Naficy
اینجوری دردسرت خیلی کمتره
You never know what you can do until you try
E.ClassType جواب سوال اول منو داد و لی جلو پیغام لاتین رو نگرفتم