Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Parent PopupMenu "автоматом" - возможено?


Страницы:   1 2

Ega23 ©   (2006-09-25 18:30:00) 

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


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


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

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


guav   (2006-09-25 22:08:00) [2]


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

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


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


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


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


Ega23   (2006-09-25 19:22:00) [4]

Всё. Нашёл в чём дело. Действительно мистики никакой не было.  :)
Короче: писал наследника от 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  :о)
Всем спасибо!


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

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


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


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

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


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

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

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


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

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


Ega23   (2006-09-25 19:11:00) [9]

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


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

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

У него...


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


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


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

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


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

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

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


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


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

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


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


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


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


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

[6] прав...


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


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

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


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

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

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


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


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


Только что специально положил 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:46:00) [19]

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


Ega23   (2006-09-25 18:45:00) [20]


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


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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо