Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2011, 14:47   #1
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
Стрелка SpinEdit vs Try Except непредусмотреная ошибка

если удалить из SpinEdit все и передать фокус дугому компоненту он выдает ошибку, почему???
во время ошибки показывает на ету(1) строку из модуля
причем если иду построчно, то с етои строки перепрыгивает как ни странно в функцию TSpinEdit.GetValue
вот интересно почему написана одна функция CheckValue, а отладчик проверяет другую GetValue
и почему try except не срабатывает?
Код:
procedure TSpinEdit.CMExit(var Message: TCMExit);
begin
  inherited;
  if CheckValue (Value) <> Value then // 1 
    SetValue (Value);
end;

function TSpinEdit.GetValue: LongInt;
begin
  try
    Result := StrToInt (Text); // error 
  except
    Result := FMinValue;
  end;
end;

procedure TSpinEdit.SetValue (NewValue: LongInt);
begin
  Text := IntToStr (CheckValue (NewValue));
end;

function TSpinEdit.CheckValue (NewValue: LongInt): LongInt;
begin
  Result := NewValue;
  if (FMaxValue <> FMinValue) then
  begin
    if NewValue < FMinValue then
      Result := FMinValue
    else if NewValue > FMaxValue then
      Result := FMaxValue;
  end;
end;
вот весь модуль спин кому интересно, там не много
Вложения
Тип файла: txt Spin.txt (18.0 Кб, 131 просмотров)
VirusN13

Последний раз редактировалось ArtGrek; 10.03.2011 в 16:09.
ArtGrek вне форума Ответить с цитированием
Старый 10.03.2011, 14:53   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не вдавался в подробности почему выдает, но выдает только при запуске из дельфей (как и остальные ошибки отловленные в Try)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.03.2011, 15:35   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
только при запуске из дельфей
тоесть ета функция вообше не работает?
вот, здесь тоже ошибка, и мое сообшение не выводит
Код:
try
  SpinEdit1.Value := StrToInt(Edit1.Text);
except
  ShowMessage('ne polychilos');
end;
а что делать?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 10.03.2011, 15:44   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
тоесть ета функция вообше не работает?
Ну почему не работает? Работает! Просто если, как вам уже сказали, запускать программу из делфи, то try exept finally НЕОБРАБАТЫВАЕТСЯ!
Просто сделайте ехешник запустите и всё должно работать!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 10.03.2011, 15:58   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

мдааа
все работает как надо, если запустить ехе
а проблему с Try никак нельзя решить?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 10.03.2011, 16:48   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

отладка она и в африке отладка.
жмите Continue или же в настройках отладчика отключите показ исключений.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.03.2011, 16:57   #7
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
отладка она и в африке отладка.
жмите Continue или же в настройках отладчика отключите показ исключений.
не знал етого, а так все верно, если нажать продолжить, всем спасибо
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 10.03.2011, 21:29   #8
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Еще, запустить программу не из-под отладки можно нажав Ctrl+Shifta+F9
Работает в новых версиях
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 10.03.2011, 23:28   #9
xexxex
Пользователь
 
Регистрация: 31.07.2010
Сообщений: 52
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение
мдааа
все работает как надо, если запустить ехе
а проблему с Try никак нельзя решить?
Можно сделать замену
Код:
  try
    Result := StrToInt (Text); // error 
  except
    Result := FMinValue;
  end;
на
Код:
  Result := StrToIntDef(Text, FMinValue);
xexxex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Timer в SpinEdit Jumper_9091 Общие вопросы Delphi 6 01.12.2010 18:33
[Delphi7] компонент SpinEdit Oldcentre Помощь студентам 4 19.11.2010 13:52
SpinEdit Juni Компоненты Delphi 7 02.09.2009 23:23
SpinEdit и CBuilder Gromsky Общие вопросы C/C++ 0 14.05.2009 20:47
Свойство Decimal у SpinEdit Ko$tello Компоненты Delphi 3 18.11.2006 17:53