Главная страница
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
6-28967
кондратий
2002-12-18 20:14
2003.02.10
как подключитса к инету програмно...


14-29001
Supreme
2003-01-23 23:59
2003.02.10
Фильмосоздание


1-28905
RomanaPro
2003-01-30 22:16
2003.02.10
Нет вывода


1-28840
Гость Андрей
2003-02-02 20:45
2003.02.10
DLL и командная строка


4-29149
Vladimir_Shk
2002-12-26 11:37
2003.02.10
Закрытие окна