Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.05 c
1-47475
PVR
2002-07-02 23:35
2002.07.15
IProperty bag


3-47078
AlexNG
2002-06-20 16:26
2002.07.15
Создание Lookup поля в runtime


1-47398
Andres
2002-07-02 15:52
2002.07.15
Перетаскивание элементов управления c рамкой контура


14-47767
Moscower
2002-06-13 02:07
2002.07.15
Как вы относитесь к экстремальному программированию?


3-47108
Wolverin
2002-06-21 11:30
2002.07.15
Просто БД





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