В Delphi содержится компонент, который позволяет загружать автоматический текст прокрутки с db, например, на новостных сайтах?
Tt для приложения delphi 7 и требуется вертикальная прокрутка.
В Delphi содержится компонент, который позволяет загружать автоматический текст прокрутки с db, например, на новостных сайтах?
Tt для приложения delphi 7 и требуется вертикальная прокрутка.
Ни одно из этих решений для прокрутки не работало для меня в заметке RichEdit. Использование Delphi 2010 + w7. Но это прекрасно работает:
После каждого Lines.Add('...')
это следует:
SendMessage(RichEditMemo.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
Найдено в: http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_10120212.html
Для такой простой задачи вам не нужно покупать коммерческий компонент! Все, что вам нужно сделать, это отправить сообщение EM_LINESCROLL этому элементу управления записью, чтобы оно прокручивалось до последней строки:
procedure ScrollToLastLine(Memo: TMemo);
begin
SendMessage(Memo.Handle, EM_LINESCROLL, 0,Memo.Lines.Count);
end;
Если ваша заметка доступна только для чтения пользователям и автоматически обновляется приложением, вы можете поместить вызов вышеуказанной процедуре в обработчик событий OnChange, чтобы всякий раз, когда текст внутри заметки был изменен, она автоматически прокручивается до последней строки.
Возможно, чтобы сэкономить вам немного денег, вы можете адаптировать это для прокрутки DBMemo:
EchoMemo.Lines.Add('A Line of text or more');
EchoMemo.SelStart := EchoMemo.GetTextLen;
EchoMemo.SelLength := 0;
EchoMemo.ScrollBy(0, EchoMemo.Lines.Count);
EchoMemo.Refresh;
Я использую для отображения журнала.
Вы также можете использовать Memo.GoToTextEnd;
, если это необходимо, например, внутри события onchange. Не является правильным эффектом автопрокрутки, но может быть полезен в подобных ситуациях.
Если вы работаете с компонентами DevExpress, вы должны использовать InnerControl-> Handle, поэтому он должен выглядеть следующим образом:
SendMessage (cxMemo-> InnerControl-> Handle, EM_LINESCROLL, 0, cxMemo-> Lines-> Count);