Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Вниз

Создание собственных редакторов свойств 


Сатир   (2002-04-09 16:19) [0]

Народ, посоветуйте, как добавить к компоненту редактор свойств, ну хотя бы, простенький такой, как Memo для Caption у Label"a или Hint. Нашел в книжке пример, но зря. Что-то они там не договаривают. Если кого интересует исходник из этой книжки, могу показать:
type THintProperty = class(TStringProperty)
public
function GetAttributes: TPropertyAttributes; override;
function GetValue: String; override;
procedure Edit; override;
end;


procedure Register;

implementation

function THintProperty.GetAttributes: TPropertyAttributes;
begin
Result:=inherited GetAttributes +[paDialog, paReadOnly];
end;

function THintProperty.GetValue: string;
var i:byte;
begin
Result:=inherited GetValue;
for i:=1 to Byte(result[0]) do
if result[i]<#32 then result:=">";
end;

procedure THintProperty.Edit;
var HintEditDlg: TStrEditDlg;
s:string;
begin
HintEditDlg:=TStrEditDlg.Create(Application);
with HintEditDlg do
try
Memo.MaxLength := 254;
s:=GetStrValue+#0;
Memo.Lines.SetText(@s[1]);
UpdateStatus(nil);
ActiveControl :=Memo;
If ShowModal = mrOK then begin
s:=StrPas(Memo.Lines.GetText);
if s[0]>#2 then Dec(Byte(s[0]),2);
SetStrValue(s);
end;
finally
Free;
end;
end;

procedure Register;
begin
RegisterPropertyEditor(TypeInfo(String), TControl, "Hint", THintProperty);
end;

Классы TStringProperty и TPropertyAttributes компилятор не находит, а где они объявлены в книжке не сказано. И если всё-таки кому-то удастся понять и откомпилировать этот код, тогда сразу вопрос на засыпку: Мне нужно создать такое же свойство под названием Source, в которое будет загружаться XML-файл, который будет пропускаться через XML-парсер. Так вот. Вопрос, как свойство Source объявить в виде такого редактора, код которого приведен выше?



Игорь Шевченко   (2002-04-09 17:14) [1]

День добрый,

Классы TStringProperty и TPropertyAttributes объявлены в dsgnintf

В Delphi\Source\Property Editors есть масса полезных примеров :-)

С уважением,




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.024 c
1-69873           ymin                  2002-04-09 11:21  2002.04.22  
Как проще всего распечатать StringGrid? Кстати она помещается на.


6-69954           Turalyon              2002-02-11 16:49  2002.04.22  
Проблеммы с Socket


1-69812           Dimaiv                2002-04-09 18:43  2002.04.22  
Что такое файлы с призвольным доступом и как с ними работать?


7-70042           kirya85               2002-01-17 22:29  2002.04.22  
Как програмно узнать сколько занимает памяти чужое приложение?


7-70036           __Dima                2001-10-24 12:30  2002.04.22  
Защита программы