Xpyct |
Отправлено: 07.07.2006, 08:49 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 2
|
Создаю компонент наследник TGraphicControl с 3мя свойствами: OnOff,OnBmp и OffBmp. При состоянии OnOff = true должна отображаться картинка из свойства OnBmp ну и наоборот для False
Написал маленький кодик)) (за место OnBmp пока рисуется элипс) только когда помещаю компонент на форму с моим Builder'ом происходят странные вещи то куча ошибок памяти вылазит то закрывается сразу сам то ещё какаянить фигня
Вообщем компоненты я делаю недавно(точнее со вчерашнего дня ) поэтому наверно гдето не так чтото написал, помогите люди добрые
Файл заголовок
CODE |
class PACKAGE TDepImg : public TGraphicControl
{
private:
bool FOnOff;
TGraphic* FOffBmp;
void __fastcall SetOnOff(const bool Value);
void __fastcall SetOffBmp(TGraphic* Value);
protected:
public:
__fastcall TDepImg(TComponent* Owner);
__published:
__property TGraphic* OffBmp = {read = FOffBmp, write = SetOffBmp};
__property bool OnOff = {read = FOnOff, write = SetOnOff};
}; |
Файл cpp
CODE |
static inline void ValidCtrCheck(TDepImg *)
{
new TDepImg(NULL);
}
//---------------------------------------------------------------------------
__fastcall TDepImg::TDepImg(TComponent* Owner)
: TGraphicControl(Owner)
{
}
//---------------------------------------------------------------------------
namespace Depimg
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TDepImg)};
RegisterComponents("Samples", classes, 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TDepImg::SetOnOff(const bool Value)
{
FOnOff = Value; // Set the state of FOnOff
if (FOnOff)
{
Canvas->Brush->Color = TColor(777777);
Canvas->Ellipse(0,0,TControl::Width, TControl::Height);
}
else
{
Canvas->Draw(0,0,FOffBmp);
}
}
//---------------------------------------------------------------------------
void __fastcall TDepImg::SetOffBmp(TGraphic* Value)
{
FOffBmp = Value;
} | |
|
Guest |
Отправлено: 07.07.2006, 09:04 |
|
Не зарегистрирован
|
Добавьте конструктор класса TDepImg и в нем задайте нначальные значения FOnOff и, главное, FOffBmp = NULL |
|
Xpyct |
Отправлено: 07.07.2006, 09:43 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 2
|
Ошибки вылазят после того как выбираю картинку, видимо вот из за этого фрагмента
CODE |
void __fastcall TDepImg::SetOffBmp(TGraphic* Value)
{
FOffBmp = Value;
}
|
Надо картинку хранить в самой программе, может можно как нить сделать через res файл и от туда грузить или я чегото недогоняю?)) |
|
Guest |
Отправлено: 07.07.2006, 12:25 |
|
Не зарегистрирован
|
Народ у кого Builder не Enterprise, может ктонить выложить пример создания стандартного компонента где есть открытие картинки в свойствах, например Image. |
|
AVC |
Отправлено: 07.07.2006, 12:41 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE (Guest @ 07/07/2006, 11:25) | Народ у кого Builder не Enterprise, может ктонить выложить пример создания стандартного компонента где есть открытие картинки в свойствах, например Image. |
Тут
|
|