Главная страница
    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
11-1239086827
MTsv DN
2009-04-07 10:47
2011.10.30
Мозговой штурм


2-1310371260
.dzmitry
2011-07-11 12:01
2011.10.30
поиск в локальной БД


2-1310110990
leon2011
2011-07-08 11:43
2011.10.30
Как из UTF8 получить WideString


4-1251465883
Deltas
2009-08-28 17:24
2011.10.30
Консольное приложение. Иконка в области уведомлений.


15-1309781468
Kerk
2011-07-04 16:11
2011.10.30
База данных по документам министерства обороны за 1941-1945





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