وقوع exception با وجود استفاده از try و except در دلفی

Sampro

Member
سلام دوستان.
یک کد نوشتم که باید یه مقدار عددی رو از یک ادیت بگیره .
ولی ممکنه کاربر یه مقدار رشته ای وارد کنه.
می خوام خودم به کاربر پیغام بدم و برنامه اررور نده . این کدیه که من به فکرم رسیده :
کد:
  try
    StrToInt(edtFileNumber.Text);
  except on EConvertError do
    begin
      MessageDlg(strMessage,mtError,[mbOK],0);
      exit;
    end;
  end;
متاسفانه یه مشکلی که هست اینه که اگه مثلا من یه مقدار خالی یا مقدار حرفی داخل ادیت بزارم هم خود دلفی به هم اررور می ده و هم بعدش خود پیغامی که من اونجا تو کد گذاشتم .

نمی دونم مشکل از کجاست . کسی راه حلشو می دونه .



در ضمن یه سوال دیگه : تابعی تو دلفی هست که بفهمه مثلا یه رشته قابلیت تبدیل به عدد رو داره یا نه مثل IsNumber سی شارپ؟
 

saalek110

Well-Known Member
در فایل exe شما همان می شود که می خواهید ولی در محیط کامپایلر همان می شود که فرمودید.
شاید تنظیماتی موجود است تا در کامپایلر هم شبیه حالت exe باشد ولی من اطلاع ندارم.
کلا try و except بعد تولید محصول(فایل exe ) عمل می کند.

راجع به سئوال دومتان من برخورد نداشتم.
تابعی با مقداری تغییر از این سایت:
http://www.howtodothings.com/computers/a1066-a-string-class-for-delphi.html
کد:
function IsNumber(str :string): Boolean;
var
  i: Integer;
begin
  Result := True;

  for i := 1 to Length(str) do

    if not (str[i] in ['0'..'9','.']) then

    begin
      Result := False;
      Exit;
    end;
end;
کد:
procedure TForm1.Button2Click(Sender: TObject);
begin
if  IsNumber(edit1.text) then showmessage('yes') else showmessage('no');
end;
 

جدیدترین ارسال ها

بالا