-
Пишу компонент, только я его в систему не буду ставить, он для проекта одного. TStOwnersGrid = class(TDrawGrid)
Вот кусок конструктора: FCheckBox := TCheckBox.Create(Self); FCheckBox.Parent := Self;
на экране FCheckBox появляется, но он не может нарисоваться и не реагирует на мышь. Пробовал
procedure TStOwnersGrid.SetParent(AParent: TWinControl); begin inherited; FCheckBox.Parent := Self; end;
Тоже самое. Он ни на что не реагирует. Непонятно, чего ему не хватает. Попробовал тоже самое, но в форме. Всё работает без вопросов
-
> [0] TStas © (22.04.08 00:05)
Может лучше самому рисовать Чек? ...А не впихивать еще один винконтрол в грид DrawFrameControl() Только хранить "отмеченность" Чеков где в ДравГриде.... как вариан заменить на стринггрид.... ну или еще чего придумать можно...
-
Цитата из книги (c) Антона Григорьева ("О чем не пишут в книгах по Delphi"): "...это связано с тем, что обработчик WM_COMMAND в TCustomGrid учитывает возможность существования только одного дочернего компонента - внутреннего редактора, возникающего при включенной опции goEditing. Остальным дочерним компонентам WM_COMMAND не транслируется, и они лишены возможности корректно реагировать на происходящие события. Выходом из ситуации может стать либо создание наследника от TDrawGrid или TStringGrid, которые правильно транслируют WM_COMMAND, либо назначение родительским окном компонента, вставляемого в сетку, формы, панели или иного оконного компонента, который правильно транслирует это сообщение..."
-
Так, с рисованием я решил с тот же день, заменив картинкой с рисунком чекбокса из аськи. Он даже симпатичнее. Но вопрос был именно почему, т. к. меня это очень удивило. Ведь у меня в той же сетки чудесно себя чувствовала кнопка (TButton), которая тоже TWinControl, но прекрасно нажималась. Книга Григорьева у меня есть, сейчас я про это ещё почитаю. goEditing как раз в моём случае ВЫКЛЮЧЕНА. Если подробнее, то конечная задача была такая: есть список собственников кравтиры, у них есть доли. Вернее, доли у них могут быть, а могут быть и не определены. Вот один на всех флажок и должен показывать, определены ли доли или нет. Саму задачу я решил, там всё просто совсем. Но стало очень интересно, почему так. Я ещё пробовал вместо флажка радиокнопку вставлять. Всё тоже самое.
|