Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1161626515
Layner
2006-10-23 22:01
2006.11.12
А кто знает, как троллейбусы перекл. с ветки на ветку?


2-1161708285
Velimir
2006-10-24 20:44
2006.11.12
Как анализировать одно и тоже событие в разных местах


15-1161855795
RebroFF
2006-10-26 13:43
2006.11.12
Есть ли шансы у самоучек стать настоящими профи?


2-1161872990
Riply
2006-10-26 18:29
2006.11.12
Последовательный доступ к памяти


2-1161927953
ГореПрограммер
2006-10-27 09:45
2006.11.12
Колличество элементов динамического массива





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