Вниз
Скачать: CL | DM;

TMemo и DoubleBuffered проблема   Найти похожие ветки 

← →
Alex_C ©   (2006-10-12 15:51) [0]

Мне надо создать потомок от TMemo c измененным WMPaint. При использовании DoubleBuffered:= False - все без проблем как в факах, но при этом мемо естественно мерцает при перерисовке. При выставлении св-ва DoubleBuffered := true - мемо перестает закрашивать свободную от надписей клиенткую область. Как этого избежать?
Вот пример моего WMPaint (взят из примера):

procedure TMyMemo.WMPaint(var Message: TWMPaint);
var
   i, dy : Integer;
   PS:TPaintStruct;
   DC:HDC;
   aCanvas: TCanvas;
begin
   DC:= Message.DC;
   if DC= 0 then
       DC:= BeginPaint(Handle, PS);
   aCanvas:=TCanvas.Create;
   try
       aCanvas.Handle:= DC;
       aCanvas.Font:= Font;

// Если вот сюда поставить aCanvas.FillRec, то все закрашивается,
// но естественно начинает сильно мерцать.

       with aCanvas do
       begin
           dy := 1;
           for i:= 0 to Lines.Count-1 do
           begin
               if (i mod 2) = 0 then
                   Font.Color:= clBlue
               else
                   Font.Color:= clBlack;
               TextOut(1, dy, Lines[i]);
               dy:= dy+ TextHeight("X");
           end;
       end;
   finally
       if Message.DC = 0 then EndPaint(Handle, PS);
       aCanvas.Free;
   end;
end;


← →
Ketmar ©   (2006-10-12 17:05) [1]

интересно, а почему не взять richedit? в твоём коде как минимум одна ошибка -- попробуй выделить текст. что будет с выделением? и вообще -- если уж ВСЁ рисуешь руками -- так и рисуй себе на битмап, а потом битмап выводи.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.029 c
2-1160637215
md
2006-10-12 11:13
2006.10.29
unit


15-1159961743
001
2006-10-04 15:35
2006.10.29
Требуется определить средство разработки


2-1161066498
Bless
2006-10-17 10:28
2006.10.29
Два класса, ссылающиеся друг на друга, в разных модулях. Можно?


3-1157456213
Mishenka
2006-09-05 15:36
2006.10.29
Как в запросе сделать сортировку по нескольким полям?


4-1150359925
MAXLMN
2006-06-15 12:25
2006.10.29
Нотификационное сообщение - файл закрыт




   Наверх