Показать сообщение отдельно
  #3  
Старый 05.03.2015, 06:32
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Нормально работает.
Немного упростил твой код:
Код:
function EditToByte(AEdit : TEdit; var a : Byte) : Boolean;
var
  b : Integer;
begin
  Result := False;
  Try
    b := StrToInt(AEdit.Text);
    If b <= 255 Then
      Begin
        a := b;
        Result := True;
      End;
  Except
    On E : Exception Do ; // Hide all exceptions
  End;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a : byte;
begin
  a := 10;
  If EditToByte(Edit1,a)
    Then ShowMessage('Success: a = ' + IntToStr(a))
    Else ShowMessage('Error: a = ' + IntToStr(a));
end;
Наверное, ты за вылет принимаешь остановку среды на исключении. Запусти не из Дельфи и увидишь, что все нормально работает (или отключи остановку на исключении в настройках отладки).