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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
1-18351
MakNik
2003-09-23 11:24
2003.10.06
Динамически заменять компоненты


8-18488
lipskiy
2003-06-08 16:28
2003.10.06
Видеопрезентация


14-18638
Некрофил-затейник__
2003-09-12 13:58
2003.10.06
Нейроконнекторы


4-18684
Delphi5.01
2003-08-01 20:33
2003.10.06
var Windows: array of HWnd; ... SetLength(Windows,WindowsCount);


14-18559
Jiura32d
2003-09-18 20:31
2003.10.06
Дайте please компонент для предосмотра перед печатью!!!!