Главная страница
    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.49 MB
Время: 0.042 c
2-1159423377
ГореПрограммер
2006-09-28 10:02
2006.10.15
Присвоение значения свойства группе объектов


3-1155906209
novill
2006-08-18 17:03
2006.10.15
Interbase. Как в select запрос вставить выбор (if или case)?


1-1157127682
gear
2006-09-01 20:21
2006.10.15
Как сделать чтобы открытое PopupMenu не закрывалось при смене...


15-1158721392
Думкин
2006-09-20 07:03
2006.10.15
Импортирование и время


1-1157708781
ORMADA
2006-09-08 13:46
2006.10.15
Узнать путь к файлу до WM_DROPFILES





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский