ASCII Symbole in Caption

Sucht nach bekannten Componenten und ersetzt die ASCII Zeichen aus Caption in Symbole. (Beispiel „$9655“)

procedure SymbolsToComponents(root: TComponent; Level: Integer);
var
i: Integer;
text : string;
p: PPropInfo; // System.TypInfo
begin
if GetPropInfo(root.ClassInfo, 'Caption') <> Nil then // (p <> nil) and (p^.setProc <> nil)
begin
text := GetStrProp(root, 'Caption' );
if Length(text) >= 5 then
begin
if text[1] = '$' then
SetStrProp(root, 'Caption', Char( $ + StrtoInt( Copy( text, 2, text.Length-1 )) ) );
end;
end;
// call LogComponent for owned components
for i := 0 to Root.ComponentCount - 1 do
SymbolsToComponents( Root.Components[i], Level + 1 );
end;

Aufruf:
SymbolsToComponents(Self, 0);

Schreibe einen Kommentar