Свойство FileName в невизуальном компоненте
Следующий код взят из dsgnintf.pas (иногда стоит покопаться в файлах!) для свойства TMPLayer.filename, с помощью C.Calvert..
В заголовке модуля компонента...
TFileNameProperty = class (TStringProperty) public function getattributes: TPropertyattributes; override; procedure Edit; override; end; |
добавьте функцию регистрации...
RegisterPropertyEditor(Typeinfo(String), TMyComponent, 'Filename', TFileNameProperty); |
и код...
function TFileNameProperty.GetAttributes; begin Result := [paDialog]; end; Procedure TFilenameProperty.edit; var MFileOpen: TOpenDialog; begin MFileOpen := TOpenDialog.Create(Application); MFileOpen.Filename := GetValue; MFileOpen.Filter := 'Правильный тип файлов|*.*'; (* Поместите здесь ваш собственный фильтр...*) MFileOpen.Options := MFileOpen.Options + [ofPathMustExist,ofFileMustExist]; try if MFileOpen.Execute then SetValue(MFileOpen.Filename); finally MFileOpen.Free; end; end; |
Далее: Синтаксис ссылки на событие »»