Netspirit писал(а):
То-есть, когда изменение строки, полученной по ReadString недопустимо (в каких случаях одна и та же TData используется в нескольких компонентах)?Думаю, что win-ХАК недопустим вообще.
Мы же работаем "из гарантий". По крайней мере - должны.
Ну вот, например
#pas
procedure THIStrMask._work_doCompare;
var sstr,str,msk:string;
begin
sstr := ReadString(_Data,_data_Str);
str := sstr+#1;
msk := _prop_Mask+#1;
if (_prop_CaseSensitive = 1) then begin
CharLower(PChar(str));
CharLower(PChar(msk));
end;
......
Хотя, наверняка - есть какая-нибудь функция из System...
А теперь предположим, что нет у нас еще элементов, которые поймали бы этот win-ХАК.
Типа, протестировали -- ай-ай-ай как все хорошо!
Вот именно такой подход и есть "радиолюбительство"...
Профессионально: достаточно увидеть отсутствие ГАРАНТИЙ того, что кто-то, когда-нибудь не использует повторно такую строку.
И не надо даже искать - есть уже такие элементы, или нет. Это не очень-то и важно.
В Инженерной культуре это называется: "Не планируй себе проблемы. Попробуй сначала справиться с теми, которые возникнут и без твоего планирования"