寻求屏幕分割算法函数(50分)

  • 主题发起人 主题发起人 goeasy
  • 开始时间 开始时间
G

goeasy

Unregistered / Unconfirmed
GUEST, unregistred user!
现在想将1024*768的屏幕分割成任意整块,即:X轴分割块可以被1024整除,Y轴分割块可以被768整除。函数返回分割后TRect的数组MyRect.问题如果解决m 分数绝对可以再加.不需要灌水啊。。。。。哈哈。谢了。。。
 
最近做了个类似的,改了一下贴上来[:)]
type
TRectList = Array of Array of TRect;

procedure SplitScreen(x,y: Integer; var RectList: TRectList;
ScreenWidth: Integer = 1024; ScreenHeight: Integer = 768);
var
i,j: Integer;
ix,iy,iTop,iBottom: Integer;
begin
if (x<=0) or (y<=0) or (x>ScreenWidth) or (y>ScreenHeight) then
Raise Exception.Create('无效值');

ix:=ScreenWidth div x;
iy:=ScreenHeight div y;
SetLength(RectList,y,x);
for i:=0 to y-1 do
begin
iTop:=i*iy;
if i=y-1 then
iBottom:=ScreenHeight-1
else
iBottom:=iTop+iy-1;
for j:=0 to x-1 do
begin
with RectList[j] do
begin
Top:=iTop;
Bottom:=iBottom;
Left:=j*ix;
if j=x-1 then
Right:=ScreenWidth-1
else
Right:=Left+ix-1;
end;
end;
end;
end;
 
后退
顶部