转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
利用Delphi中的画布画树         ★★★★

利用Delphi中的画布画树

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1473 更新时间:2009/4/23 18:31:04
nbsp;  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);
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);
      lstdate.WriteBool(curid,''''Selected'''',curobj.Selected);
      lstdate.WriteString(curid,''''FNode'''',curobj.FNode);
      lstdate.WriteBool(curid,''''Showed'''',curobj.showed);
    end;
  end;
end;

procedure TFrm_Tree.RANDOMRandomselection1Click(Sender: TObject);
var
  selfile :String;
  //curid:string;
  lstdate:TIniFile32;
  i,j:integer;
begin
  if OpenDialog1.Execute then
  begin
      selfile:=OpenDialog1.FileName;
      clicked:=false;
      PaintBox1.Canvas.FillRect(rect(0,0,PaintBox1.Width,PaintBox1.Height));
      OLst.Clear;
      Root:=true;
      SelID:='''''''';
      SearilID:=0;
      lstdate:=TIniFile32.Create(selfile);
      j:=lstdate.ReadInteger(''''Title'''',''''Num'''',0);
      for i:=1 to j do
      begin
        addobj(lstdate.Readstring(inttostr(i),''''ObjID'''',''''''''),lstdate.ReadInteger(inttostr(i),''''CenterX'''',0),lstdate.ReadInteger(inttostr(i),''''CenterY'''',0),lstdate.ReadInteger(inttostr(i),''''TypeNo'''',0),lstdate.ReadBool(inttostr(i),''''Selected'''',true),lstdate.Readstring(inttostr(i),''''FNode'''',''''''''),lstdate.ReadBool(inttostr(i),''''Showed'''',true));
      end;
      SearilID:=j;
      Root:=false;
      DrawFull;
  end;
end;

procedure TFrm_Tree.Button7Click(Sender: TObject);
begin
  ToolNO:=5;
end;

procedure TFrm_Tree.movenode(dx, dy: integer;id:string);
var
  i,j:integer;
  curobj:^tobj;
begin
  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^.CenterX:=curobj^.CenterX+dx;
      curobj^.CenterY:=curobj^.CenterY+dy;
      movenode(dx,dy,curobj^.ObjId);
    end;
  end;
end;

procedure TFrm_Tree.movelocal(dx, dy: integer);
var
  i,j:integer;
  //curobj:tobj;
begin
  j:=olst.Count;
  for I:=0 to j-1 do
  begin
    if tobj(olst.Items[i]^).Selected then
    begin
       tobj(olst.Items[i]^).CenterX:=tobj(olst.Items[i]^).CenterX+dx;
       tobj(olst.Items[i]^).Centery:=tobj(olst.Items[i]^).Centery+dy;
       Break;
    end;
  end;
end;
end.

上一页  [1] [2] [3] 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台