Нормально работает.
Немного упростил твой код:
Код:
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;
Наверное, ты за вылет принимаешь остановку среды на исключении. Запусти не из Дельфи и увидишь, что все нормально работает (или отключи остановку на исключении в настройках отладки).