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

Вниз

Приложение и его главное окно - странный эффект   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
6-1170156869
maxistent
2007-01-30 14:34
2007.09.30
закачка/докачка по ftp/http


15-1188915329
savyhinst
2007-09-04 18:15
2007.09.30
Лазарус


15-1188055030
Cyrax
2007-08-25 19:17
2007.09.30
Посоветуйте дешёвого дистрибьютера компьютерной техники в Москве


15-1188540152
mixer
2007-08-31 10:02
2007.09.30
Помогите найти минусовку


15-1188811524
Alien1769
2007-09-03 13:25
2007.09.30
Демонстрация "правильной" работы в системе Клиент-Сервер