Форум: "Основная";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
ВнизПриложение и его главное окно - странный эффект Найти похожие ветки
← →
Ice-T (2007-07-20 16:02) [0]Здравствуйте мастера =) Возникла очень странная проблема.. Проект уже довольно большой (относительно). И вот на заверщающем этапе проявился интересный эффект. Как известно, если запустить пустой проект, то в списке процессов отобразится процесс, а в списке окон окно (Form1). Но у меня почему-то перестало регистрироваться главное окно. Процесс есть, а окна нет. Дочерние регистрируются нормально. Видимых проблем нет. Регистрация (т.е. окно появляется в списке) вот здесь: TCustomForm.Create - IniInheritedComponent - InitComponent - InternalReadComponentRes - StreamReadComponent. Ресурс (dfm) в эти процедуры передается правильный, от главной формы. А один раз произошло наоборот. Т.е. зарегистрировалось окно, но процесса видно не было! Если кто знает, в чем беда - подскажите плз!!!
← →
Kolan © (2007-07-20 16:16) [1]> а в списке окон окно
Что за список такой, как вы его получаете?
← →
Ice-T (2007-07-20 16:24) [2]"Список окон" это условно. К примеру окно не возможно будет найти с помощью FindWindow. Если нажать Ctrl-Alt-Del, то приложение может отобразиться в списке процессов, но его не будет в "приложениях". Так же можно посмотреть "список окн" с помощью любого простого TaskView"ера. Грубо говоря окно не получает свой собственный хендл!
← →
Ice-T (2007-07-20 16:45) [3]При нормальном ходе происходит следующее:
до вызова метода Application.CreateForm(...) существует только процесс с названием приложения (Project1) и клссом TApplication. Он скрытый. После вызова этого метода, процесс ствновится не скрытым и появляется дочернее ему окно Form1 класса TForm1. Это нормальный процесс создания процесса с дочерними ему окнами. У меня же после вызова Application.CreateForm процесс становится видимым, но главнвя форма не появляется в дочерних ему окнах и вообщзе её нету. Хотя она есть на экране. Остальные дочерние окна создаются нормально. Список окон можно получить в цикле GetWindow(..,GW_HWNDFIRST) ... GetWindow(..,GW_HWNDNEXT). (с синтаксисиом мог ошибиться)
← →
Dib@zol © (2007-07-20 16:45) [4]Ууу, тут могут быть тысячи причин:
- Недопустимое перекрытие методов.
- Ошибка в стороннем компоненте (или даже в стандартном =D).
- Неверный вызов процедуры.
- Случайное порождение EAbort (мне как-то раз встречалось).
- Внутренний сбой Дельфей, наконец!
Тут без анализа кода не обойтись...
← →
Ice-T (2007-07-20 16:51) [5]Под отладчиком прогнал, вроде ошибок не возвращала ниодна функа. Может не уследил конечно что. Пробовал удалять компоненты по одному - тоже не фига. Внутренний сбой Дельфей - это интересно конечно))
← →
Dib@zol © (2007-07-20 16:56) [6]
> Внутренний сбой Дельфей - это интересно
А то. Очень понимаешь интересно когда компилятор тебе выдаёт - Internal error #402 - и кирдыкъ... Я почему с ВЦЛ на АПИ перешёл - у меня 3 (три!!) ВЦЛьных проги в один прекрасный(хм...) момент отказались компилиться напрочь! Я подумал - да, такой баг ловить - это вам не это. Легче переписать заново...
← →
Ice-T (2007-07-20 17:02) [7]АПИ рулит - это да! Н оокно настолько сложное, что поновой писать на АПИ уйдет куча времени, а скоро релиз.... Кто-нибудь знаком более углубленно с этими методами дельфи?
← →
Dib@zol © (2007-07-20 17:07) [8]Я тут чё подумал - у тебя часом бэкапа нет? Если нет то ааагромный совет на будущее: делай бэкапы на каждой ключевой стадии разработки! А главное - потом не забывай где они лежат :)
← →
Ice-T (2007-07-20 17:10) [9]Да да! Это теперь на будущее.. Бекап есть правда очень очень старый...
← →
Ice-T (2007-07-20 17:14) [10]хм.. вот эта функа возвращает ERROR_SUCCES: TReader.ReadRootComponent
← →
Ice-T (2007-07-20 20:44) [11]Удалено модератором
← →
Dib@zol © (2007-07-20 20:46) [12]Удалено модератором
← →
Ice-T (2007-07-21 00:16) [13]Удалено модератором
← →
Ice-T (2007-07-21 02:07) [14]хм.. вообщем всем спасибо проблема решена с помошью изучения довольно запутанного кода, генерируемого дельфи.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c