Использование TEdit
проблематично по нескольким причинам:
- Похоже, вы используете
TEdit
в качестве места для передачи данных из потока (использование обработчика события OnChange
заставляет меня думать, что требуется дополнительная обработка, TEdit
не используется как простая «область вывода»). Элементы GUI никогда не должны использоваться для хранения данных по бесчисленным причинам, начиная от производительности и заканчивая инкапсуляцией ООП и полагаясь на алгоритмы, не зависящие от вас.
- Опираясь на обработчик событий
OnChange
, который запускается при программном изменении текста, опирается на детали реализации TEdit
. Что если Microsoft решит не запускать событие OnChange
, если изменение было сделано программно? Или Embarcadero решает условно не показывать это, поскольку программисту не нужно уведомлять он только что изменил это значение?
Кроме того, использование Syncronize()
, вероятно, сработает, т. Е. «Вы можете его использовать», но я бы сказал, что это не очень хорошая идея. Я хотел бы предложить лучшее решение, но не могу этого сделать, потому что я точно не знаю, что вы пытаетесь сделать. Если все, что вы хотите сделать, это заставить OnChange
быть уволенным, сохраните ваш код.