Форум: "Основная";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
ВнизКакая исключительная ситуация происходит ? Найти похожие ветки
← →
dim2001 (2002-02-08 18:51) [0]Подскажите, пожалуйста,какая исключительная ситуация происходит при выполнении строки : N:=SpinEdit.Value // N - integer
если в spin ввели вещественное число? EConvertError не работает.
СПАСИБО!
← →
Юрий Зотов (2002-02-08 18:56) [1]Дык... запустите программу под отладкой, введите действительное число - и сами все увидите в сообщении об ошибке.
← →
McSimm (2002-02-08 19:00) [2]Именно EConvertError и происходит.
Только поднимается и обрабатывается оно не на этой строке, а внутри компонента:
function TSpinEdit.GetValue: LongInt;
begin
try
Result := StrToInt (Text);
except
Result := FMinValue;
end;
end;
Увидеть произошедший Exception можно из-под среды Делфи. При запуске программы без нее ошибка не проявится. (Но и Value не изменится)
← →
McSimm (2002-02-08 19:01) [3]Сорри, изменится - станет равным FMinValue
← →
dim2001 (2002-02-08 19:39) [4]У меня этот фрагмент кода выполняет dll при ошибочном преобразовании числа комп просто затыкается. Заодно подскажите как в dll делать точки останова?
А куда поместить объявление SpinEdit.GetValue и ее реализацию ?
← →
Dimk (2002-02-08 21:07) [5]Это же он Тебе из исходников TSpinEdit вытащил.
Все это можно посмотреть в каталоге c:/program files/...Delphi?/source
Никуда ничего не надо помещать - все уже у Тебя есть.
← →
dim2001 (2002-02-08 22:09) [6]Прошу прощения за бестолковость (10 лет пишу на ФОРТРАНЕ и тут вдруг перешел на DELPHI) но почему не работает этот кусок:
procedure TForm1.Button1Click(Sender: TObject);
var
k : integer;
begin
TRY
K:=SpinEditK.Value;
EXCEPT
ON EO: EConvertError DO BEGIN
MessageDlg ("ОШИБКА !! НЕ МОГУ ПРЕОБРАЗОВАТЬ ЧИСЛО К ТИПУ INTEGER", mtError,[mbOk],0);
SpinEditK.Value:=SpinEditK.MinValue;
Exit;
END;
ELSE BEGIN
MessageDlg ("ОШИБКА НЕ ИДЕНТИФИЦИРОВАНА",mtError,[mbOk],0);
Exit;
END;
END;
end;
с dll разобрался, это у меня особая форма перехватывает все сообщения и скрывает их. СОРРИ ....
← →
McSimm (2002-02-10 17:55) [7]Дело в том, что возникающий EConvertError уже обработан компонентом. Поэтому ваш try-except его уже не поймает.
Тут надо идти другим путем.
1. На событие OnChange написать что-то вроде:
try I := StrToInt(SpinEdit1.Text)
except
......
end
2. Воспользоваться "услугами" другого компонента - UpDown с палитры Win32.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c