powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание собственных компонентов в BCB5 пользовательские свойства
2 сообщений из 2, страница 1 из 1
Создание собственных компонентов в BCB5 пользовательские свойства
    #32359839
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Когда я пишу свойство типа перечисление так
enum TT_HorizontalAlignment {
xl_Hor_Left , xl_Hor_Right , xl_Hor_Center , xl_Hor_Justify
};
Все хорошо, а если так то в менеджер объектов названия значений для свойста выглядят фигней, непонятные значки, явно из не печатаемых с клавиатуры, плюс глюки с их количеством
enum TT_HorizontalAlignment {
xl_Hor_Left = 1 , xl_Hor_Right = 2, xl_Hor_Center =4, xl_Hor_Justify =8
};
2) Никак не могу создать коллекцию своих объектов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
class TExportColumn : public TCollectionItem {
protected:
 AnsiString FColumnTitle;
 int FColumnSize;
 TFormatDescriptor *FTitlesFormat;// ЭТО мой тип данных с ним все в порядке
// как отдельное свойство работает на ура, но как часть большой коллекции, увы
 TFormatDescriptor *FCellsFormat;
 AnsiString FFieldName;
 TCollection * m_parent;
public:

  __fastcall TExportColumn ( TCollection * parent , AnsiString FColumnTitle_1,
                  int FColumnSize_1,
                  TFormatDescriptor *FTitlesFormat_1,
                  TFormatDescriptor *FCellsFormat_1,
                  AnsiString FFieldName_1):
                  TCollectionItem (parent),
                  m_parent (parent)  ,
  FColumnTitle (FColumnTitle_1), FColumnSize (FColumnSize_1) ,  FTitlesFormat (new TFormatDescriptor),
  FCellsFormat (new TFormatDescriptor) , FFieldName (FFieldName_1) {
    *FTitlesFormat = *FTitlesFormat_1;
    *FCellsFormat= *FCellsFormat_1;
  }

  __fastcall TExportColumn (TCollection *parent):
  TCollectionItem (parent), m_parent (parent)  ,
  FColumnTitle ( "Undefined" ), FColumnSize ( 50 ) ,  FTitlesFormat (new TFormatDescriptor),
  FCellsFormat (new TFormatDescriptor) , FFieldName ( "Undefined" ) {
  }
  
  TPersistent __fastcall GetOwner(void){
     return m_parent;
  }
__published:
 __property   AnsiString ColumnTitle = {read=FColumnTitle, write=FColumnTitle};
 __property   int ColumnSize= {read=FColumnSize, write=FColumnSize};
 __property   TFormatDescriptor* TitlesFormat= {read=FTitlesFormat, write=FTitlesFormat};
 __property   TFormatDescriptor* CellsFormat= {read=FCellsFormat, write=FCellsFormat};
 __property   AnsiString FieldName= {read=FFieldName, write=FFieldName};

};

class TColumnsSet : public TCollection {
 TPersistent * parent_it;
public:
 TColumnsSet(TObject * Parent) : TCollection (__classid (TExportColumn) ) {
 }
 DYNAMIC TPersistent* __fastcall GetOwner(void){
  return parent_it;
 }

};

когда я в менеджере объектов пытаюсь просмотреть содержимое этой коллекции то получаю сообщение что
Invalid Selection: TColumnSet has no owner

3) Как писать деструкторы для компонентов которые выделяют для себя память,
у меня странное ощущение что BCB5 вызывает деструктор несколько раз.


______

Заранее спасибо, жду
...
Рейтинг: 0 / 0
Создание собственных компонентов в BCB5 пользовательские свойства
    #32360125
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) редактор свойства по умолчанию для типа перечисление исходит из предположения, что парачисление начинается с нуля и идет с шагом 1 и максимум меньше 32. Нужно иначе - пиши свой редактор свойства для такого перечисления.

2) Ну так пропиши ему овнера.

3) Аккуратнее быть. Или проблемный код в студию.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание собственных компонентов в BCB5 пользовательские свойства
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]