Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "KOL";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1310404809
Qq
2011-07-11 21:20
2011.10.30
Не открывает проект


15-1309840625
dxc
2011-07-05 08:37
2011.10.30
биллиардный шар


2-1309782724
DSIoffe
2011-07-04 16:32
2011.10.30
Не могу нормально принять данные по UDP


15-1309411014
Дмитрий С
2011-06-30 09:16
2011.10.30
Какой код ошибки http повесить, когда


15-1309277924
tesseract
2011-06-28 20:18
2011.10.30
пивная тема.





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