一直都听说delphi中画布使用简单方便.现在我就利用画布实现一个简单的树机构的图形表示.系统支持节点选择.移动.保存树.打开树等.为了实现的方便用到了递归与指针,虽然效率有点问题但是在快速解决问题还是蛮好的.
源代码如下: 【程序编程相关:DB2 信息集成: 总览图】
程序写的比较乱,欢迎交流:sss@pacia.com.cn 【推荐阅读:我们针对各种全异的数据源开发实体 EJB】
interface 【扩展信息:DB2 Universal Databa】
unit u_tree;
uses
windows, messages, sysutils, classes, graphics, controls, forms, dialogs, extctrls, stdctrls, jpeg, menus,inifiles32;type
tobj= record objid : string; centerx : integer; centery : integer; typeno : integer; selected : boolean; fnode : string; showed : boolean; end; tfrm_tree = class(tform) panel1: tpanel; paintbox1: tpaintbox; panel2: tpanel; label1: tlabel; button2: tbutton; button1: tbutton; button3: tbutton; button4: tbutton; button5: tbutton; button6: tbutton; mainmenu1: tmainmenu; fadestream1: tmenuitem; randomrandomselection1: tmenuitem; savedialog1: tsavedialog; opendialog1: topendialog; button7: tbutton; procedure paintbox1mousedown(sender: tobject; button: tmousebutton; shift: tshiftstate; x, y: integer); procedure formcreate(sender: tobject); procedure button1click(sender: tobject); procedure button2click(sender: tobject); procedure paintbox1paint(sender: tobject); procedure button3click(sender: tobject); procedure button4click(sender: tobject); procedure button5click(sender: tobject); procedure button6click(sender: tobject); procedure paintbox1mouseup(sender: tobject; button: tmousebutton; shift: tshiftstate; x, y: integer); procedure paintbox1mousemove(sender: tobject; shift: tshiftstate; x, y: integer); procedure fadestream1click(sender: tobject); procedure randomrandomselection1click(sender: tobject); procedure button7click(sender: tobject); private { private declarations } toolno : integer; //1 画点,2 选择 3 查看 4 移动 5子移动 beginx,beginy,endx,endy : integer; clicked:boolean; ... 下一页