Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

буг на Ресайзе   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.055 c
3-1158218465
Alithay
2006-09-14 11:21
2006.11.12
Редактирование ячейки TDBGrid только при нажатии Enter


2-1161851084
Tor
2006-10-26 12:24
2006.11.12
Константы сложных типов


15-1161531490
Pazitron_Brain
2006-10-22 19:38
2006.11.12
Как определить пинг до себя?


9-1138866264
Nic
2006-02-02 10:44
2006.11.12
Как проверить установлена DirectX в системе и если нет, то...


2-1161959104
TIF
2006-10-27 18:25
2006.11.12
Проблема с 98 виндой. Помогите! Плиз!