Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.055 c
1-1078997336
senator
2004-03-11 12:28
2004.03.28
Как сделать так чтобы Mainmenu главной формы не перекрывалось


3-1077286652
Крутыш
2004-02-20 17:17
2004.03.28
SyBase!!!


1-1078915374
KME
2004-03-10 13:42
2004.03.28
RTF в DOS


4-1073549985
lex
2004-01-08 11:19
2004.03.28
Как на время работы программы заблокировать автозапуск CD?


1-1078335025
Merry
2004-03-03 20:30
2004.03.28
Цифры в слова





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский