Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Вопрос по компонентам, точнее по созданию редактора свойств.   Найти похожие ветки 

 
Ig ©   (2004-05-02 10:00) [0]

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

Где-то нашел такой пример:

Uses .....,TypInfo,DesignIntf,

public
 {  function getattributes: TPropertyattributes; override;
   procedure Edit; override;  }

procedure Register;
begin
 RegisterPropertyEditor(Typeinfo(String),
 TMyComponent, "Filename", TFileNameProperty);
end;

Procedure TFilenameProperty.edit;
var
 MFileOpen: TOpenPictureDialog;
begin
 MFileOpen := TOpenPictureDialog.Create(Application);
 MFileOpen.Filename := GetValue;
 MFileOpen.Filter := "BMP|*.bmp";
 MFileOpen.Options := MFileOpen.Options + [ofPathMustExist,ofFileMustExist];
 try
   if MFileOpen.Execute then
     SetValue(MFileOpen.Filename);
 finally
   MFileOpen.Free;
 end;
end;

Даже проверить работает или нет не получилось, так как пишет ошибку: "File not found: "DesignIntf.dcu""
Может этот файл надо где-то отдельно брать, подскажите пожалуйста, а то прописывать каждый раз ручками путь до файла как-то напрягает :(


 
Ig ©   (2004-05-02 10:13) [1]

Все, что хотел уже сделал, но по другому, так, что вопрос все еще открыт.
P.S. DsgnIntf-тоже пробовал, результат тот же, а точнее результата вообще нет.


 
Юрий Зотов ©   (2004-05-02 10:32) [2]

1. Правильно - DsgnIntf.
2. Чтобы редактор свойства поднимал диалог, надо заместить в нем методы GetAttributes (включить paDialog) и Edit. Второе Вы уже сделали, осталось первое. Детали см. в справке.


 
Ig ©   (2004-05-02 10:52) [3]

function TFileNameProperty.GetAttributes;
begin
 Result := [paDialog];
end;
что-то я это пропустил.
DsgnIntf -я же говорю тоже не находит :(


 
Юрий Зотов ©   (2004-05-02 11:13) [4]

Какая версия Delphi? Если 6 и выше, то DesignEditors.

А вообще - кто мешает сделать поиск по каталогу Delphi/Source (включая подкаталоги) файлов *.pas со строкой:
TPropertyEditor = class

Или просто заглянуть в справку - там ведь тоже для каждого класса его юнит указан.


 
Ig ©   (2004-05-02 14:59) [5]

Вообще-то у меня Delphi7.
т.е. надо только добавлять DesignEditors?
DesignEditors - "File not found";
Может у меня копия Delphi левая :(
Интересно, а вообще, где все это дело лежит, папку Lib Я просмотрел, такого не имеется..


 
P.N.P. ©   (2004-05-02 15:04) [6]

Delphi\Source\Property Editors\


 
P.N.P. ©   (2004-05-02 15:05) [7]

Ой..
правильный путь -
Delphi\Source\ToolsAPI\


 
Ig ©   (2004-05-02 15:15) [8]

Нашел(Delphi\Source\ToolsAPI\DesignIntf), но понять не пойму почему Delph"я выдает такую ошибку?
Может надо, что-то сделать, что бы она увидела этот файл?


 
P.N.P. ©   (2004-05-02 15:28) [9]

Надо добавть путь Delphi\Source\ToolsAPI\
в Library Path
(главное меню дельфи -Tools->Environment Options->Library->Library Path)


 
Ig ©   (2004-05-02 15:42) [10]

теперь показывает чтот нет "Proxies" в DesignEditors"...


 
Rouse_ ©   (2004-05-02 15:47) [11]

http://delphimaster.net/view/1-1083251231/


 
Anatoly Podgoretsky ©   (2004-05-02 16:03) [12]

http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N144


 
Юрий Зотов ©   (2004-05-02 16:40) [13]

> Ig ©   (02.05.04 15:42) [10]

1. Разбейте пакет на 2: run-time и design-time. Во втором - все, что относится ТОЛЬКО к design-time (процедура Register, ресурсы иконок компонентов, редакторы свойств и компонентов...). Соответственно, в первом - все остальное (сами компоненты и пр.). Любые модули второго пакета имеют право ссылаться на любые модули из первого, но никакой модуль из первого ни в коем случае не должен ссылаться ни на один модуль из второго.

2. Откомпилируйте первый пакет в каталог, доступный через пути поиска. Инсталлировать его в IDE не нужно

3. В секцию Requires второго пакета добавьте DCP первого пакета и DesignIDE.dcp.

4. Инсталлируйте в IDE второй пакет.



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

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

Наверх




Память: 0.5 MB
Время: 0.049 c
3-1083326791
Mister
2004-04-30 16:06
2004.05.23
MySQL


1-1084178462
X-Disa
2004-05-10 12:41
2004.05.23
Список файлов


14-1083162411
Delphist
2004-04-28 18:26
2004.05.23
Где взять свежию версию RxLib?


14-1083261184
Verg
2004-04-29 21:53
2004.05.23
Favorit или favourite?


1-1084203611
Reals
2004-05-10 19:40
2004.05.23
Нужно убрать ScrollBar у компонента ListView