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

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

Кнопка в stringgrid [D6, WinXP]


Oleg_ ©   (2005-07-20 12:36:00) 

Для правильной прорисовки кнопок в ячейках грида при прокрутке я назначил button.parent:=stringgrid
но после этого нажатие на кнопку перестало работать с методом формы.

кто сталкивался, подскажите в чем дело
спасибо


Oleg_   (2005-07-20 13:16:00) [1]

Выяснил что дело в обработке сообщений гридом и обошел через mouseup


MBo   (2005-07-20 13:16:00) [2]

дело в том, что StringGrid не пересылает сообщения WM_COMMAND своим деткам, кроме inplaceedit.
Так что выхода по меньшей мере три:

1. Делать родителем кнопок форму (при этом кнопки должн быть выше грида, например, созданы динамически позднее его)

2. Написать наследника StringGrid, сделав

Procedure WMCommand( var msg: TWMCommand ); message WM_COMMAND;

...
If EditorMode and ( msg.Ctl = InplaceEdit.Handle ) Then
   inherited
 Else
   If msg.Ctl <> 0 Then
     msg.result :=
       SendMessage( msg.ctl, CN_COMMAND,
                    TMessage(msg).wparam,
                    TMessage(msg).lparam );

(P.Below)

3. Перекрыть оконную процедуру грида, сделав по приходу WM_COMMAND такую же пересылку


Наверх

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