关于luyear的在桌面画图的程序和aimingoo修改过后的程序,
如果你多运行几次你就会发现系统变得很不稳定,因为没有释放系统资源,
一个是新建的Canvas没有Free,还有一个是GetDC返回的DC没有Release。
我改了一下:总字数628。
program m;
uses windows,Graphics;
var i,j:integer;
begin
with tcanvas.create do
begin
handle:=getdc(0);
for i:=1 to 400 do
begin
MoveTo(400,300);LineTo(2*i,1);
MoveTo(400,300);LineTo(2*i,600);
MoveTo(400,300);LineTo(1,round(i*1.5));
MoveTo(400,300);LineTo(800,round(i*1.5))
end;
Pen.Color:=clred;
For j:=1 to 120 do
begin
moveTo(600,1);for i:=1 to 800 do
LineTo(i,600-round(i*i/(Sqr(j)/2)));
moveTo(1,1);for i:=1 to 800 do
LineTo(i,round(i*i/(Sqr(j)/2)))
end;
Font.Size:=72;Font.Color:=clblue;
Brush.Color:=clbackground;
setbkmode(Handle,0);
textout(10,120,'看不到了吧!');
ReleaseDC(0,Handle);Free
end
end.
//Word Number:628
再改(字数586):
program m;uses windows,Graphics;var i,j:integer;
begin
with tcanvas.create do
begin
handle:=getdc(0);for i:=1 to 400 do
begin
MoveTo(400,300);LineTo(2*i,1);MoveTo(400,300);LineTo(2*i,600);MoveTo(400,300);LineTo(1,round(i*1.5));MoveTo(400,300);LineTo(800,round(i*1.5))end;
Pen.Color:=clred;For j:=1 to 120 do
begin
moveTo(600,1);for i:=1 to 800 do
LineTo(i,600-round(i*i/(Sqr(j)/2)));moveTo(1,1);for i:=1 to 800 do
LineTo(i,round(i*i/(Sqr(j)/2)))end;
Font.Size:=72;Font.Color:=clblue;Brush.Color:=clbackground;setbkmode(Handle,0);textout(10,120,'看不到了吧!');ReleaseDC(0,Handle);Free end end.
//Word Number:586