Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.196.59] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте.
Создаю компонент на основе DBLookupComboBox такой, что при указании базы данных автоматически заполняется property "Список таблиц", содержащихся в БД. В связи с этим возникли следующие вопросы: 1. как скрыть свойство ListSource (оно объявлено в TDBLookupControl, родительском для TDBLookupComboBox)? 2. что может быть не так прописано, если в Design-time комбобокс заполняется как и задумано, а при запуске приложения значения в комбобоксе не отображаются? Прикреплённый файлDBLookupComboBoxExt.rar (1,5 Кбайт, скачиваний: 247) |
Сообщ.
#2
,
|
|
|
type TDBLookupComboBoxExt = class(TDBLookupComboBox) private fListSourceTable: TADODataSet; fDataSource: TDataSource; function GetADOConnection: TADOConnection; procedure SetADOConnection(const value: TADOConnection); published constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ADOConnection: TADOConnection read GetADOConnection write SetADOConnection; end; implementation { TDBLookupComboBoxRun } constructor TDBLookupComboBoxExt.Create(AOwner: TComponent); begin inherited Create(AOwner); fListSourceTable := TADODataSet.Create(Self); fDataSource := TDataSource.Create(Self); fDataSource.DataSet := fListSourceTable; ListSource := fDataSource; end; destructor TDBLookupComboBoxExt.Destroy; begin fDataSource.Free; fListSourceTable.Free; inherited Destroy; end; function TDBLookupComboBoxExt.GetADOConnection; begin Result := fListSourceTable.Connection; end; procedure TDBLookupComboBoxExt.SetADOConnection(const value: TADOConnection); begin if ADOConnection = Value then Exit; fListSourceTable.Close; fListSourceTable.Connection := Value; if Assigned(Value) then try Value.OpenSchema(siTables, EmptyParam, EmptyParam, fListSourceTable); DataField := 'TABLE_NAME'; KeyField := 'TABLE_NAME'; finally end; end; |