![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Parent PopupMenu "автоматом" - возможено?
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'у - нет, а вот гриду, который на нём лежит - да.
Мистика какая-то...