Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

буг на Ресайзе [D5]


Страницы:   1 2

i-am-vladko ©   (2006-10-23 21:33:00) 

Доброго здоровья, Господа !
При изменении height и/или width форм из приложения Delphi не генерит exception, и открbIвает отладчик, причем только 1 раз. Довольно странная ситуация для меня - никогда с подобнbIм не сталкивaлся. Может, кто-то знает, почему ето происходит и как избавиться от етого открbIтия отладчика?


i-am-vladko   (2006-10-25 15:23:00) [1]

ау, господа...


i-am-vladko   (2006-10-25 13:17:00) [2]

Спасибо за активное обсуждение и критику )) И все же если говориш КАК НЕ НАДО, обязательно скажи КАК НАДО...
И тема, если кто плохо помнит, совсем другая - активно обсужденное EXCEPTION вообще не генерится, запускается CPU. Как подсказал ув. Анатолий П. (если я правильно его понял) , ето из-за изменения Parent... но как с етим бороться??


Ketmar   (2006-10-24 09:42:00) [3]

>[20] Anatoly Podgoretsky(c) 24-Oct-2006, 09:02
и таки не могу не согласиться. коли уж поймал исключение -- ну скажи ты e.ClassName и e.Message. текста -- минимум, а пользы -- не измерить...


Anatoly Podgoretsky   (2006-10-24 09:06:00) [4]

Мне есть еще чего сказать про исключение, но данная тема не подходит. Тем более что автор начитался дурной популярной литературы и по идее тему бы следовало закрыть из-за применения дворового сленга, но это никогда не поздно.


Anatoly Podgoretsky   (2006-10-24 09:02:00) [5]


> АП, думаю, помнит.

Отлично, раз раз затронули эту тему.
Даже конструкция

except
end


и то более симпатична, чем

except
on e : exception do
 ShowMessage('ERROR on uHelperEditToolTip btnWithOutAllClick');
end


Так делать нельзя, только злить пользователя, хочешь выдать свое дурное сообщение, выдавай, но не маскируй родное сообщение, надо написать так

except
  on E: Exception do begin
    ShowMessage('ERROR on uHelperEditToolTip btnWithOutAllClick'#13#10 +
      'Системное сообщение:'#13#10 +
      '<' + E.Message + '>');
  end;
end


Loginov Dmitry   (2006-10-24 07:51:00) [6]

Германн ©   (24.10.06 3:50) [12]
Пусть лучше пользователь получит "невнятное" т.е. аглицкое сообщение об ошибке. Его имхо проще "распознать" с учётом всех привходящих и найти причины ошибки.


Дополнительно можно повесить обработчик на TApplicationEvents.OnExeption и показывать пользователю свое симпотное, не шокирующее сообщение об ошибках. В одной из программ я сделал несколько своих типов исключений (EError и EWarning), и при каждом из них показываю обычный Application.MessageBox с соответствующей иконкой. Такое вообще никого не должно шокировать :-)


Ketmar   (2006-10-24 05:23:00) [7]

зыж в дополнение к [17]. лично Ketmar почти никогда не поступает так, как пишет. "делай, как я говорю, а не как я делаю" (ц) %-)


Ketmar   (2006-10-24 05:21:00) [8]

>[14] Германн(c) 24-Oct-2006, 04:54
>Калатчикову
Канатчикову. %-)

>[15] MikePetrichenko(c) 24-Oct-2006, 05:01
>Почему же хуже? Если я ТОЧНО знаю причину
вот и лови точно этоисключение. и смело его, например, игнорируй. но во имя Ктулху -- не трогай остальные! если ты твёрдо уверен, что StrToDateTime()может привести только к EConvertError, то напиши: except on E: EConvertError do. символов не намного больше, а пользы -- на порядки.


Германн   (2006-10-24 05:06:00) [9]


> Почему же хуже? Если я ТОЧНО знаю причину excaption. И мне
> совсем не светит ее показывать/обрабатывать (ошибку) и я
> ТОЧНО знаю что с этим делать, то мне проше заткнуть ее и
> все. Так что пустой except/end вполне сгодитя для НЕКОТОРЫХ
> ситуаций.
>

Вот-вот. И тот, кого я упомянул выше, имхо тоже считал, что он ТОЧНО знает! А в результате что? Смерть программы без каких-либо сообщений о причинах сей "безвременной кончины"!


MikePetrichenko   (2006-10-24 05:01:00) [10]


> Хуже когда между except и end вообще ничего нет! А такое
> нередко случается. И я уже приводил код "весьма уважаемого
> автора" с таким оборотом.

Почему же хуже? Если я ТОЧНО знаю причину excaption. И мне совсем не светит ее показывать/обрабатывать (ошибку) и я ТОЧНО знаю что с этим делать, то мне проше заткнуть ее и все. Так что пустой except/end вполне сгодитя для НЕКОТОРЫХ ситуаций.


Германн   (2006-10-24 04:54:00) [11]


> видел бы ты, сколько у меня ещё таких мест осталось! %-)
> фактически, нормальная и многословная только сетевая часть.
>  остальное -- или вообще никак, или дзеном. %-)
> отсюда у меня стандартное предупреждение: лечение в психушке
> после просмотра кода я не оплачиваю. %-)
>

У меня и без "твоих мест" много других путей на "Калатчикову дачу"! Хотя там было гораздо веселее, если верить В.С.В. :-)


Ketmar   (2006-10-24 04:41:00) [12]

>[12] Германн(c) 24-Oct-2006, 03:50
>Хуже когда между exceptи end
>вообще ничего нет!
видел бы ты, сколько у меня ещё таких мест осталось! %-) фактически, нормальная и многословная только сетевая часть. остальное -- или вообще никак, или дзеном. %-)
отсюда у меня стандартное предупреждение: лечение в психушке после просмотра кода я не оплачиваю. %-)


Германн   (2006-10-24 03:50:00) [13]


> sniknik ©   (24.10.06 00:04) [10]
>
> > А что за ошибка?
> не видиш чтоль? > "ERROR on uHelperEditToolTip btnWithOutAllClick"
> ;о))
>
> p.s. терпеть не могу такой подход (а был бы его начальником,
>  уволил бы нафик)... лучше уж вообще без обработчика, чем
> такой.
> p.p.s. както неделю бились, почему сервис не запускается
> (партнеров прога), и сами они ничего не могли сказать кроме
> "у нас работает", т.е. проблема типа ваша..., ошибка была
> вот такая же "гениальная" - "проблемы при старте сервиса,
>  сервис не запущен"..., в итоге выяснилось что второй сервис
> на том компе открывал тотже порт что и первый... а в вместо
> нормального системного о занятости порта (после которого
> решение делается в 5 мин. (найти где у них прописывается
> нужный параметр и изменить)) выше написанное де@#мо...
> <Цитата>
>
> Ketmar ©   (24.10.06 00:16) [11]
>
> >[10] sniknik(c) 24-Oct-2006, 00:04
> угу. я в CDM наделал таких же "заглушек". идиот. потом долго
> правил на что-то более-менее полезное. но ещё не везде выправил.
>  %-)
>
> зыж извиняет меня только то, что я перестал раздавать исходники
> CDM. %-)

Тебя "извиняет" ещё и то, что хоть "заглушки поставил". Хуже когда между exceptи endвообще ничего нет! А такое нередко случается. И я уже приводил код "весьма уважаемого автора" с таким оборотом. АП, думаю, помнит.
Но и в общем смысле по данной теме я высказывался. Типа: знаешь точно какие исключения могут возникнуть в том или ином участке программы - обрабатывай. Не уверен - не обрабатывай. Пусть лучше пользователь получит "невнятное" т.е. аглицкое сообщение об ошибке. Его имхо проще "распознать" с учётом всех привходящих и найти причины ошибки.


Ketmar   (2006-10-24 00:16:00) [14]

>[10] sniknik(c) 24-Oct-2006, 00:04
угу. я в CDM наделал таких же "заглушек". идиот. потом долго правил на что-то более-менее полезное. но ещё не везде выправил. %-)

зыж извиняет меня только то, что я перестал раздавать исходники CDM. %-)


sniknik   (2006-10-24 00:04:00) [15]

> А что за ошибка?
не видиш чтоль? > "ERROR on uHelperEditToolTip btnWithOutAllClick"
;о))

p.s. терпеть не могу такой подход (а был бы его начальником, уволил бы нафик)... лучше уж вообще без обработчика, чем такой.
p.p.s. както неделю бились, почему сервис не запускается (партнеров прога), и сами они ничего не могли сказать кроме "у нас работает", т.е. проблема типа ваша..., ошибка была вот такая же "гениальная" - "проблемы при старте сервиса, сервис не запущен"..., в итоге выяснилось что второй сервис на том компе открывал тотже порт что и первый... а в вместо нормального системного о занятости порта (после которого решение делается в 5 мин. (найти где у них прописывается нужный параметр и изменить)) выше написанное де@#мо...


Loginov Dmitry   (2006-10-23 23:43:00) [16]

А что за ошибка?


Anatoly Podgoretsky   (2006-10-23 22:31:00) [17]


> буг на Ресайзе

Кто на ком стоял?


i-am-vladko   (2006-10-23 21:58:00) [18]

ниже - создание формbI


i-am-vladko   (2006-10-23 21:58:00) [19]

try
   fHelperEditToolTip := TfHelperEditToolTip.Create(nil,MaxWidth,MaxHeight,gbToolTipBox);
  for i := 0 to Length(ShowedFormsArray) - 1 do
   fHelperEditToolTip.cbFormName.Items.Add(Trim(UpperCase(ShowedFormsArray[i].Class Name)));
  if intVal <> -1
   then fHelperEditToolTip.cbFormName.ItemIndex := intVal
   else fHelperEditToolTip.cbFormName.Text := gbToolTipBox.Caption;
  with ToolTipContainer do
   begin
    Parent := fHelperEditToolTip;
    Left := 0;
    Top := 0;
    Dragable := FALSE;
   end;
  ToolTipButton.Caption := 'View Mode';
  ToolTipButton.OnClick := fHelperEditToolTip.btnToolTipCancel;
  ToolTipEditButton.Visible := FALSE;
  wbToolTip.Visible := FALSE;
  with fHelperEditToolTip do
  with fHelperEditToolTip do
   begin
    MR := ShowModal;
    Free;
   end;
 until MR <= mrNO;
except
 on e : exception do
  ShowMessage('ERROR on uHelper btnToolTipEditClick');
end;


i-am-vladko   (2006-10-23 21:56:00) [20]

Пожалуйста. Происходит ето здесь


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо