![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Найти свойство по имени
Ш-К © (2004-06-18 09:48:00)У меня есть св-во от TPersistent. Как мне получить его, если я знаю только имя?
Что-то типа:
function FindObjectProp(AInstance: TPersistent; AFindName: string): TPersistent;
DieHard (2004-06-18 13:16:00) [1]Что за имя такое у свойства 'Columns[2]'?
Что в объявлении класса написано? 'Columns'
Amoeba (2004-06-18 12:33:00) [2]
> Ш-К (18.06.04 12:25) [5]
> Тогда поднимаю вопрос.
> Если свойство не Published, что - кирдык?
Ага! Именно что кирдык. В RTTI есть информация только о Published свойствах.
Ш-К (2004-06-18 12:25:00) [3]Тогда поднимаю вопрос.
Если свойство не Published, что - кирдык?
SetPropValue(ListView1.Columns[2], 'Caption', 'aaaaa');
Выполняется же и с паблик св-вом. А мне-то надо всего чтобы:
SetPropValue('ListView1.Columns[2]', 'Caption', 'aaaaa');
Amoeba (2004-06-18 11:58:00) [4]С-во должно быть Published и класс должен быть зарегистрирован.
Подобный вопрос рассматривался в форуме на днях.
Ш-К (2004-06-18 10:45:00) [5]Делаю следущее:
ListView1.Columns.Clear;
ListView1.ViewStyle := vsReport;
ListView1.Columns.Add.Caption := '11111';
ListView1.Columns.Add.Caption := '22222';
ListView1.Columns.Add.Caption := '33333';
TypInfo.SetPropValue(ListView1.Columns[2],
'Caption', 'aaaaa');
Все работает.
Хочу найти св-во Columns[2] по имени:
procedure TForm1.Button3Click(Sender: TObject);
var
Propinfo: PPropInfo;
AInstance: TPersistent;
begin
Propinfo := GetPropInfo(ListView1.ClassInfo, 'Columns[2]');
if Propinfo <> nil then
AInstance := TPersistent(GetOrdProp(ListView1, PropInfo));
....
end;
Не могу найти - Propinfo всегда nil.
Как получить PPropinfo от 'Columns[2]'?
Собственно, мне надо устанавливать св-ва для TCollectionItem.
Гаврила (2004-06-18 09:52:00) [6]только для Published свойств
unit TypInfo;
function GetStrProp(Instance: TObject; const PropName: string): string;
{для строкового свойства, для других типов - функции там же }
Skier (2004-06-18 09:50:00) [7]TypInfo.pas