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

Вниз

Почему мерцает TMemo   Найти похожие ветки 

 
Alex_C ©   (2006-10-13 10:09) [0]

Хочу сделать свой мемо, чтоб не мерцало при перерисовке. Делаю свой компонент, переопределяю WMPaint:

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

       BitMap.Height := Height;
       BitMap.Width := Width;
       BitMap.Canvas.FillRect(ClientRect);

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

еще добавляю:
constructor TMyMemo.Create(AOwner: TComponent);
begin
   inherited;
   ControlStyle := ControlStyle + [csOpaque];
end;

Однако все равно мерцает. Почему? Как запретить мемо перед WMPain очищать себя (я так понимаю из-за этого и мерцает).


 
Kolan ©   (2006-10-13 10:10) [1]

RichEdit?

ЗЫ
 У меня Memo не мерцает...


 
Zeqfreed ©   (2006-10-13 10:19) [2]

Используй двойную буферизацию при выводе текста.



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

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

Наверх




Память: 0.47 MB
Время: 0.027 c
2-1160749564
KidMan
2006-10-13 18:26
2006.10.29
Как узнать кол-во строк в таблице


4-1150058454
RealGanj
2006-06-12 00:40
2006.10.29
Перехват сообщений клавиатуры


15-1160164782
SkySpeed
2006-10-06 23:59
2006.10.29
Как из PHP открыть ВЕБ-страницу в новом/текущем окне?


15-1160038958
worldmen
2006-10-05 13:02
2006.10.29
Подобрать Switch.


2-1161069769
_Mouse_
2006-10-17 11:22
2006.10.29
Проигрывание Wav, mp3 и тд.