Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фреймы и правильная обработка событий 
:(
    Опции темы
filldomen
  Дата 2.1.2011, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.1.2011

Репутация: нет
Всего: нет



Есть фрейм Frame1: TFrameDBGrid в котором содержится DBGrid, у которого есть событие DBGrid.OnColumnClick. В обработчик этого события я размещаю определенный код.
Есть второй фрейм Frame2: TFrameMoveDBGrid который содержит в себе первый.
Есть форма MyForm, которая содержит в себе второй фрейм.
Возникла проблема, а именно код который содержался в обработчике еще первого фрейма не срабатывает, вообще сам обработчик OnColumnClick первого фрейма не срабатывает.
Такое впечатление наследование перестает работать, но если же разместить обработчик OnColumnClick для DBGrid в самой форме, то он срабатывает
т.е. Fame1.DBGridColumnClick это обработчик OnColumnClick первого фрейма
Код

procedure TMyForm.Frame2DBGridColimnClick(Sender..)
begin

  inherited; //по логике inherited должен был бы вызывать Frame1.DBGridColumnClick, но он его не вызывает в чем проблема?
  //код который был написан в MyForm
  ...
end;


Это сообщение отредактировал(а) filldomen - 2.1.2011, 22:22
PM MAIL   Вверх
bems
Дата 3.1.2011, 00:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Нет, по логике inherited означает метод объекта, в  котором он упомянут, то ест ьв данном случае TMyForm. Форма же не наследуется от фрейма.


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Delphist
  Дата 3.1.2011, 09:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(bems @  3.1.2011,  01:19 Найти цитируемый пост)
Нет, по логике inherited означает метод объекта, в  котором он упомянут, то ест ьв данном случае TMyForm. Форма же не наследуется от фрейма. 

Встречался с подобной проблемой, это косяк Delphi. Обходил я его так:
Код

{Frame2}
procedure TFrameMoveDBGrid.Frame1DBGridColumnClick(Sender..)
begin
   //вызывает принудительно обработчик из Frame1
   Frame1.DBGridColumnClick(Sender..);
end;


Код

procedure TMyForm.Frame2DBGridColimnClick(Sender..)
begin
  
  //вызываем принудительно обработчик из Frame2
  Frame2.Frame1DBGridColumnClick(Sender..)
  
  //код который был написан в MyForm
  ...
end;



--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
БелАмор
Дата 3.1.2011, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 5
Всего: 17



PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.