Главная страница
    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.011 c
4-47864
Rn
2002-05-10 07:51
2002.07.15
формат ресурсов


1-47389
Gari
2002-07-02 13:45
2002.07.15
Работа с DispInterface


1-47364
Dmk
2002-07-02 05:15
2002.07.15
Как узнать указатель на функцию?


1-47347
mihrutka
2002-07-01 15:41
2002.07.15
Удаление макровов из ворд документа


14-47789
Виктор
2002-06-15 14:56
2002.07.15
Посоветуйте, чем создавать help-файлы по компонентам Delphi





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