⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_xtwh.pas

📁 c/s系统。 delphi 6+access 运行前先配置数据环境:把db文件夹复制到c:下 要编译请安装第三方控件fastreport2.47 这是我的小小的毕业设计
💻 PAS
字号:
unit u_xtwh;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ADODB, DB, ImgList, ComCtrls, ExtCtrls, StdCtrls, Mask
  ;//SkinBoxCtrls, SkinCtrls;

type

 //自定义一个结构的数据类型
    PMyRecord = ^TMyRecord;
    TMyRecord = record
    ParentNodeID : String; //父节点
    NodeID : String;       //节点代号
    Caption : String;      //标题文字
             //网址
  end;

  Txtwh = class(TForm)
    ImageList1: TImageList;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    ADOQuery1: TADOQuery;
    PopupMenu1: TPopupMenu;
    MenuADD: TMenuItem;
    renamenode: TMenuItem;
    deletechildnode: TMenuItem;
    Panel1: TPanel;
    Panel2: TPanel;
    treeview1: TTreeView;
    MaskEdit1: TMaskEdit;
    procedure MenuADDClick(Sender: TObject);
    procedure renamenodeClick(Sender: TObject);
    procedure deletechildnodeClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CreateSubNodes(myNode :TTreeNode);
    procedure Panel2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xtwh: Txtwh;

implementation
 uses u_add,u_ren,u_del,u_zdsl,u_zdy,u_dm;
{$R *.dfm}

procedure Txtwh.MenuADDClick(Sender: TObject);
var
   //声明指针变量
   MyRecordPointer: PMyRecord;
begin
   with Tadd.Create(Application) do begin
       try
          ShowModal;
       finally
          //假如用户是单击OK按钮,则将数据加以保存
          if ModalResult = mrOK then begin
             //创建指针变量
             New(MyRecordPointer);

             //添加新的节点
             with TreeView1.Items.AddChild(TreeView1.Selected,EditCaption.Text) do begin
                  //指定图片
                  ImageIndex:= Level + 1;
                  SelectedIndex := Level + 1;

                  //指定指针变量的内容
                  MyRecordPointer.ParentNodeID := PMyRecord(TreeView1.Selected.Data)^.NodeID;
                  MyRecordPointer.NodeID := PMyRecord(TreeView1.Selected.Data)^.NodeID + '-' + IntToStr(TreeView1.Selected.Count);
                  MyRecordPointer.Caption := EditCaption.Text;


                  //设置节点的Data属性值
                  Data := MyRecordPointer;
             end;

             //将数据保存到数据库
             ADOTable1.Append;
             ADOTable1.FieldByName('ParentNodeID').AsString := PMyRecord(TreeView1.Selected.Data)^.NodeID;
             ADOTable1.FieldByName('NodeID').AsString := PMyRecord(TreeView1.Selected.Data)^.NodeID + '-' + IntToStr(TreeView1.Selected.Count);
             ADOTable1.FieldByName('Caption').AsString := EditCaption.Text;

             ADOTable1.Post;
          end;
          Free;
       end;
   end;
end;

procedure Txtwh.renamenodeClick(Sender: TObject);
begin
with Tren.Create(Application) do begin
 try
          ShowModal;//显示对话匡
       finally
          //假如用户是单击OK按钮,则将数据加以保存
          if ModalResult = mrOK then begin
             with adoquery1 do
      begin

      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.sql.add('update myTTreeView set caption=:cc  Where caption=:bb');//声名2个变量cc ,bb
      parameters.parambyname('bb').value:=treeview1.Selected.Text;
      parameters.parambyname('cc').value:=reedit.text ;
      adoquery1.execsql;

          end;
            treeview1.selected.Text:=reedit.Text;
          end;
       end;
   end;
end;
procedure Txtwh.deletechildnodeClick(Sender: TObject);
begin
  with Tdel.Create(Application) do begin
        try
          ShowModal;//显示对话匡
       finally
          //假如用户是单击yes按钮,则将数据加以保存
          if ModalResult = mryes then
       begin


        //从数据库中删除节点
      with adoquery1 do
      begin

      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.sql.add('delete from myTTreeView  Where caption=:aa');//声名一个变量aa
      parameters.parambyname('aa').value:=treeview1.Selected.Text;
      adoquery1.execsql;

      end;
       //在treelist 中删除节点
       if treeview1.Selected.level<>0 then
         treeview1.Items.Delete(treeview1.Selected);

                end;
           end;
    end;

 end;
procedure Txtwh.CreateSubNodes(myNode :TTreeNode);
var
   //声明指针变量
   MyRecordPointer: PMyRecord;
   tmpDataSet : TADODataSet;
   tmpNode : TTreeNode;
   SQLStr : string;
begin
   //创建DataSet
   tmpDataSet := TADODataSet.Create(nil);

   //组合SQL命令,找出指定节点的所有的子节点
   SQLStr := ' ParentNodeID = ''' + PMyRecord(myNode.Data)^.NodeID + '''';

   //连接数据库
   tmpDataSet.Connection :=ADOConnection1;
   tmpDataSet.CursorType := ctStatic; //确定ADO数据集所用的游标类型
   tmpDataSet.CursorLocation := clUseClient;  //确定表在cilent 还是 server.
   tmpDataSet.CommandText := 'select * from  myTTreeView where ' + SQLStr + ' Order by NodeID ';
   tmpDataSet.Active := True;
   tmpDataSet.First;
   While Not tmpDataSet.Eof do begin
       //创建Model Node
       tmpNode := TreeView1.Items.AddChild(myNode,tmpDataSet.FieldValues['Caption']);

       //设置图片属性
       tmpNode.ImageIndex := tmpNode.Level + 1;
       tmpNode.SelectedIndex := tmpNode.Level + 1;

       //创建指针变量
       New(MyRecordPointer);

       //将相关数据保存到tmpNode
       MyRecordPointer.ParentNodeID := tmpDataSet.FieldValues['ParentNodeID'];
       MyRecordPointer.NodeID := tmpDataSet.FieldValues['NodeID'];
       MyRecordPointer.Caption := tmpDataSet.FieldValues['Caption'];

       tmpNode.Data :=  MyRecordPointer;

       //创建子节点(以递归的方式调用)
       CreateSubNodes(tmpNode);
       tmpDataSet.Next;
   end;

   //关闭与释放DataSet
   tmpDataSet.Active := False;
   tmpDataSet.Free;
end;


//************************************************
//将数据库的内容转到TTreeView对象
//*************************************************
 procedure Txtwh.FormCreate(Sender: TObject);
var
   //声明指针变量
   MyRecordPointer: PMyRecord;

begin
   //创建指针变量
   New(MyRecordPointer);

   //设置根节点的指针变量内容
   MyRecordPointer.ParentNodeID := '';
   MyRecordPointer.NodeID := 'Root';
   MyRecordPointer.Caption := TreeView1.Items[0].Text;

   TreeView1.Items[0].Data :=  MyRecordPointer;

   //将数据库的数据写到TTreeView对象中
   CreateSubNodes(TreeView1.Items[0]);
end;


//修改系统IP
procedure Txtwh.Panel2Click(Sender: TObject);
var s0:string;
    s1,s2,s3,s4:integer;
begin
   s0:=maskedit1.text;
   s1:=strtoint(copy(s0,1,3));
   s2:=strtoint(copy(s0,5,3));
   s3:=strtoint(copy(s0,9,3));
   s4:=strtoint(copy(s0,13,3));
   if maskedit1.text=''then
     begin
       showmessage('你还没有输入服务器IP地址');
       end;

 if (s1<1)or(s1>233) then
     begin
       showmessage(inttostr(s1)+'不是有效数字请输入一介于1和233之间的数值');
     end
  else
     begin
         if (s2<0)or(s2>255) then
       begin
         showmessage(inttostr(s2)+'不是有效数字请输入一介于1和255之间的数值');
       end
         else
           begin
             if (s3<0)or(s3>255) then
                    begin
                         showmessage(inttostr(s3)+'不是有效数字请输入一介于1和255之间的数值');
                    end
               else
                 begin
                       if (s4<0)or(s4>255) then
                    begin
                         showmessage(inttostr(s4)+'不是有效数字请输入一介于1和255之间的数值');
                    end
                     else

             begin
                  with dm.iptable do
                    begin
                       edit;
                       dm.iptable.fieldbyname('ip').asstring:=inttostr(s1)+'.'+inttostr(s2)+'.'+inttostr(s3)+'.'+inttostr(s4);
                       post;
                    end;

                  fzdsl.clientsocket1.host:=inttostr(s1)+'.'+inttostr(s2)+'.'+inttostr(s3)+'.'+inttostr(s4);
                  zdy.clientsocket1.host:=inttostr(s1)+'.'+inttostr(s2)+'.'+inttostr(s3)+'.'+inttostr(s4);
                 showmessage('修改成功');
                 maskedit1.Text:='';

              end ;
              end;
             end;
       end;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -