Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизTypInfo.pas - недокументированные возможности Найти похожие ветки
← →
Igorek (2002-06-24 23:43) [0]Может у кого-то есть описание методов этого модуля?
Заранее благодарен.
---
"Я ему про Фому, а он мне про Ерему".
← →
Viewer (2002-06-25 00:09) [1]Так ведь *.pas читабелен.
Или ?
← →
Юрий Зотов (2002-06-25 00:27) [2]Там нет методов, там одни процедуры и функции. Описания действительно не нужно, и без него все прозрачно. Что конкретно интересует?
← →
Igorek (2002-06-25 09:06) [3]Большое спасибо откликнувшимся.
> Там нет методов, там одни процедуры и функции
Вот я и называю их одним словом - методы. (в С++ просто - это все функции, а в Вашем Паскале немного непонятно ;-))
Или методы - это только члены класса? Если неправ - поправьте.
Действительно там много чего и так видно.
Но конкретно есть задача такого плана:
Есть два обьекта неизвестных типов - А и Б. Есть даже два указателя типа PPropInfo на свойства с одинаковым именем в этих обьектах (также подразумевается их одинаковый тип).
Надо скопировать значение свойства из А в Б.
В TypInfo.pas я нашел только специализированные функции типа SetStrProp для отдельного типа свойства (или для свойств, которые имеют строчное представление для ObjectInspector"a). Также есть какая то функция SetObjectProp. Т.е. должна быть или универсальная функция для такой задачи, или надо писать свою, где анализирвать TypeKind, и вызывать специализированные.
Но точно я пока их работы не понял (уперся в asm вставки, а в нем я дуб-дубом).
---
"Я ему про Фому, а он мне про Ерему".
← →
MBo (2002-06-25 09:39) [4]procedure TForm1.Button1Click(Sender: TObject);
var
propinfo:ppropinfo;
begin
//для простых свойств
SetPropValue(Label2, "Color", GetPropValue(Label1,"Color"));
SetPropValue(Label2, "Caption", GetPropValue(Label1,"Caption"));
propinfo:=GetPropInfo(label1,"FocusControl");
if propinfo.PropType^.Kind=tkClass then
SetObjectProp(Label2,"FocusControl",
GetObjectProp(Label1,"FocusControl",TPersistent));
propinfo:=GetPropInfo(label1,"OnClick");
if propinfo.PropType^.Kind=tkMethod then
SetMethodProp(Label2,"OnClick",
GetMethodProp(Label1,"OnClick"));
label1.caption:="q";
end;
procedure TForm1.Label1Click(Sender: TObject);
begin
showmessage(TLabel(Sender).name+" Clicked");
end;
← →
Igorek (2002-06-28 11:38) [5]2MBo
Большое спасибо за ответ.
Хотелось бы еще что-то типа таблички.
"TypeKind - GetProcName - SetProcName" для всех TypeKind.
А то функций там побольше.
---
"Я ему про Фому, а он мне про Ерему"
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c