Главная страница
    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.041 c
2-1142847980
SEMYONov
2006-03-20 12:46
2006.04.02
Список пользователей + прозрачность


6-1134831725
KvORubin
2005-12-17 18:02
2006.04.02
Мастера!!! как програмным путём передать файл.* по сети...


15-1141753544
ArtemESC
2006-03-07 20:45
2006.04.02
Matrix


3-1139314557
Trap
2006-02-07 15:15
2006.04.02
real-time обработка данных


15-1142180329
Piter
2006-03-12 19:18
2006.04.02
Программа для "замедления" mp3





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