Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Внизбуг на Ресайзе Найти похожие ветки
← →
i-am-vladko © (2006-10-23 21:33) [0]Доброго здоровья, Господа !
При изменении height и/или width форм из приложения Delphi не генерит exception, и открbIвает отладчик, причем только 1 раз. Довольно странная ситуация для меня - никогда с подобнbIм не сталкивaлся. Может, кто-то знает, почему ето происходит и как избавиться от етого открbIтия отладчика?
← →
Desdechado © (2006-10-23 21:43) [1]Изменение этих свойств не ведет к exception и "открытию отладчика".
Телепатор подсказывает, что пытаешься изменять свойства у еще несозданной или уже разрушенной формы.
← →
i-am-vladko © (2006-10-23 21:45) [2]форма уже создана(модально), и умереть еще не успела - ето точно...
← →
Zacho © (2006-10-23 21:49) [3]i-am-vladko © (23.10.06 21:45) [2]
Приведи код, а то так и будем ТЛ (Телепатический Локатор) тестировать.
← →
i-am-vladko © (2006-10-23 21:54) [4]try
gbControls.Visible := not gbControls.Visible;
for i := 0 to menuMAIN.Items.Count - 1 do
menuMAIN.Items[i].Visible := gbControls.Visible;
Width := FMaxWidth;
Height := FMaxHeight;
if gbControls.Visible
then
begin
Width := Width + gbControls.Width;
if Height < HEIGHT_CONST
then Height := HEIGHT_CONST;
Height := Height + 15;
end;
except
on e : exception do
ShowMessage("ERROR on uHelperEditToolTip btnWithOutAllClick");
end;
← →
i-am-vladko © (2006-10-23 21:56) [5]Пожалуйста. Происходит ето здесь
← →
i-am-vladko © (2006-10-23 21:58) [6]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:58) [7]ниже - создание формbI
← →
Anatoly Podgoretsky © (2006-10-23 22:31) [8]
> буг на Ресайзе
Кто на ком стоял?
← →
Loginov Dmitry © (2006-10-23 23:43) [9]А что за ошибка?
← →
sniknik © (2006-10-24 00:04) [10]> А что за ошибка?
не видиш чтоль? > "ERROR on uHelperEditToolTip btnWithOutAllClick"
;о))
p.s. терпеть не могу такой подход (а был бы его начальником, уволил бы нафик)... лучше уж вообще без обработчика, чем такой.
p.p.s. както неделю бились, почему сервис не запускается (партнеров прога), и сами они ничего не могли сказать кроме "у нас работает", т.е. проблема типа ваша..., ошибка была вот такая же "гениальная" - "проблемы при старте сервиса, сервис не запущен"..., в итоге выяснилось что второй сервис на том компе открывал тотже порт что и первый... а в вместо нормального системного о занятости порта (после которого решение делается в 5 мин. (найти где у них прописывается нужный параметр и изменить)) выше написанное де@#мо...
← →
Ketmar © (2006-10-24 00:16) [11]>[10] sniknik(c) 24-Oct-2006, 00:04
угу. я в CDM наделал таких же "заглушек". идиот. потом долго правил на что-то более-менее полезное. но ещё не везде выправил. %-)
зыж извиняет меня только то, что я перестал раздавать исходники CDM. %-)
← →
Германн © (2006-10-24 03:50) [12]
> 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 04:41) [13]>[12] Германн(c) 24-Oct-2006, 03:50
>Хуже когда междуexcept
иend
>вообще ничего нет!
видел бы ты, сколько у меня ещё таких мест осталось! %-) фактически, нормальная и многословная только сетевая часть. остальное -- или вообще никак, или дзеном. %-)
отсюда у меня стандартное предупреждение: лечение в психушке после просмотра кода я не оплачиваю. %-)
← →
Германн © (2006-10-24 04:54) [14]
> видел бы ты, сколько у меня ещё таких мест осталось! %-)
> фактически, нормальная и многословная только сетевая часть.
> остальное -- или вообще никак, или дзеном. %-)
> отсюда у меня стандартное предупреждение: лечение в психушке
> после просмотра кода я не оплачиваю. %-)
>
У меня и без "твоих мест" много других путей на "Калатчикову дачу"! Хотя там было гораздо веселее, если верить В.С.В. :-)
← →
MikePetrichenko © (2006-10-24 05:01) [15]
> Хуже когда между except и end вообще ничего нет! А такое
> нередко случается. И я уже приводил код "весьма уважаемого
> автора" с таким оборотом.
Почему же хуже? Если я ТОЧНО знаю причину excaption. И мне совсем не светит ее показывать/обрабатывать (ошибку) и я ТОЧНО знаю что с этим делать, то мне проше заткнуть ее и все. Так что пустой except/end вполне сгодитя для НЕКОТОРЫХ ситуаций.
← →
Германн © (2006-10-24 05:06) [16]
> Почему же хуже? Если я ТОЧНО знаю причину excaption. И мне
> совсем не светит ее показывать/обрабатывать (ошибку) и я
> ТОЧНО знаю что с этим делать, то мне проше заткнуть ее и
> все. Так что пустой except/end вполне сгодитя для НЕКОТОРЫХ
> ситуаций.
>
Вот-вот. И тот, кого я упомянул выше, имхо тоже считал, что он ТОЧНО знает! А в результате что? Смерть программы без каких-либо сообщений о причинах сей "безвременной кончины"!
← →
Ketmar © (2006-10-24 05:21) [17]>[14] Германн(c) 24-Oct-2006, 04:54
>Калатчикову
Канатчикову. %-)
>[15] MikePetrichenko(c) 24-Oct-2006, 05:01
>Почему же хуже? Если я ТОЧНО знаю причину
вот и лови точно это исключение. и смело его, например, игнорируй. но во имя Ктулху -- не трогай остальные! если ты твёрдо уверен, чтоStrToDateTime()
может привести только кEConvertError
, то напиши:except on E: EConvertError do
. символов не намного больше, а пользы -- на порядки.
← →
Ketmar © (2006-10-24 05:23) [18]зыж в дополнение к [17]. лично Ketmar почти никогда не поступает так, как пишет. "делай, как я говорю, а не как я делаю" (ц) %-)
← →
Loginov Dmitry © (2006-10-24 07:51) [19]Германн © (24.10.06 3:50) [12]
Пусть лучше пользователь получит "невнятное" т.е. аглицкое сообщение об ошибке. Его имхо проще "распознать" с учётом всех привходящих и найти причины ошибки.
Дополнительно можно повесить обработчик на TApplicationEvents.OnExeption и показывать пользователю свое симпотное, не шокирующее сообщение об ошибках. В одной из программ я сделал несколько своих типов исключений (EError и EWarning), и при каждом из них показываю обычный Application.MessageBox с соответствующей иконкой. Такое вообще никого не должно шокировать :-)
← →
Anatoly Podgoretsky © (2006-10-24 09:02) [20]
> АП, думаю, помнит.
Отлично, раз раз затронули эту тему.
Даже конструкция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
← →
Anatoly Podgoretsky © (2006-10-24 09:06) [21]Мне есть еще чего сказать про исключение, но данная тема не подходит. Тем более что автор начитался дурной популярной литературы и по идее тему бы следовало закрыть из-за применения дворового сленга, но это никогда не поздно.
← →
Ketmar © (2006-10-24 09:42) [22]>[20] Anatoly Podgoretsky(c) 24-Oct-2006, 09:02
и таки не могу не согласиться. коли уж поймал исключение -- ну скажи ты e.ClassName и e.Message. текста -- минимум, а пользы -- не измерить...
← →
i-am-vladko © (2006-10-25 13:17) [23]Спасибо за активное обсуждение и критику )) И все же если говориш КАК НЕ НАДО, обязательно скажи КАК НАДО...
И тема, если кто плохо помнит, совсем другая - активно обсужденное EXCEPTION вообще не генерится, запускается CPU. Как подсказал ув. Анатолий П. (если я правильно его понял) , ето из-за изменения Parent... но как с етим бороться??
← →
i-am-vladko © (2006-10-25 15:23) [24]ау, господа...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.07 c