|
Платные хостинги
Раскрутка сайта
Книги по программированию
Memo, Memo
- TMemo.onChange очевидно
- Видимо когда длина текущей строки становится больше клиентской области визуального компонента. Длину можно определить с помощью ф-ии TCanvas.TextWidth()
- Если нужно отследить вертикальную прокрутку, то тогда ещё легче.Нужно проверять когда кол-во строк превысит высоту в пикселях чем клиентская высота TMemo т.е. когда выполнится следующее условиеТ.к. шрифт у TMemo одинаков везде, тоWith Memo1 Do IF Height>(Canvas.TextHeight(Lines[0])+2)*Lines.Count then ScrollBars:=ssNone else ScrollBars:=ssVertical;Также видимо этот обработчик придётся вызывать и с TMemo.onKeyUp также.Помучайте этот кусочек кода.
- Очевидно запоминать TMemo.StartPos, а потом его восстанавливать.
- Да, конечно же я перепутал классы. Нужное нам свойство - это TMemo.SelStart а не StartPos Чтобы искупить вину от ошибки и предотвратить Вас от дальнейших экспериментов пишу Вам финальный код:Код procedure TForm1.Memo1Change(Sender: TObject);begin With TMemo(Sender) Do IF Length(Lines.Text)>0 then Begin Tag:=SelStart; IF ((Canvas.TextHeight(Lines[0])+2)*Lines.Count)>Height then ScrollBars:=ssVertical else ScrollBars:=ssNone; SelStart:=Tag; End;end;highlightSyntax('delphidiNTE1','delphi');Я дико извиняюсь, но у меня вопрос: а зачем Вам это понадобилось если TMemo сам делает появление скроллбаров или я что-то упустил в этой жизни ?
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|