![]() |
![]() ![]() ![]() ![]() |
|
Как выяснить имеет ли объект определённое свойствоDelphi , Компоненты и Классы , RTTIАвтор: http://www.lmc-mediaagentur.de
function hasprop(comp: TComponent; const prop: string): Boolean;
var
proplist: PPropList;
numprops, i: Integer;
begin
result := false;
getmem(proplist, getTypeData(comp.classinfo)^.propcount * Sizeof(Pointer));
try
NumProps := getproplist(comp.classInfo, tkProperties, proplist);
for i := 0 to pred(NumProps) do
begin
if comparetext(proplist[i]^.Name, prop) = 0 then
begin
result := true;
break;
end;
end;
finally
freemem(proplist, getTypeData(comp.classinfo)^.propcount * Sizeof(Pointer));
end;
end;
procedure setcomppropstring(comp: TComponent; const prop, s: string);
var
proplist: PPropList;
numprops, i: Integer;
begin
getmem(proplist, getTypeData(comp.classinfo)^.propcount * Sizeof(Pointer));
try
NumProps := getproplist(comp.classInfo, tkProperties, proplist);
for i := 0 to pred(NumProps) do
begin
if (comparetext(proplist[i]^.Name, prop) = 0) and
(comparetext(proplist[i]^.proptype^.name, 'string') = 0 then
begin
setStrProp(comp, proplist[i], s);
break;
end;
end;
finally
freemem(proplist, getTypeData(comp.classinfo)^.propcount * Sizeof(Pointer));
end;
end;
Привет! Я переведу текст на русский язык. Код написан на языке программирования Delphi и используется для проверки, имеет ли объект определенное свойство (также называемое атрибутом или полем), а также для установки значения этого свойства. Вот подробное описание того, что делает каждый участок кода: Функция Эта функция проверяет, имеет ли объект (
Процедура Эта процедура устанавливает значение свойства с данным именем (
Эти процедуры могут быть использованы в вашем программе Delphi для динамической проверки и установки свойств объектов на этапе выполнения. Например: В этом примере В статье рассмотрен алгоритм определения наличия у объекта конкретного свойства с помощью функции hasprop и процедуры setcomppropstring, написанных на языке Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||