Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание компонента. Нужна помощь(идея)

9.1K
16 ноября 2004 года
cher_s
1 / / 16.11.2004
Ребята суть просьбы в том, что есть DBLookupComboBox - не очень удобный.Полазил по инету и нашел много вской инфы в часности VDComboBoxDB.Все что прочитал соединили нашел в компонетн VDComboBoxDB. На основе TComboBox - создаю новй компонент.
Далее при создании формы VDComboBoxDB1->Zapoln();(данные заносятся в Items) при изменении(VDComboBoxDB1Change) текста Label3->Caption=VDComboBoxDB1->DataID;
Отличе которые получились - это возможность набирать в ->Text,
- откуда берет данные DataSource - закрыт.
Но при скролинге таблиц пришлось описать функцию Label2->Caption=VDComboBoxDB1->Sckroll();

Буду рад замечаниям.

class PACKAGE TVDComboBoxDB : public TComboBox
{
private:
TFieldDataLink *FListLink; //связь с полем, отображаемым в списке
TFieldDataLink *FIDLink_List; // связь с полем идентификатора таблицы (IdAsort, IdVidIzd)
int FIdent; //значение идентификатора таблицы
AnsiString __fastcall GetListField(void); //функция получения имени отображаемого поля таблицы
AnsiString __fastcall GetIDField(void); // функция получения имени поля идентификатора таблицы
TDataSource *__fastcall GetListSource(void); //функция получения источника данных
void __fastcall SetListField(AnsiString aValue); //функция установки имени отображаемого поля таблицы
void __fastcall SetIDField(AnsiString aValue); // функция установки имени поля идентификатора таблицы
void __fastcall SetListSource(TDataSource *pValue); //функция установки источника данных
TField *__fastcall GetField(void); //связь с полем, отображаемым в списке
int __fastcall GetID(void); //функция получения идентификатора


WORD lastKey;
TFieldDataLink *FDataLink; //связь с полем
AnsiString __fastcall GetDataField(void);
TDataSource *__fastcall GetDataSource(void);
void __fastcall SetDataField(AnsiString aValue_D);
void __fastcall SetDataSource(TDataSource *pValue_D);
void __fastcall DataChange(TObject *Sender);
TField *__fastcall GetDField(void); //связь с полем, отображаемым в списке



protected:
DYNAMIC void __fastcall Change(void); //действия при выборе из списка

public:
__fastcall TVDComboBoxDB(TComponent* Owner);
__fastcall ~TVDComboBoxDB(void);
__property TField *Field={read=GetField}; //свойство - поле данных таблицы
__property TField *FieldN={read=GetDataField}; //свойство - поле данных таблицы
void __fastcall Zapoln(void); //функция заполнения списка данными (из-за которой собственно и весь сыр-бор :-))
__property int DataID={read=GetID}; //свойство - идентификатор таблицы
void __fastcall NKeyDoun(Word &Key);
int __fastcall Sckroll(void);


__published: //свойства, которые мы определяем для получения данных

__property AnsiString ListField={read=GetListField, write=SetListField, nodefault};
__property AnsiString ListIDField={read=GetIDField, write=SetIDField, nodefault};
__property TDataSource *ListSource={read=GetListSource, write=SetListSource, nodefault};

__property AnsiString DataField={read=GetDataField, write=SetDataField, nodefault};
__property TDataSource *DataSource={read=GetDataSource, write=SetDataSource, nodefault};


};
//---------------------------------------------------------------------------
#endif
X)-
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог