Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.24;
Скачать: 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 вся ветка

Текущий архив: 2003.04.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
7-77208
Stdnet
2003-02-20 16:32
2003.04.24
DrawGrid


1-76960
Alex-21
2003-04-09 20:03
2003.04.24
MaxLength


9-76748
GameBoy
2002-11-25 20:45
2003.04.24
Продукция


1-76970
race1
2003-04-13 09:34
2003.04.24
Странное поведение памяти ( кушание больше меры )


3-76789
Weare
2003-04-04 13:34
2003.04.24
Сохранение всех изменений в таблице и их отмена.