Главная страница
    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.44 MB
Время: 0.008 c
1-28912
cta
2003-01-31 08:49
2003.02.10
Fatal error


1-28846
shoorik
2003-02-03 01:44
2003.02.10
поиск и замена


9-28579
arcoant
2002-08-20 14:37
2003.02.10
DelphiX


3-28680
T{}r(l-l
2003-01-24 15:10
2003.02.10
Вызов DTS-пэкаджа из Delphi?


1-28697
bmt
2003-01-31 13:31
2003.02.10
Как создать меню и панель инструментов, как в Delphi и MS Office





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