Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизКакая функция отвечает за разбиение строк в TMemo . Найти похожие ветки
← →
casper (2004-03-06 21:31) [0]Какая функция отвечает за перенос и разбиение строк в компоненте
TMemo при WordWrap:=true. Перерыл весь модуль STDCtrls.pas но ничего не нашёл.
← →
Игорь Шевченко © (2004-03-06 21:43) [1]procedure TCustomMemo.CreateParams(var Params: TCreateParams);
...
const
WordWraps: array[Boolean] of DWORD = (0, ES_AUTOHSCROLL);
...
← →
Sanek © (2004-03-06 21:49) [2]procedure TCustomMemo.CreateParams(var Params: TCreateParams);
const
Alignments: array[Boolean, TAlignment] of DWORD =
((ES_LEFT, ES_RIGHT, ES_CENTER),(ES_RIGHT, ES_LEFT, ES_CENTER));
ScrollBar: array[TScrollStyle] of DWORD = (0, WS_HSCROLL, WS_VSCROLL,
WS_HSCROLL or WS_VSCROLL);
WordWraps: array[Boolean] of DWORD = (0, ES_AUTOHSCROLL);
begin
inherited CreateParams(Params);
with Params do
begin
Style := Style and not WordWraps[FWordWrap] or ES_MULTILINE or
Alignments[UseRightToLeftAlignment, FAlignment] or ScrollBar[FScrollBars];
end;
end;
Скорее всего вот это . .
← →
Sanek © (2004-03-06 21:49) [3]Извиняюсь за повторение . .
← →
casper (2004-03-06 21:57) [4]Меня интересует алгоритм разбиения и переноса строк. Вышеупомянутая процедура его не реализует.
← →
Юрий Зотов © (2004-03-06 23:31) [5]> casper
Его реализует сама Windows. Точнее, функция API, которая вызывается из оконной функции контрола и отрисовывает текст. А здесь только устанавливаются нужные флаги в стиле окна - вот они-то и говорят, что текст надо отрисовывать с переносом по словам.
Посмотрите DrawText (флаг DT_WORDBREAK) и сообщения EM_GETWORDBREAKPROC, EM_SETWORDBREAKPROC.
← →
casper (2004-03-07 10:59) [6]Спасибо я так и думал.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c