Главная страница
    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
4-90705
cher_gvf
2001-12-03 17:33
2002.02.28
Как послать сообщение по сети определенным юзерам?


3-90457
kserg@ukr.net
2002-02-01 10:08
2002.02.28
Как переименовать таблицу SQL-командой?


3-90463
Марина
2002-02-01 15:00
2002.02.28
Потеря записей в БД при некорректном завершении работы системы


3-90445
Ser_Grey
2002-02-01 09:08
2002.02.28
Вроде простой вопрос, а ответа никто не знает!


14-90642
anod
2002-01-12 18:01
2002.02.28
Книги





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский