Форум: "Компоненты";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
ВнизСоздание Компонена на основе TCustomControl Найти похожие ветки
← →
NewMan (2006-07-11 14:54) [0]Срочно надо написать компоненту Типа TStringGrid на основе TCustomControl... В C++ Builder...
А я не то, что на основе TCustomControl, я вообще компонентов не писал... А тут ещё C++ Builder...
В общем, дела мои обстоят не лучшим образом... Но пути обратно нет. Очень прошу оказать информативную помощь в поиске соотвествующего мануала, форумы хорошие по Билдеру, как с TCustomControl работать, как всё это тестить.
Заранее спасибо!
← →
NewMan (2006-07-11 14:55) [1]Переопределяю метод TCustomControl->Paint():
class PACKAGE TInfoTable : public TCustomControl
{
private:
protected:
public:
__fastcall TInfoTable(TComponent* Owner);
void __fastcall Paint();
__published:
};
В *.cpp пишу:void __fastcall TInfoTable::Paint()
{
Canvas->Brush->Color = clBlack;
Canvas->Pen->Color = clRed;
Canvas->Ellipse(0, 0, 100, 100);
}
ТЕСТИРОВАНИЕ:
Сам компонент у меня на палитру уже установлен.
1) просто перетаскиваю компонент на форму, запускаю приложение. Ничего не рисуется...
Я заметил: внесённые в *.cpp компонента изменения, никак не влияют на результат. Банально: ShowMessage() в конструкторе
2) поэтому я удалил компонент, заинклюдил его *.cpp, завёл глобальную переменную (мой компонент). Инициализирую по TFrom::OnCreate, удаляю по OnDestroy...
Но всё равно ничего не рисуется
Потом решил ещё потестить:
в Paint() добавил:
SetWindowText(ParentWindow, "Paint()");
Так вот при работе приложения, Caption так и не изменился
Решил "насильно" вызвать метод TInfoTable::Paint() по нажатию кнопки на форме... Нажал... И сразу получил:
Invalid Operation with message "Control has no parent window"
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c