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

Вниз

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

 
KA_   (2003-01-31 17:50) [0]

Есть форма с RichEdit"ом. У нее есть метод DrawOn. Он должен отрисовывать содержимое RichEdit"a на канве. Только не рисует и все тут. Где я в коде напортачил? Помогите плиз, не то помру от разрыва мозга :)

procedure TfrmMyRichTextEditor.DrawOn(pCanvas: TCanvas; pDrawRect: TRect);
var
mf: TMetafile;
mc: TMetaFileCanvas;
Range: TFormatRange;
OldMap: Integer;
k1, k2: Double;
EditorDC: HDC;
rtfRect: TRect;
begin
EditorDC := GetDC(RichEdit.Handle);
try
with RichEdit, Range do
begin
SendMessage(RichEdit.Handle, EM_FORMATRANGE, 0, 0);
FillChar(Range, SizeOf(TFormatRange), 0);
hdc := EditorDC;
hdcTarget := pCanvas.Handle;
if IsRectEmpty(PageRect) then
begin
SendMessage(RichEdit.Handle, EM_GETRECT, 0, LongInt(@rtfRect));
rc := rtfRect;
end
else begin
rc.left := PageRect.Left;
rc.top := PageRect.Top;
rc.right := PageRect.Right;
rc.bottom := PageRect.Bottom;
end;
rcPage := pDrawRect;
chrg.cpMax := -1;
OldMap := SetMapMode(hdc, MM_TEXT);
SendMessage(RichEdit.Handle, EM_FORMATRANGE, 1, Longint(@Range));
SendMessage(RichEdit.Handle, EM_FORMATRANGE, 0, 0);
SetMapMode(hdc, OldMap);
end;
finally
ReleaseDC(Self.Height, EditorDC);
end;
end;


 
MBo ©   (2003-01-31 18:02) [1]

{ set up the parameter record for EM_FORMATRANGE }
FillChar(fmtRange, SizeOf(fmtRange), 0);
with fmtRange do
begin
hDC := yourBitmap.Canvas.Handle;
hdcTarget := hDC;
intPPI := Screen.PixelsPerInch;
rc := Rect(ARect.Left*1440 div intPPI,
ARect.Top*1440 div intPPI,
ARect.Right*1440 div intPPI,
ARect.Bottom*1440 div intPPI);
rcPage := rc;
chrg.cpMin := 0;
chrg.cpMax := -1;
end;

{ format the text }
Flags := 1;

FRichedit.Perform(EM_FORMATRANGE, Flags, Longint(@fmtRange));

{ Free cached information }
FRichedit.Perform(EM_FORMATRANGE, 0, 0);

© Mike Shkolnik



 
KA_   (2003-01-31 18:17) [2]

Спасибо большое!



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

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
14-29100
Serjio Moro
2003-01-26 02:19
2003.02.10
Совместимость железяк...


3-28671
qwerty2
2003-01-24 11:33
2003.02.10
Символ скобки в предложении LIKE


3-28645
Kiddy
2003-01-23 13:48
2003.02.10
Как получить MySQL базы на доступ к которым у меня есть права.


7-29107
Chubais
2002-12-04 13:37
2003.02.10
Как избавиться от появления полос прокрутки в главном окне MDI


6-28970
Scorpion [BC]
2002-12-18 19:45
2003.02.10
Как через локальную сеть общаться по микрофону?