Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.004 c
3-90458
Johnmen
2002-01-31 12:24
2002.02.28
Фильтрация НД


3-90475
Alex_C
2002-02-01 16:46
2002.02.28
Как добавить FieldDefs к существующей базе данных?


7-90684
Dmitry V. Averuanov
2001-11-26 14:14
2002.02.28
Не могу отловить завершение работы моей программы вместе с Win.


3-90525
Iss
2002-01-11 12:07
2002.02.28
paradox использование несколькими пользователями


3-90461
Rad
2002-01-31 19:15
2002.02.28
Как выяснить размерность поля Numeric?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский