Вниз
Скачать: CL | DM;

Народ, как создать перечесляемый тип, для своего компанента?   Найти похожие ветки 

← →
dimonf ©   (2003-04-14 16:39) [0]

Пока только доперло, как сделать перечесляемый тип только по умолчанию:
type
TDrive = (frAA, frBB);

TdvDriveComboBox = class(TCustomComboBox)
private
FDrive: TDrive;
procedure SetDrive(const Value: TDrive);
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Drive: TDrive read FDrive write SetDrive;
end;
А как сделать, то же самое но только в run time, например при создании компанента определить список доступных на данной машине дисков и отобразить все этов инспекторе объектов???


← →
Skier ©   (2003-04-14 16:44) [1]

1) Наверное всё-таки нужен не перечислимый тип, а множество
type
TDrive = (frAA, frBB);
TDrives = set of TDrive
2)

> например при создании компанента определить список доступных
> на данной машине дисков и отобразить все этов инспекторе
> объектов???

В конструкторе...




← →
malkolinge ©   (2003-04-14 16:55) [2]

Ж) Не катит...Сколько дисков теоретически заранее не известно, поэтому надо обычный список TstringList(?) И к нему изобрести толковый редактор свойств


← →
dimonf ©   (2003-04-14 17:07) [3]

Народ, как это сделать??? Может намекнете хотябы, в какую сторону копать...


← →
dimonf ©   (2003-04-14 17:09) [4]

Мне надо сделать типа как в TTable.TableName - выподающий список таблиц. Тоже самое. Пытаюсь вьехать, но там слишком круто наворочено, может кто намекнет как сделать попроще!


← →
malkolinge ©   (2003-04-14 17:17) [5]


> Мне надо сделать типа как в TTable.TableName

Редактор свойств. Обычный редактор свойств. Все что я сказал раньше, плюс посмотри как это в самом Тейбле сделано:

TTableNameProperty = class(TDBStringProperty)
public
function AutoFill: Boolean; override;
procedure GetValueList(AList: TStrings); override;
end;

procedure TTableNameProperty.GetValueList(AList: TStrings);
const
Masks: array[TTableType] of string[5] = ("", "*.DB", "*.DBF", "*.DBF", "*.TXT"); { Do not localize }
begin
with GetComponent(0) as TTable do
DBSession.GetTableNames(DatabaseName, Masks[TableType],
TableType = ttDefault, False, AList);
//в твоем случае на єтом месте надо вставить свой код для получения списка дисков
end;






Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-76872
Вадим
2003-04-12 01:29
2003.04.24
плавная прокрутка в TRichEdit


14-77101
Дмитрий К.К.
2003-04-07 06:11
2003.04.24
Именинники 7 апреля


3-76762
nvalery500
2003-04-08 15:13
2003.04.24
Соединение с удаленной БД из приложения


1-77020
Саня
2003-04-12 08:43
2003.04.24
Как обработать кнопку Help


7-77176
OxOTHuK
2003-03-05 22:03
2003.04.24
TRegistry.RootKey:=???




   Наверх