Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Какая функция отвечает за разбиение строк в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
6-1073645802
vivk
2004-01-09 13:56
2004.03.28
Узнать IP клиента


1-1078779326
Гиричев Руслан
2004-03-08 23:55
2004.03.28
Знает ли кто-нить AdvMemo?


4-1074078497
Petrovich
2004-01-14 14:08
2004.03.28
Не могу найти GetModuleUsage


4-1072359276
Kinderr
2003-12-25 16:34
2004.03.28
Ещё раз про трэй (только для профессионалов)


14-1078158048
}|{yk
2004-03-01 19:20
2004.03.28
Какими браузерами пользуетесь кроме IE?