View Full Version : سوال: پیغام ندادن mask edit زمان خالی شدن
Mask
سه شنبه 29 فروردین 1391, 14:48 عصر
با سلام.
بر روی فرمم یه ماسک ادیت دارم.
وقتی خالی میشه و میخام بر روی کنترل بعدی برم پیغام خطا میده.
چطوری میشه این پیغام رو غیر فعال کرد.
ممنون.
Felony
چهارشنبه 30 فروردین 1391, 10:12 صبح
میتونید Exception Handler برنامه رو Override کنید ، تابع ExceptionHandler رو در قسمت Private فرم به صورت زیر اعلان کنید :
procedure ExceptionHandler(Sender: TObject; E: Exception);
و به صورت زیر کدش رو بنویسید :
procedure TForm1.ExceptionHandler(Sender: TObject; E: Exception);
begin
if E is EDBEditError then
if ActiveControl is TMaskEdit then
TMaskEdit(ActiveControl).Clear;
end;
و در رویداد FormCreate فرم برنامتون :
Application.OnException := ExceptionHandler;
Mask
پنج شنبه 31 فروردین 1391, 12:35 عصر
ممنون.
اما اگه اینکار رو بکنم . مشکل در بقیه مسیج ارور ها پیش نمیاد.؟
جون ما داریم در فرم کرییت ، کل اکسکپشن ها رو مربوط میکنیم به اون ارور هندلرمون.؟
Application.OnException := ExceptionHandler;
سعید صابری
پنج شنبه 31 فروردین 1391, 13:43 عصر
درستش همینه .
اینجوری مدیریت خطاهای برنامه خیلی راحت تر خواهد بود.مخصوصا ترجمه خطا برای کاربر و نمایش پیام مناسب
Mask
پنج شنبه 31 فروردین 1391, 13:51 عصر
درستش همینه .
منظورت از همینه، کدومه.؟
Felony
پنج شنبه 31 فروردین 1391, 16:50 عصر
ممنون.
اما اگه اینکار رو بکنم . مشکل در بقیه مسیج ارور ها پیش نمیاد.؟
جون ما داریم در فرم کرییت ، کل اکسکپشن ها رو مربوط میکنیم به اون ارور هندلرمون.؟
Application.OnException := ExceptionHandler;
اگر میخوای که در باقی موارد برنامه همون Default Exception Handler خودش رو اجرا کنه کافیه از متد ShowException شئ Application استفاده کنی :
if E is EDBEditError then
begin
if ActiveControl is TMaskEdit then
TMaskEdit(ActiveControl).Clear;
end
else Application.ShowException(E);
Mask
پنج شنبه 31 فروردین 1391, 17:25 عصر
ببخشیدا:
یه سوال غیر مربوط :
این EDBEditError رو از کجا آوردی. از کجا باید فهمید اسم این ارور ها چیه که بشه هندلشون کرد؟
Felony
پنج شنبه 31 فروردین 1391, 19:57 عصر
به وسیله متد ClassName شئ Exception ، تو همون Message Handler ی که بالا نوشتم کد زیر رو بنویسید :
ShowMessage(E.ClassName);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.