利用Delphi中的画布画树(3)
2008-04-11 12:27:04来源:互联网 阅读 ()
for I:=0 to j-1 do
begin
TObj(olst.items[i]^).showed:=false;
end;
end;
procedure TFrm_Tree.setfnode(id: string);
var
curobj:^tobj;
begin
if id<>'''''''' then
begin
//new(curobj);
curobj:=getPObj(id);
while curobj^.TypeNo=1 do
begin
curobj^.showed := true;
curobj :=getpobj(curobj^.FNode);
end;
curobj^.showed:=true;
//dispose(curobj);
end;
end;
procedure TFrm_Tree.setcnode(id: string);
var
curobj:^tobj;
i,j:integer;
begin
//curobj:=getobj(id);
j:=olst.count;
for i:=0 to j-1 do
begin
if tobj(olst.Items[i]^).FNode=id then
begin
curobj:=getpobj(tobj(olst.Items[i]^).ObjId);
curobj^.showed:=true;
setcnode(curobj^.ObjId);
end;
end;
end;
procedure TFrm_Tree.clearCanvas;
begin
//PaintBox1.Canvas
PaintBox1.Canvas.FillRect(rect(0,0,PaintBox1.Width,PaintBox1.Height));
end;
procedure TFrm_Tree.Button4Click(Sender: TObject);
begin
clicked:=false;
PaintBox1.Canvas.FillRect(rect(0,0,PaintBox1.Width,PaintBox1.Height));
OLst.Clear;
Root:=true;
SelID:='''''''';
SearilID:=0;
{ with PaintBox1.Canvas do
begin
Pen.Width :=2;
Pen.Color:=clblack;
pen.Style :=psclear;
Brush.Style:=bsSolid;
Brush.Color:=clwhite;
Rectangle(0,0,PaintBox1.Width,PaintBox1.Height);
end;}
end;
procedure TFrm_Tree.Button5Click(Sender: TObject);
var
i,j: integer;
begin
j:=olst.count;
for i:=0 to j-1 do
begin
tobj(olst.Items[i]^).showed:=true;
end;
DrawFull;
end;
function TFrm_Tree.getPObj(id: string): Pointer;
var
i,j:integer;
begin
Result:=nil;
j:=Olst.Count;
for i:=0 to j-1 do
begin
if TObj(OLst.Items[i]^).ObjId=id then
begin
Result:=OLst.Items[i];
Break;
end;
end;
end;
function TFrm_Tree.clickobj(x, y: integer): string;
var
i,j:integer;
begin
Result:='''''''';
j:=olst.Count;
setselected(x,y);
for I:=0 to j-1 do
begin
if (TObj(OLst.Items[i]^).CenterX-10<x) and (TObj(OLst.Items[i]^).CenterX 10>x)
and (TObj(OLst.Items[i]^).Centery-10<y) and (TObj(OLst.Items[i]^).Centery 10>y) then
begin
Label1.caption:=''''click the node id:'''' TObj(OLst.Items[i]^).objid;
Result:=TObj(OLst.Items[i]^).ObjId;
Break;
end;
end;
end;
procedure TFrm_Tree.Button6Click(Sender: TObject);
begin
ToolNO:=4;
end;
procedure TFrm_Tree.moveobj(dx, dy: integer);
var
i,j:integer;
begin
j:=olst.Count;
for I:=0 to j-1 do
begin
TObj(OLst.Items[i]^).CenterX:= TObj(OLst.Items[i]^).CenterX dx;
TObj(OLst.Items[i]^).Centery:= TObj(OLst.Items[i]^).Centery dy;
end;
//DrawFull;
end;
procedure TFrm_Tree.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
case toolno of
4:
begin
if clicked then
begin
endx:=x;
endy:=y;
moveobj((endx-beginx),(endy-beginy));
end;
clicked:=false;
end;
5:
begin
clicked:=false;
end;
end;
end;
procedure TFrm_Tree.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if (clicked) then
begin
case ToolNO of
4:
begin
moveobj((x-beginx),(y-beginy));
beginx:=x;beginy:=y;
DrawFull;
end;
5:
begin
movenode((x-beginx),(y-beginy),getselect.ObjId);
movelocal((x-beginx),(y-beginy));
beginx:=x;beginy:=y;
DrawFull;
end;
end;
end;
end;
procedure TFrm_Tree.FADEStream1Click(Sender: TObject);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
var
selfile :String;
curid:string;
curobj:Tobj;
lstdate:TIniFile32;
i,j:integer;
begin
j:=OLst.Count;
if SaveDialog1.Execute then
begin
selfile := SaveDialog1.FileName;
lstdate := TIniFile32.Create(selfile ''''.dat'''');
lstdate.WriteInteger(''''Title'''',''''Num'''',j);
for i:=0 to j-1 do
begin
curobj:=Tobj(olst.Items[i]^);
curid:= curobj.ObjId;
lstdate.WriteString(curid,''''ObjID'''',curobj.ObjId);
lstdate.WriteInteger(curid,''''CenterX'''',curobj.CenterX);
lstdate.WriteInteger(curid,''''CenterY'''',curobj.CenterY);
lstdate.WriteInteger(curid,''''TypeNo'''',curobj.TypeNo);
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Delphi多层开发方案比较
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
