Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Обработка события дочернего компонента   Найти похожие ветки 

 
Сатир   (2006-03-13 13:54) [0]

Здраствуйте уважаемые!
На днях столкнулся с такой ситуацией.
Создаю в runtime экземпляр объекта TButton

 btn:=TButton.Create(Form1);
 btn.Parent:=Form1;
 btn.OnClick:=Button3Click;
 btn.BoundsRect:=StringGrid1.CellRect(1,1);
Когда Owner и Parent кнопки заданы как Form1, всё чудестно работает и вызывается обработчик Button3Click.(кнопка Button3 создана на форме в designtime и для неё написан статический обработчик клика на ней тоже в designtime)

Но стоит задать Owner и Parent как StringGrid1, обработчик клика на этой кнопке перестает работать.
 btn:=TButton.Create(StringGrid1);
 btn.Parent:=StringGrid1;
 btn.OnClick:=Button3Click; <---НЕ РАБОТАЕТ!!!
 btn.BoundsRect:=StringGrid1.CellRect(1,1);

Вопрос к знатокам:
как назначить обработчик клика динамически создаваемой кнопке, которая будет принадлежать компоненту StringGrid1?
Заранее благодарен.


 
MBo ©   (2006-03-13 13:57) [1]


 TControlgrid = class(TStringgrid)
 private
   { Private declarations }
   Procedure WMCommand( var msg: TWMCommand ); message WM_COMMAND;
 protected
   { Protected declarations }
 public
   { Public declarations }
 published
   { Published declarations }
 end;

procedure TControlgrid.WMCommand(var msg: TWMCommand);
begin
 If EditorMode and ( msg.Ctl = InplaceEditor.Handle ) Then
   inherited
 Else
   If msg.Ctl <> 0 Then
     msg.result :=
       SendMessage( msg.ctl, CN_COMMAND,
                    TMessage(msg).wparam,
                    TMessage(msg).lparam );
end;



 
balepa ©   (2006-03-13 13:59) [2]


>  btn.OnClick:=Button3Click

btn.OnClick:=Form1.Button3Click ?
А как описана Button3Click ?


 
MBo ©   (2006-03-13 14:03) [3]

>balepa ©   (13.03.06 13:59) [2]
>А как описана Button3Click ?

в данном случае проблема не в этом, а в том, что StringGrid, как родитель, не передает сообщений своим деткам, за исключением инплейса.


 
Сатир   (2006-03-13 14:30) [4]

MBo ©   (13.03.06 13:57) [1]
Большое спасибо!
Я приблизительно так и догадывался.
И ещё вопрос по StringGrid"y:
Как вызвать его метод Invalidate, когда закончилось событие прокрутки горизонтального или вертикального ScrollBar"a?


 
MBo ©   (2006-03-13 14:52) [5]

>Как вызвать его метод Invalidate, когда закончилось событие прокрутки горизонтального или вертикального ScrollBar"a?

???
при этом автоматически перерисовка вызывается


 
Сатир   (2006-03-13 16:57) [6]


> при этом автоматически перерисовка вызывается

дело в том, что в моём стрингриде в конце некоторых строк в ячейках есть по две кнопки "+" и "-". они нужны для реализации возможности размножения строк в стринггриде. но когда эти кнопки уходят из области видимости, иногда их изображения остаются в двух местах, в предыдущем месте и в том, где они нанисовались после прокрутки.
Вот я и подумал, что после окончания прокрутки стринггрида нужно вызвать какой-то метод, который сможет убрать вот эти "размазанные" по стринггриду кнопки.
Не подскажите, как это лучше сделать?


 
Сатир   (2006-03-13 17:40) [7]

как называется событие окончания прокрутки и как его перегрузить и добавить свои методы?


 
pasha_golub ©   (2006-03-13 18:01) [8]

WM_HSCROLL & WM_VSCROLL


 
pasha_golub ©   (2006-03-13 18:05) [9]

Соответственно:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarmessages/wm_vscroll.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarmessages/wm_hscroll.asp



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.089 c
11-1123539855
Thaddy
2005-08-09 02:24
2006.04.02
Static Link version of SQlite3 for KOL beta


2-1142349392
KyRo
2006-03-14 18:16
2006.04.02
Путь к программе


15-1142004365
ZeFiR
2006-03-10 18:26
2006.04.02
eXtreme Notepad


2-1142845601
bolbes
2006-03-20 12:06
2006.04.02
Каталог


15-1142243200
Nic
2006-03-13 12:46
2006.04.02
Что может значить сообщение:





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