Я реализовал саморазвивающуюся TMemo как хороший пример LiveBindings (один из немногих полезных примеров, которые я мог бы придумать для LiveBindings в VCL).
Цитата из моего учебного руководства по Delphi XE2 Development Essentials:
"Чтобы построить этот пример, поместите компонент TMemo в форму VCL, откройте свойство LiveBindings и выберите параметр« New LiveBinding ». Выберите вариант TBindExpression. Откройте BindExpressionMemo11 в Инспекторе объектов и установите SourceComponent для Memo1 и SourceExpression в Lines.Count * 22.
Чтобы получить лучший результат во время выполнения, установите SourceExpression на более точное выражение
Размер шрифта - 4 + (количество строк + 1) * -1 * (высота шрифта - 3)
Наконец, в обработчике события OnChange TMemo напишите одну строку кода:
BindingsList1.Notify (Отправитель, '');
Вот и все. Скомпилируйте и запустите, чтобы увидеть растущую заметку в действии.
[скриншот]
Изначально элемент управления TMemo будет иметь высоту в две строки (строку с содержимым и следующую строку), и всякий раз, когда мы нажимаем клавишу ввода или перенос слов, мы переносим нас на следующую строку, элемент управления TMemo будет увеличиваться по высоте (растет на самом деле, поэтому убедитесь, что в форме достаточно места для расширения TMemo). "
Groetjes, Боб Сварт