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

Вниз

Parent PopupMenu "автоматом" - возможено?   Найти похожие ветки 

 
Ega23 ©   (2006-09-25 18:30) [0]

Есть PageControl, 4 TabSheet, на одном лежит ещё один PageControl, на нём ещё 4 TabSheet, на каждом лежит TDBGrid (родной). PopupMenu в дизайн-тайм не задано никому из четырёх. Однако же при запуске - появляется, причём вообще от другого TabSheet самого верхнего PageControl.
В ран-тайм вроде нигде не задаю. Может ли он как-то автоматически присваиваться?


 
ProgRAMmer Dimonych   (2006-09-25 18:35) [1]

Пардон, другому TabSheet"у в дизайн-тайме назначен PopupMenu?


 
Ega23 ©   (2006-09-25 18:45) [2]


> Пардон, другому TabSheet"у в дизайн-тайме назначен PopupMenu?
>
>


TabSheet"у - нет, а вот гриду, который на нём лежит - да.
Мистика какая-то...


 
ProgRAMmer Dimonych   (2006-09-25 18:46) [3]

Сейчас попробую сам глянуть.
А вообще насчёт мистики - вряд ли. :)


 
Ega23 ©   (2006-09-25 18:48) [4]


> А вообще насчёт мистики - вряд ли. :)


Только что специально положил Button c кодом

procedure TFClassConfig.Button4Click(Sender: TObject);
begin
 ShowMessage(dbgClassStates.PopupMenu.Name);
end;


dbgClassStates - один из проблемных TDBGrid.
Справедливо получил AV (т.к. dbgClassStates.PopupMenu=nil).
НО ОН ЖЕ ПОКАЗЫВАЕТСЯ!!!!


 
ProgRAMmer Dimonych   (2006-09-25 18:52) [5]

Насчёт PopupMenu.Name - может, он (DBGrid) сравнивает его (PopupMenu) с nil и...

А PopupMenu кому задан, можно ещё разок уточнить?


 
Плохиш ©   (2006-09-25 18:54) [6]


> Ega23 ©   (25.09.06 18:48) [4]

А форме онo не присвоенo случайно?


 
ProgRAMmer Dimonych   (2006-09-25 18:55) [7]

[6] прав...


 
Ega23 ©   (2006-09-25 19:00) [8]


> А форме онo не присвоенo случайно?


В том-то и дело, что нет.


 
Плохиш ©   (2006-09-25 19:03) [9]


> Ega23 ©   (25.09.06 19:00) [8]

Ну тогда переключаешь форму в режим показа в виде текста и поиском ищешь упоминания своего попапа.


 
ProgRAMmer Dimonych   (2006-09-25 19:04) [10]

Тогда ответ на вопрос [5], если можно.

Или проект запаковать, если не секретный, и выложить куда-нибудь (на крайний случай - на WebFile.ru)


 
Ega23 ©   (2006-09-25 19:08) [11]


> Или проект запаковать, если не секретный, и выложить куда-
> нибудь (на крайний случай - на WebFile.ru)


Я-то запакую, но надо тащить ещё кучу разных packages (свои компоненты + Rx + EhLib) + база под MSSQL...  :о)

Сейчас, я ещё один тестик напишу.
Кстати, у кого PopupMenu появляется? TControl?


 
ProgRAMmer Dimonych   (2006-09-25 19:11) [12]

> Кстати, у кого PopupMenu появляется? TControl?

У него...


 
Ega23 ©   (2006-09-25 19:11) [13]

От зараза, он у него в приват засунут... В смысле в proected....


 
Ega23 ©   (2006-09-25 19:12) [14]

Так. Назревает более интересный вопрос: как в ран-тайм получить список контролов, имеющих конкретный PopupMenu?


 
ProgRAMmer Dimonych   (2006-09-25 19:13) [15]

А что за идея была, если не секрет?

[11]
Тогда, хотя бы dfm на ДельфиМастер...


 
Плохиш ©   (2006-09-25 19:15) [16]


> Ega23 ©   (25.09.06 19:12) [14]
> Так. Назревает более интересный вопрос

Ответ банальный: пробежаться по списку и сравнить.


 
ProgRAMmer Dimonych   (2006-09-25 19:17) [17]

А вообще, случайно, не PageControl"у ли назначено PopupMenu?


 
Ega23 ©   (2006-09-25 19:22) [18]

Всё. Нашёл в чём дело. Действительно мистики никакой не было.  :)
Короче: писал наследника от TCustomTreeView. У которого PopupMenu естественно находится в секции protected. В published не перекрыл. А т.к. в своё время поленился (в силу ряда причин) сделать его нормальным компонентом, то пользоваться им можно только создав в ран-тайме. Ну и вот:

PhsTypCfgTree :=TKdrDBTreeView.Create(Self);
 With PhsTypCfgTree do
  begin
   KeyField:="PhsTypCfgCod";
   ParentField:="ParPhsTypCfgCod";
   DisplayField:="PhsTypCfgNam";
   ImageField:="PhsTypCfgImg";
   HintField:="PhsTypCfgNot";
   ShowHint:=True;
   Parent:=pnPhsCfgTypTree;
   Align:=alClient;
   DataSource:=DMMain.dsPhsTypConfigs;
   PopupMenu:=popmenuPhsTypConfigs;
  end;


Но это уже относилось к классу формы.
В общем - коварный With  :о)
Всем спасибо!


 
Ega23 ©   (2006-09-25 19:23) [19]


> Ответ банальный: пробежаться по списку и сравнить.
>


Как?  :о)
Это свойство в protected лежит...  :о)


 
guav ©   (2006-09-25 22:08) [20]


> В общем - коварный With  :о)

Баян, было месяц назад :-)


 
Германн ©   (2006-09-26 01:23) [21]


> В общем - коварный With  :о)

И мне он тоже не раз подкладывал свинью. :-(
Теперь всегда следую правилу "не уверен, не обгон..., т.е "не уверен на все сто к кому будет относиться with читай справку как можно тщательнее" или используй прямое указание внутри with (Хуже не будет на все 100!)!



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.089 c
15-1158863556
McSimm
2006-09-21 22:32
2006.10.15
17-ая ежегодная выставка информационных технологий Softool 2006


2-1159173443
laronov
2006-09-25 12:37
2006.10.15
послать Ctrl+S в другое приложение


2-1159270594
Ezorcist
2006-09-26 15:36
2006.10.15
Создание вкладокв TPageControl "по образцу".


15-1158649192
IceBeerg
2006-09-19 10:59
2006.10.15
Удаление папки без имени


2-1159466963
qdelphi
2006-09-28 22:09
2006.10.15
Pointer