Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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 есть масса полезных примеров :-)

С уважением,




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

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

Наверх





Память: 0.45 MB
Время: 0.007 c
3-69745
IronHawk
2002-03-29 15:48
2002.04.22
Приветствую Мастеров ! Как удалять одинаковые строки в базе?


4-70057
SZap
2002-02-17 17:19
2002.04.22
Как вызвать окно Обзор Папок


1-69810
VictorT
2002-04-09 17:47
2002.04.22
Консольное приложение


1-69922
yennifaire
2002-04-09 18:41
2002.04.22
Как правильно использовать функцию power?


1-69894
ghost_by
2002-04-09 13:38
2002.04.22
Размеры TMenuItem?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский