Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Свойство 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;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay