Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 1.368 c
1-1084265286
webAve
2004-05-11 12:48
2004.05.23
Мастера! Помогите решить проблему:


8-1078386440
Димон
2004-03-04 10:47
2004.05.23
Сохранение в Image


1-1083826990
GAlexis
2004-05-06 11:03
2004.05.23
Можно ли организовать SMS рассылку из программы Delphi?


3-1082722616
}|{yk
2004-04-23 16:16
2004.05.23
Триггер. Не записівается в блоб-поле


8-1076917382
SergeySA
2004-02-16 10:43
2004.05.23
Принадлежит ли точка области (полигону)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский