Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2010, 10:05   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Одинаковый хендл у "родителя" и "ребенка"

Просматриваю логи и что-то не пойму:
Код:
12.05.2010 10:03:12:140 *** WINDOWS INITIALIZATION ***********************
12.05.2010 10:03:12:140 * Background initialization .............STARTED *
12.05.2010 10:03:12:140 * Left position ...........................00000 *
12.05.2010 10:03:12:140 * Top position ............................00000 *
12.05.2010 10:03:12:140 * Width position ..........................01280 *
12.05.2010 10:03:12:140 * Height position .........................00800 *
12.05.2010 10:03:12:156 * Parent window ........................00000000 *
12.05.2010 10:03:12:156 * Handle of window .....................00001018 *
12.05.2010 10:03:12:156 * Background creating .................COMPLETED *
12.05.2010 10:03:12:156 * Main window initialization ............STARTED *
12.05.2010 10:03:12:171 * Left position ...........................00000 *
12.05.2010 10:03:12:171 * Top position ............................00000 *
12.05.2010 10:03:12:171 * Width position ..........................01280 *
12.05.2010 10:03:12:171 * Height position .........................00800 *
12.05.2010 10:03:12:171 * Parent window ........................00001018 *
12.05.2010 10:03:12:171 * Handle of window .....................00001018 *
12.05.2010 10:03:12:171 * Main window creating ................COMPLETED *
12.05.2010 10:03:12:171 * Windows initialization ..............COMPLETED *
Почему у парента и подчиненного один хендл? так и должно быть?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.05.2010, 10:19   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Может чего в коде напутано? Например лог не того окна читает?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 12.05.2010, 10:32   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Инициализация:
Код:
   UNTFRMVars.FRMBack.ClsName := 'TBack';                                                  UNTLOGProc.LogString('* Background initialization .............STARTED *');
   UNTFRMVars.FRMBack.Left    := 0;                                                        UNTLOGProc.LogString('* Left position ...........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMBack.Left,5)+ ' *');
   UNTFRMVars.FRMBack.Top     := 0;                                                        UNTLOGProc.LogString('* Top position ............................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMBack.Top,5)+ ' *');
   UNTFRMVars.FRMBack.Width   := UNTFRMVars.Screen.Width;                                  UNTLOGProc.LogString('* Width position ..........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMBack.Width,5)+ ' *');
   UNTFRMVars.FRMBack.Height  := UNTFRMVars.Screen.Height;                                 UNTLOGProc.LogString('* Height position .........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMBack.Height,5)+ ' *');
   UNTFRMVars.FRMBack.Parent  := 0;                                                        UNTLOGProc.LogString('* Parent window ........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMBack.Parent,8)+ ' *');
   UNTFRMProc.WindowCreate(FRMBack);                                                       UNTLOGProc.LogString('* Background creating .................COMPLETED *');
   UNTFRMVars.FRMMain.ClsName := 'TMain';                                                  UNTLOGProc.LogString('* Main window initialization ............STARTED *');
   UNTFRMVars.FRMMain.Left    := 0;                                                        UNTLOGProc.LogString('* Left position ...........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMMain.Left,5)+ ' *');
   UNTFRMVars.FRMMain.Top     := UNTFRMVars.Screen.BCols.Height;                           UNTLOGProc.LogString('* Top position ............................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMMain.Top,5)+ ' *');
   UNTFRMVars.FRMMain.Width   := UNTFRMVars.Screen.Width;                                  UNTLOGProc.LogString('* Width position ..........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMMain.Width,5)+ ' *');
   UNTFRMVars.FRMMain.Height  := UNTFRMVars.Screen.Height  -
                         (UNTFRMvars.Screen.BCols.Height * 2);                             UNTLOGProc.LogString('* Height position .........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMMain.Height,5)+ ' *');
   UNTFRMVars.FRMMain.Parent  := FRMBack.Handle;                                           UNTLOGProc.LogString('* Parent window ........................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMMain.Parent,8)+ ' *');
   UNTFRMProc.WindowCreate(FRMMain);                                                       UNTLOGProc.LogString('* Main window creating ................COMPLETED *');
Создание:
Код:
Procedure WindowCreate(Var FRM : TShrewForm);
Begin
 FRM.hInst := UNTFRMExp.GetModuleHandle(Nil);
  With FRM.WinClass Do
   Begin
    Style := Cardinal(2) Or Cardinal(1); //$80;
    hIcon := UNTFRMExp.LoadIcon(FRM.hInst, PAnsiChar('MAINICON'));
    lpfnWndProc := @UNTFRMProc.WindowProc;
    hInstance := FRM.hInst;
    hbrBackground := 15 + 1;
    lpszClassName := FRM.ClsName;
    hCursor := UNTFRMExp.LoadCursor(0, PAnsiChar(32512));
   End;
 UNTFRMExp.InitCommonControls;
 UNTFRMExp.RegisterClass(FRM.WinClass);
 FRM.Handle := UNTFRMExp.CreateWindowEx(0, FRM.ClsName, 'Shrew',
 Cardinal($80000000) (* WS_POPUP *), FRM.Left, FRM.Top,
 FRM.Width, FRM.Height,
 FRM.Parent, 0,
 FRM.hInst, Nil);                                                               UNTLOGProc.LogString('* Handle of window .....................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRMBack.Handle,8)+ ' *');
End;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.05.2010, 10:33   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Продолжение (было 5300 символов)

Причем посмотрел лог при нестандартном разрешении экрана:
Код:
12.05.2010 10:31:27:953 * First column initialization............STARTED *
12.05.2010 10:31:27:953 * Left position ...........................00000 *
12.05.2010 10:31:27:953 * Top position ............................00000 *
12.05.2010 10:31:27:953 * Width position ..........................01280 *
12.05.2010 10:31:27:953 * Height position .........................00012 *
12.05.2010 10:31:27:953 * Parent window ........................00001150 *
12.05.2010 10:31:27:968 * Handle of window .....................00001150 *
12.05.2010 10:31:27:968 * First column creating ...............COMPLETED *
12.05.2010 10:31:27:968 * Second column initialization ..........STARTED *
12.05.2010 10:31:27:968 * Left position ...........................00000 *
12.05.2010 10:31:27:968 * Top position ............................00588 *
12.05.2010 10:31:27:968 * Width position ..........................01280 *
12.05.2010 10:31:27:968 * Height position .........................00012 *
12.05.2010 10:31:27:968 * Parent window ........................00001150 *
12.05.2010 10:31:27:968 * Handle of window .....................00001150 *
12.05.2010 10:31:27:984 * Second column creating ..............COMPLETED *
12.05.2010 10:31:27:984 * Windows initialization ..............COMPLETED *
еще два окна, которые являются "подчиненными" имеют такой же хендл.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.05.2010, 10:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
UNTFRMVars.FRMMain.Parent := FRMBack.Handle;
и
Handle of window...... UNTFRMVars.FRMBack.Handle
Ниче не настораживает?
Думаю тут должно быть:
Код:
UNTLOGProc.LogString('* Handle of window .....................' + UNTLOGProc.IntToStrWZ(UNTFRMVars.FRM.Handle,8)+ ' *');
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2010, 10:39   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,089
По умолчанию

Не увидел, где заполняется UNTFRMVars.FRMBack.Handle и почему выводится в лог он, а не FRM.Handle
pu4koff вне форума Ответить с цитированием
Старый 12.05.2010, 10:41   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А почему получаем FRM.Handle, а пишем про какой-то UNTFRMVars.FRMBack.Handle? Так и надо, наверно именно про FRM.Handle писать, не?

ЗЫ. Ну блин не Утка-Ниндзя, а Утка-тормоз - опять опоздал .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 12.05.2010, 10:49   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

О! Спасибо. Блин. Curse you, моя невнимательность.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51