Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];

Вниз

TRichEdit   Найти похожие ветки 

 
NickBat   (2003-09-25 15:25) [0]

А есть ли возможность в стандартном TRichEdit изменять ширину интервала между абзацами?


 
NickBat   (2003-09-25 16:46) [1]

Во как! Ну хоть скажите, что нельзя. :)))


 
ZEE   (2003-09-25 16:52) [2]

>NickBat © (25.09.03 16:46) [1]
>Во как! Ну хоть скажите, что нельзя. :)))
можно - но вот как - не знаю.
например можно из Ворда вставить отформатированный текст с разным межстрочным расстоянием - РичЭдит отобразит как и в Ворде эти интервалы разными...


 
NickBat   (2003-09-25 17:24) [3]

Ну то, что отобразит верно это я знаю! :) А вот как изменить?

В Ворде за это отвечает свойство: ParagraphFormat.SpaceBefore

А вот как добраться до этого через RichEdit?


 
MBo   (2003-09-25 17:40) [4]

в структуре PARAFORMAT2 (нужен Rich Edit 2.0) есть dySpaceBefore.

Возможно, стоит попробовать записать RTF с отступом и посмотреть, какой тэг за это отвечает, и вставлять его руками.


 
NickBat   (2003-09-25 18:47) [5]

Спасибо MBo © (25.09.03 17:40) [4]
Уже, что-то.
Хотя если вставлять руками, то зачем мне TRichEdit?
:))


 
ЮЮ   (2003-09-26 02:32) [6]

> MBo © (25.09.03 17:40) [4]
> в структуре PARAFORMAT2 (нужен Rich Edit 2.0) есть dySpaceBefore.

Используй RxRichEdit, поддерживающий Rich Edit 2.0:

unit RxRichEd;
...
TParaFormat2 = record
...
dySpaceBefore: Longint; { Vertical spacing before paragraph }
dySpaceAfter: Longint; { Vertical spacing after paragraph }
...


 
ZEE   (2003-09-26 10:05) [7]

> ЮЮ © (26.09.03 02:32) [6]
> Используй RxRichEdit, поддерживающий Rich Edit 2.0:
>
> unit RxRichEd;
> ...
> TParaFormat2 = record
> ...
> dySpaceBefore: Longint; { Vertical spacing before
> paragraph }
> dySpaceAfter: Longint; { Vertical spacing after
> paragraph }

это понятно, все валяется в RichEdit.pas, а как это применить?
думается что-то типа такого:
var pf:TParaFormat2;
...
pf.dySpaceBefore:=20;
SendMessage(RichEdit1.Handle,EM_SETPARAFORMAT,PFM_SPACEBEFORE,lparam(@pf));

но похоже не совсем...


 
MBo   (2003-09-26 10:11) [8]

кроме задания dySpaceBefore:=20, надо еще в маске установить, что этот член структуры учитывать


 
ZEE   (2003-09-26 10:20) [9]

хорошо, подправляем так:
var pf:TParaFormat2;
...
pf.dwMask:=PFM_SPACEBEFORE;
pf.dySpaceBefore:=20;
SendMessage(RichEdit1.Handle,EM_SETPARAFORMAT,PFM_SPACEBEFORE,lparam(@pf));

- тот же результат - т.е. никакого результата...


 
MBo   (2003-09-26 10:56) [10]

procedure TForm1.Button2Click(Sender: TObject);
var pf:TParaFormat2;
begin
richedit1.SelStart:=20;
richedit1.Sellength:=20;
FillChar( pf, sizeof(pf), 0);
pf.cbSize:=SizeOf(pf);
pf.dwMask:=PFM_SPACEBEFORE;
pf.dySpaceBefore:=100;// Twips!
SendMessage(RichEdit1.Handle,EM_SETPARAFORMAT,0,lparam(@pf));
end;


 
ZEE   (2003-09-26 11:01) [11]

ну FillChar( pf, sizeof(pf), 0); - это у меня было и так, а селекшн я руками делал - все одно не работает...
MBo © а код из [10] рабочий, проверенный?


 
MBo   (2003-09-26 11:04) [12]

да, проверен.

D5
обычный richedit
WinXP


 
ZEE   (2003-09-26 11:06) [13]

у меня D6 + Win2K + TRichEdit(тоже обычный) - и ничего, кстати в обрати внимание на тему - [D6], но я не думаю что в шестерке это надо по-другому делать... грабли где-то в другом месте...


 
MBo   (2003-09-26 11:17) [14]

для чистоты эксперимента: пустой рич, после выполнения расстояние перед двойками и тройками увеличено.

procedure TForm1.Button2Click(Sender: TObject);
var pf:TParaFormat2;
var i:integer;
begin
for i:=0 to 5 do
richedit1.lines.add(StringOfChar(Chr($30+i),8));
richedit1.SelStart:=20;
richedit1.Sellength:=20;
FillChar( pf, sizeof(pf), 0);
pf.cbSize:=SizeOf(pf);
pf.dwMask:=PFM_SPACEBEFORE;
pf.dySpaceBefore:=200;//Twips!
SendMessage(RichEdit1.Handle,EM_SETPARAFORMAT,0,lparam(@pf));
end;


 
ZEE   (2003-09-26 11:35) [15]

ок, получилось - все дело было в
pf.cbSize:=SizeOf(pf); - точнее в отсутствии этой строки



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-18455
alex-ran
2003-09-24 11:12
2003.10.06
Ограничение на количество компонентов дочерней формы?


1-18408
programer2k
2003-09-25 15:47
2003.10.06
логарифмы в Паскале


1-18381
lak
2003-09-22 15:48
2003.10.06
вычисление выражений в префиксной записи


1-18368
Opera
2003-09-23 01:47
2003.10.06
Колесо


3-18245
Julie
2003-09-16 10:32
2003.10.06
SQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский