Есть такая процедура, function DelAmp(const Text: string): string; в FMX.Types.
Которая 2 раза выделяет память для всей строки, и сканирует все символы в строке, в поисках &.
TLabel.Text := 'Text'; - эта процедура выполнится 2 раза, на любой платформе. Чтобы она выполнилась 1 раз, нужно сделать
TLabel.PrefixStyle := TPrefixStyle.NoPrefix;
TText
TText.Text := 'Text'; Процедура DelAmp выполниться в любом случае на любой платформе
procedure TText.SetText(constValue: string);[..]
begin
ifText<>Value then
begin
NewText:=ConvertText(DelAmp(Value));[..]
Стили состоят из множества TText элементов. Теперь представьте сколько ресурсов тратиться впустую.
function DelAmp(constText: string): string;
var
I, J:Integer;Sb:TCharArray;
begin
Result:='';ifText<>'' then
begin
SetLength(Sb,Text.Length);
I :=Low(Text);
J :=0;while I <=High(Text)do
begin
if(Text[I]<>'&') then
begin
Sb[J]:=Text[I];Inc(J);
end
else
begin
if((I <High(Text)) and (Text[I +1]='&')) then
begin
Sb[J]:=Text[I];Inc(J);Inc(I);
end;
end;Inc(I);
end;Result:= string.Create(Sb,0, J);
end;
end;
Решение - скопировать FMX.Types в папку с проектом, и переделать функцию на:
function DelAmp(constText: string): string;
begin
Result:=Text;
end;
Вопрос
ENERGY
Есть такая процедура, function DelAmp(const Text: string): string; в FMX.Types.
Которая 2 раза выделяет память для всей строки, и сканирует все символы в строке, в поисках &.
TLabel.Text := 'Text'; - эта процедура выполнится 2 раза, на любой платформе. Чтобы она выполнилась 1 раз, нужно сделать
TLabel.PrefixStyle := TPrefixStyle.NoPrefix;
TText
TText.Text := 'Text'; Процедура DelAmp выполниться в любом случае на любой платформе
Стили состоят из множества TText элементов. Теперь представьте сколько ресурсов тратиться впустую.
Решение - скопировать FMX.Types в папку с проектом, и переделать функцию на:
Ссылка на комментарий
0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.