Форум: "Основная";
Поиск по всему сайту: 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.019 c
3-69741           Reals                 2002-04-01 17:46  2002.04.22  
Нужно вывести список существующих таблиц в базе.


1-69851           heruvim4ik            2002-04-08 20:52  2002.04.22  
Разноцветный текст вили TRichEdit ещё гденть.


3-69662           Zombie                2002-04-03 07:11  2002.04.22  
Как избавиться от временных файлов Query???


1-69828           kserg@ukr.net         2002-04-10 17:12  2002.04.22  
Можно ли в Паскале создавать макроподстановки?


7-70053           petyun                2002-01-21 14:43  2002.04.22  
внешнее устройство