Советы по Delphi


              

Свойство 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;

[001519]



Содержание  Назад  Вперед