Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.048 c