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

Вниз

Мозговой штурм   Найти похожие ветки 

 
MTsv DN   (2009-04-07 10:47) [0]

Всем привет...

Нужен "мозговой штурм". Приветствуются ВСЕ предположения...даже бредовые 8)

Исходные данные:
1. Есть проект. Создавался универсальным для использования UNICODE_CTRLS и его отсутствия... Интересует второе.
2. На виртуалке винда 98. Отключаю UNICODE_CTRLS. Убираю все что привязано к ntdll.dll. Компилю. Ошибок 0.
3. Если запущена IDE, то запуск приложения из ОС происходит без сбоев, работа 100% нормальная.
4. Закрываю IDE. Попытка первого запуска приложения вылет пустого MsgOK с заголовком "Error..." и никаких системных ошибочных окон.
5. Второй запуск приложения. Сплеш-окно отрабатывает и завис приложения.
6. Замена системных файлов не используется.

Итог (мои предположения):
1. Для Главной Формы где-то срабатывает OnMessage, которое "обламывается" на какой-то обработке (или любое другое событие).
2. В OnMessage неверно возвращается значение Result или Rslt (или любое другое событие).
3. Использование сторонних компонентов, типа SATabs, mdvTreeListEdit и прочих (вряд ли, т.к. уже пробовал от всех избавиться, результат тот же)

У кого какие идеи???


 
MTsv DN   (2009-04-07 14:24) [1]

> 1. Для Главной Формы где-то срабатывает OnMessage, которое "обламывается" на какой-то обработке (или любое другое событие).
> 2. В OnMessage неверно возвращается значение Result или Rslt (или любое другое событие).

Не то... Отключение OnMessage и OnCreate эффекта не дало. Я все-таки убежден, что в каком-то событии вылет, но в каком? И главный вопрос: почему при запущенной IDE из ОС прога нормально запускается???


 
MTsv DN   (2009-04-07 20:20) [2]

Мда... "Штурма" смотрю не получилось...ну, да, ладно.

В чем ошибка, я нашел...однако ГДЕ нет, надеюсь, что пока...

Прикладываю минимальный проект. Ничего сверхъестественного, просто ToolBar на форме, без кнопок, без туллтипов...вообще без ничего:
http://ifolder.ru/11479490

Условия:
1. ОС: Windows 98 + IE 6.0 + Все хотфиксы для ОС и IE + DirectX 9.0 (в общем, все что можно выжать из 98 винды, я выжал)
2. IDE Delphi (в моем случае, Delphi 7) + KOL 2.88
3. Директивы условной компиляции: KOL_MCK

Проявление бага:
ТОЛЬКО ПРИ ЗАКРЫТОЙ IDE. Вылет системного окна ошибки (все регистры обнулены), затем окно "Error" с кодом "Runtime error 202 at XXXXXXXX", полный завис системы (только кнопка ресет)...

Где:
Вылет при вызове SetAlign( caTop ); Как при использовании OLD_ALIGN, так и при использовании NEW_ALIGN.

Пока все.
Вопросы:
1. Почему только при закрытой IDE?
Я понимаю, например, при отладке в IDE бага нет, а при запуске из ОС появляется. Типа дельфи управляет памятью не так как OC...тили-тили, трали-вали...это еще можно как-то понять. Но тут-то, тупо загружена IDE и в нем открыт проект.
2. Как вообще такие баги тестировать?
3. Ну, и соответственно: Где ошибка в данном случае?

З.Ы. Убедительная просьба. НЕ НАДО ВОПРОСОВ ТИПА: "НА КОЙ СДАЛАСЬ WINDOWS 98?"


 
MTsv DN   (2009-04-07 20:22) [3]

В дополнение:
Runtime error 202 = Stack Overflow

Видимо, где-то зацикливает в бесконечность...


 
MTsv DN   (2009-04-07 22:38) [4]

> В чем ошибка, я нашел...однако ГДЕ нет, надеюсь, что пока...
Нашел где циклит.
procedure TControl.SetBoundsRect( const Value: TRect );
var Rect: TRect;
begin
...
  if fHandle <> 0 then
  begin
    SetWindowPos( fHandle, 0, Rect.Left, Rect.Top, Rect.Right - Rect.Left,
                  Rect.Bottom - Rect.Top, SWP_NOZORDER or SWP_NOACTIVATE );
  end;
  if fSizeRedraw then
    Invalidate;
end;

Выполнение SetWindowPos не происходит. Происходит вылет из процедуры и опять останавливаемся в AlignChildrenProc. try-except не помогает...


 
MTsv DN   (2009-04-07 23:24) [5]

Все. Обсуждение закрыто!!!


 
SPeller ©   (2009-04-08 02:38) [6]

Правильно заданный вопрос - больше половины ответа :)


 
Vladimir Kladov ©   (2009-04-08 18:27) [7]

Ну так и как решили?


 
MTsv DN   (2009-04-08 18:58) [8]

Все мой проклятый склероз... Когда-то я уже на эти грабли наступал.
   {$IFNDEF TOOLBAR_FORCE_CHILDALIGN}
//    if WinVer >= wvNT then << Закоментировал здесь
     Result := TRUE; // this prevents Align working for child controls of Toolbar !
                     // but removing this line makes impossible correct Align for
                     // neighbour controls on form!!!
   {$ENDIF}


 
D[u]fa   (2009-04-09 15:37) [9]

Поддержка 9х... жесть)



Страницы: 1 вся ветка

Текущий архив: 2011.10.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
6-1245013139
dmitryfrisky
2009-06-15 00:58
2011.10.30
Компонент TIdMappedPortTCP


15-1309846954
SQLEXPRESS
2011-07-05 10:22
2011.10.30
Памяти 1 или 2 Гб


15-1309924055
Дмитрий С
2011-07-06 07:47
2011.10.30
Кто нибудь может скомпилировать это под VC9 (Visual Studio 2008)


2-1310454745
youngdev
2011-07-12 11:12
2011.10.30
insert, append


11-1206425669
MTsv DN
2008-03-25 09:14
2011.10.30
Версия 2.87