PDA

View Full Version : کنترل خطا



seyed_27
چهارشنبه 31 تیر 1388, 03:48 صبح
من میخوام تو برنامم که چندتا فرم داره یه فرم رو به عنوان main در نظر میگیرم
با اجرای برنامه main بالا میاد حالا یه سوال : تو سیستم خودم که درسته ولی تو بعضی از سیستما که اکتیولیکسی که تو برنامم استفاده کردم تو اونا رجیستر نشده یا به هر دلیلی رجیستر نمیشه. وقتی تو این موفعیت برنامه رو اجرا میکنم کمپایلر پیام میده و اصلا نمیزاره پیام فارسی که قراردادم اجرا بشه و خود کاربر برنامه رو ببنده
از چه راهی استفاده کنم
تو وی بی راهش اینه که بجای اینکه اول فرم main رو به برنامه معرفی کنم یه کاژول(توابع عمومی) معرفی میکنم به برنامه میگم با اجرای برنامه اول اون اجرا بشه بع کنترل خطا رو تو اون مینوسیم تو منترل میگم فرم اصلی رو show کن اگر خطایی صادر شد پیام من نمایش داده میشه بعد برنامه بسته میشه
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

tdkhakpur
چهارشنبه 31 تیر 1388, 13:56 عصر
سلام
شما برای فرار از این کار باید برنامه ها را بصورت dll های مجزا ساخته و در هر کدام از فرم ها که خواستید از dll مخصوص صدا بزنید.
در فرم اصلی از اکتیوایکس استفاده نکنید و خطا ها را بررسی کنید.
برای استفاده ار dll دوستان کدهای زیادی را ارسال کردند جستجو کنید پیدا خواهید کرد.

Saeed_m_Farid
چهارشنبه 31 تیر 1388, 14:29 عصر
...
برنامه رو اجرا میکنم کمپایلر پیام میده و اصلا نمیزاره پیام فارسی که قراردادم اجرا بشه و خود کاربر برنامه رو ببنده
از چه راهی استفاده کنم
تو وی بی راهش اینه که بجای اینکه اول فرم main رو به برنامه معرفی کنم یه کاژول(توابع عمومی) معرفی میکنم به برنامه میگم با اجرای برنامه اول اون اجرا بشه بع کنترل خطا رو تو اون مینوسیم تو منترل میگم فرم اصلی رو show کن اگر خطایی صادر شد پیام من نمایش داده میشه بعد برنامه بسته میشه
شما کافیه کد فایل پروژه رو تو بلاک try..except بذارید و اونجا پیغامتون رو نمایش بدین، یعنی Ctrl+F12 بزنید و فایل پروژه رو باز کنید بعد کدتون رو بصورت زیر تغییر بدین :
begin
try
Application.Initialize;
Application.Title := 'Your Application';
Application.CreateForm(TfrmMain, frmMain); // فرم Main
//... ساير فرمهاي شما
Application.Run;
except on ex: Exception do
Application.ShowException(Exception.Create('پيغ ام فارسي شما در مورد خطا'));
end;
end.تو وی بی هم روش درست همینه، یعنی کنترل خطای استاندارد؛ همه جا کنترل استثناء از همین طریق انجام میشه، فقط Syntax فرق میکنه؛ مثلاً تو وی بی از بلاک Try ... Catch ex As Exception استفاده میشه ...

موفق باشید.