Valery_52 |
Отправлено: 31.01.2005, 08:58 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 25
|
Builder 6.
Желаю создать компонент TABC.
Этот компонент имеет свойство (поле с именем NAB),
тип char или лучше AnsiString.
Это свойство может принимать три значения:
DNAbc[0]="ABC"; DNAbc[1]="BCD",DNAbc[2]="CDE".
Необходимо, чтобы эти значения присутствовали в свойствах
инспектора объектов.NAB имеет значение по умолчанию ="ABC".
Инициализацию провожу в модуле .cpp
//---------------------------------------------------------------------------
__fastcall TABCD::TABCD(TComponent* Owner)
: TComponent(Owner)
{
DNAbc[0] = "ABC";
DNAbc[1] = "BCD";
DNAbc[2] = "CDE";
}
//---------------------------------------------------------------------------
Модуль .h выглядит так:
#ifndef ABCDH
#define ABCDH
//---------------------------------------------------------------------------
#include
#include
//---------------------------------------------------------------------------
class PACKAGE TABCD : public TComponent
{
private:
static int i;
static char FNAB;
static char *DNAbc[];
protected:
public:
__fastcall TABCD(TComponent* Owner);
__property char NAB*DNAbc = { read=FNAB, write=FNAB, index=i,
default="ABC" };
__published:
};
//---------------------------------------------------------------------------
#endif
Компилятор выдает ошибку , или требует
инициализации DNAbc, не принимает значение по дефолту.
Как мне создать значение по умолчанию типа char или AnsiString,
поместить значения DNAbc[] в инспектор объектов? Где в вышеприведенном коде ошибки?
Прошу пожалуста подскажите. |
|
AVC |
Отправлено: 31.01.2005, 09:26 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Определите это свойство как enum. |
|
Valery_52 |
Отправлено: 31.01.2005, 15:58 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 25
|
Прошу прощения, а в кодах как это будет выглядеть в кодах ? |
|
AVC |
Отправлено: 31.01.2005, 16:33 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Типа так
CODE |
В зависимости от использования в одном или разных файлах
enum TBmpMode {tbColor, tbTile, tbStretch, tbProportion};
class PACKAGE TTileBmp : public TGraphicControl
{
private:
TBmpMode FBmpMode;
void __fastcall SetBmpMode (const TBmpMode);
protected:
public:
__published:
__property TBmpMode BmpMode = {read = FBmpMode, write = SetBmpMode, default = tbTile};
};
использование
if (mode == tbTile) ...
...
|
Инспектор покажет список из tbColor / tbProportion / tbStretch / tbTile
Отредактировано AVC — 31/01/2005, 16:38 |
|
Valery_52 |
Отправлено: 01.02.2005, 10:55 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 25
|
Спасибо за подсказку, попробую сделать. |
|