Конференция "Компоненты" » CheckBox не хочет рисоваться
 
  • TStas © (22.04.08 00:05) [0]
    Пишу компонент, только я его в систему не буду ставить, он для проекта одного.
    TStOwnersGrid = class(TDrawGrid)

    Вот кусок конструктора:
    FCheckBox := TCheckBox.Create(Self);
    FCheckBox.Parent := Self;

    на экране FCheckBox появляется, но он не может нарисоваться и не реагирует на мышь. Пробовал

    procedure TStOwnersGrid.SetParent(AParent: TWinControl);
    begin
     inherited;
     FCheckBox.Parent := Self;
    end;

    Тоже самое. Он ни на что не реагирует. Непонятно, чего ему не хватает.
    Попробовал тоже самое, но в форме. Всё работает без вопросов
  • {RASkov} © (22.04.08 01:52) [1]
    > [0] TStas ©   (22.04.08 00:05)

    Может лучше самому рисовать Чек? ...А не впихивать еще один винконтрол в грид
    DrawFrameControl()
    Только хранить "отмеченность" Чеков где в ДравГриде.... как вариан заменить на стринггрид.... ну или еще чего придумать можно...
  • Olegz77 © (22.04.08 21:45) [2]
    Цитата из книги (c) Антона Григорьева ("О чем не пишут в книгах по Delphi"):
    "...это связано с тем, что обработчик WM_COMMAND в TCustomGrid учитывает возможность существования только одного дочернего компонента - внутреннего редактора, возникающего при включенной опции goEditing. Остальным дочерним компонентам WM_COMMAND не транслируется, и они лишены возможности корректно реагировать на происходящие события. Выходом из ситуации может стать либо создание наследника от TDrawGrid или TStringGrid, которые правильно транслируют WM_COMMAND, либо назначение родительским окном компонента, вставляемого в сетку, формы, панели или иного оконного компонента, который правильно транслирует это сообщение..."
  • TStas © (23.04.08 11:14) [3]
    Так, с рисованием я решил с тот же день, заменив картинкой с рисунком чекбокса из аськи. Он даже симпатичнее. Но вопрос был именно почему, т. к. меня это очень удивило. Ведь у меня в той же сетки чудесно себя чувствовала кнопка (TButton), которая тоже TWinControl, но прекрасно нажималась. Книга Григорьева у меня есть, сейчас я про это ещё почитаю.
    goEditing как раз в моём случае ВЫКЛЮЧЕНА.
    Если подробнее, то конечная задача была такая: есть список собственников кравтиры, у них есть доли. Вернее, доли у них могут быть, а могут быть и не определены. Вот один на всех флажок и должен показывать, определены ли доли или нет.
    Саму задачу я решил, там всё просто совсем. Но стало очень интересно, почему так. Я ещё пробовал вместо флажка радиокнопку вставлять. Всё тоже самое.
 
Конференция "Компоненты" » CheckBox не хочет рисоваться
Есть новые Нет новых   [134464   +62][b:0][p:0]