Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.052 c
2-1188983561
kyro
2007-09-05 13:12
2007.09.30
Как убрать подчеркивание у label


3-1179909872
ed_ch
2007-05-23 12:44
2007.09.30
Как получить вычисляемое поле в базе данных


3-1180356563
Чип
2007-05-28 16:49
2007.09.30
фильтрация


15-1188904717
SerJaNT
2007-09-04 15:18
2007.09.30
Удалить флеш-плеер из виндоуз?


15-1188480763
ArtemESC
2007-08-30 17:32
2007.09.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский