Текущий архив: 2006.10.15;
Скачать: CL | DM;
ВнизПытаюсь рисовать на канве RichEdit. Не получается. Найти похожие ветки
← →
Alex_C © (2006-09-27 11:02) [0]Делаю так:
DC := GetDC( RichEdit1.Handle );
aCanvas:=TCanvas.Create;
aCanvas.Handle:= DC;
далее работаю с aCanvas - ни ничего не происходит.
← →
Игорь Шевченко © (2006-09-27 11:05) [1]
> далее работаю с aCanvas - ни ничего не происходит.
а должно ?
← →
clickmaker © (2006-09-27 11:07) [2]до первой перерисовки эдита удастся что-то нарисовать.
А потом эдит, не зная просто о твоих художествах, все затрет в своем обработчике WM_PAINT
← →
Gydvin © (2006-09-27 12:08) [3]пробуй так
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Timer1: TTimer;
procedure WMNCPaint(richedit:trichedit;a:integer);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure tform1.WMNCPaint(richedit:trichedit;a:integer);
var
dc: hDc;
Pen: hPen;
OldPen: hPen;
OldBrush: hBrush;
x,x1,y,y1:integer;
begin
dc := GetDC(richedit.handle);
Pen := CreatePen(PS_SOLID, 1, clred);
OldPen := SelectObject(dc, Pen);
OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));
x:=richedit.ClientWidth;
y:=richedit.Clientheight;
x1:= x div 2;
y1:= y div 2;
windows.MoveToEx(dc, 0, 0, nil);
windows.LineTo(dc, x, y);
windows.Ellipse(dc,x1 -a,y1 -a,x1+a,y1+a) ;
SelectObject(dc, OldBrush);
SelectObject(dc, OldPen);
DeleteObject(Pen);
ReleaseDC(dc, dc);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
richedit1.Repaint;
WMNCPaint(richedit1,50);
end;
end.
Вообще-то нужно создать потомка перекрыв стандартный репайнт и сделав его самому
Страницы: 1 вся ветка
Текущий архив: 2006.10.15;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.05 c