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

📄 unit1.pas

📁 精彩的delphi源码
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, bsSkinData, BusinessSkinForm, bsSkinCtrls, ImgList, ComCtrls,
  XPMenu, DB, ADODB, bsSkinBoxCtrls, StdCtrls, Mask, bsSkinGrids, bsDBGrids,
  bsMessages;

type
  TForm1 = class(TForm)
    bsBusinessSkinForm1: TbsBusinessSkinForm;
    bsSkinData1: TbsSkinData;
    bsCompressedStoredSkin1: TbsCompressedStoredSkin;
    bsSkinPanel1: TbsSkinPanel;
    TreeView1: TbsSkinTreeView;
    ImageList1: TImageList;
    ADOQuery1: TADOQuery;
    ADOConnection1: TADOConnection;
    bsSkinPanel2: TbsSkinPanel;
    bsSkinLabel1: TbsSkinLabel;
    bsSkinLabel2: TbsSkinLabel;
    bsSkinLabel3: TbsSkinLabel;
    bsSkinLabel4: TbsSkinLabel;
    bsSkinLabel5: TbsSkinLabel;
    bsSkinLabel6: TbsSkinLabel;
    bsSkinLabel7: TbsSkinLabel;
    bsSkinLabel8: TbsSkinLabel;
    Edit1: TbsSkinEdit;
    Edit2: TbsSkinEdit;
    Edit3: TbsSkinEdit;
    Edit4: TbsSkinEdit;
    Edit5: TbsSkinEdit;
    Edit6: TbsSkinEdit;
    Edit7: TbsSkinEdit;
    ComboBox1: TbsSkinComboBox;
    bsSkinPanel3: TbsSkinPanel;
    Button1: TbsSkinButton;
    Button3: TbsSkinButton;
    Button2: TbsSkinButton;
    Button5: TbsSkinButton;
    Button4: TbsSkinButton;
    bsSkinPanel4: TbsSkinPanel;
    DBGrid1: TbsSkinDBGrid;
    bsSkinScrollBar1: TbsSkinScrollBar;
    DataSource1: TDataSource;
    bsSkinScrollBar2: TbsSkinScrollBar;
    Message1: TbsSkinMessage;
    bsSkinScrollBar3: TbsSkinScrollBar;
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure disorenable(flag :boolean);
    procedure DBGrid1CellClick(Column: TbsColumn);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure refresh();
    function CFNum():string;
    procedure Button5Click(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TbsColumn;
      State: TGridDrawState);
    
  private
    { Private declarations }
  public
    { Public declarations }
    he :integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+getcurrentdir+
              '\friends.mdb;Persist Security Info=False;Jet OLEDB:Database Password=hejunpeng';
refresh();
Button1.Enabled :=false;
Button2.Enabled :=false;
Button3.Enabled :=false;
Button4.Enabled :=false;
Button5.Enabled :=false;


end;

procedure TForm1.refresh();
var
node1,node2,node3:TTreeNode;
Query ,Query2:TADOQuery;
begin
disorenable(false);
TreeView1.Items.Clear ;
node1 :=TreeView1.Items.Add(nil ,'同学录');
node1.ImageIndex :=0;
node1.StateIndex :=-1;
node1.SelectedIndex:=1;

Query2 :=TADOQuery.Create(self);
Query2.Connection :=ADOConnection1;
Query2.SQL.Clear ;

Query :=TADOQuery.Create(self);
Query.Connection :=ADOConnection1;
Query.SQL.Clear ;
Query.SQL.Text :='select distinct 类型 from fd';
Query.Open ;
  while not Query.Eof do                     //添加所有的村庄为第二层子节点
  begin
    node2 :=TreeView1.Items.AddChild(node1,Query.fieldByName('类型').AsString );
    node2.ImageIndex :=0;
    node2.StateIndex :=-1;
    node2.SelectedIndex:=1;

    Query2.SQL.Text :='select 姓名 from fd where 类型=:A';
    Query2.Parameters.ParamByName('A').Value :=node2.Text ;
    Query2.Open ;
    while not Query2.Eof do              //添加村庄中的所有客户为第三层子节点
    begin
    node3 :=TreeView1.Items.AddChild(node2,Query2.fieldByName('姓名').AsString );
    node3.ImageIndex :=2;
    node3.StateIndex :=-1;
    node3.SelectedIndex:=3;
    Query2.Next ;
    end;

    Query.Next ;
  end;
  Query2.Close;
  Query2.Free;
  Query.Close;
  Query.Free;
end;

procedure TForm1.TreeView1Click(Sender: TObject);
begin
if TreeView1.Selected.Level=0 then
  begin
    Edit1.Text :='';
    Edit2.Text :='';              //单击到第一层(村庄)时,清空各框
    Edit3.Text :='';
    Edit4.Text :='';
    Edit5.Text :='';
    Edit6.Text :='';
    Edit7.Text :='';
    ComboBox1.Text :='';

  end;

if TreeView1.Selected.Level=1 then
  begin
    Edit1.Text :='';                  //单击第二层(各个具体的村)时,清空各框
    Edit2.Text :='';
    Edit3.Text :='';
    Edit4.Text :='';
    Edit5.Text :='';
    Edit6.Text :='';
    Edit7.Text :='';
    Button2.Enabled:=true;
    ComboBox1.Text :='';
    ADOQuery1.SQL.Clear ;
    ADOQuery1.SQL.Text :='select * from fd where 类型=:A';
    ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Text ;
    ADOQuery1.Prepared ;
    ADOQuery1.Open ;
  end;

if TreeView1.Selected.Level=2 then         //单击第三层(客户名)时,显示该客户的信息
  begin
  ADOQuery1.SQL.Clear ;
  ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B';
  ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ;
  ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ;
  ADOQuery1.Prepared ;
  ADOQuery1.Open ;
  if ADOQuery1.RecordCount=1 then
    begin
    Edit1.Text :=ADOQuery1.fieldByName('编号').AsString ;
    Edit2.Text :=ADOQuery1.fieldByName('姓名').AsString ;
    Edit3.Text :=ADOQuery1.fieldByName('电话').AsString ;
    Edit4.Text :=ADOQuery1.fieldByName('手机').AsString ;
    Edit5.Text :=ADOQuery1.fieldByName('QQ号').AsString ;
    Edit6.Text :=ADOQuery1.fieldByName('Email').AsString ;
    Edit7.Text :=ADOQuery1.fieldByName('地址').AsString ;
    ComboBox1.text :=ADOQuery1.FieldByName('类型').AsString ;
    end;
    Button1.Enabled :=true;
    Button2.Enabled :=true;
    Button5.Enabled :=true;
  end;

end;




procedure TForm1.DBGrid1CellClick(Column: TbsColumn);
begin
    Edit1.Text :=ADOQuery1.fieldByName('编号').AsString ;
    Edit2.Text :=ADOQuery1.fieldByName('姓名').AsString ;
    Edit3.Text :=ADOQuery1.fieldByName('电话').AsString ;
    Edit4.Text :=ADOQuery1.fieldByName('手机').AsString ;
    Edit5.Text :=ADOQuery1.fieldByName('QQ号').AsString ;
    Edit6.Text :=ADOQuery1.fieldByName('Email').AsString ;
    Edit7.Text :=ADOQuery1.fieldByName('地址').AsString ;
    ComboBox1.text :=ADOQuery1.FieldByName('类型').AsString ;
    Button1.Enabled :=true;
    Button2.Enabled :=true;
    Button5.Enabled :=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
disorenable(true);
Edit1.Enabled :=false;
Button1.Enabled :=false;
Button2.Enabled :=false;
Button3.Enabled :=true;
Button4.Enabled :=true;
Button5.Enabled :=false;
he :=1;
end;

procedure TForm1.disorenable(flag :boolean);
begin
  if flag then
    begin
      Edit1.Enabled :=true;
      Edit2.Enabled :=true;
      Edit3.Enabled :=true;
      Edit4.Enabled :=true;
      Edit5.Enabled :=true;
      Edit6.Enabled :=true;
      Edit7.Enabled :=true;
      ComboBox1.Enabled :=true;
    end
  else
    begin
      Edit1.Enabled :=false;
      Edit2.Enabled :=false;
      Edit3.Enabled :=false;
      Edit4.Enabled :=false;
      Edit5.Enabled :=false;
      Edit6.Enabled :=false;
      Edit7.Enabled :=false;
      ComboBox1.Enabled :=false;
    end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
Query :TADOQuery;
begin

if ComboBox1.Text='' then
  begin
    Message1.MessageDlg('类型不能为空!',(mtWarning),[mbOK],0);
    ComboBox1.SetFocus ;
    Exit;
  end;

if Edit1.text='' then
  begin
    Message1.MessageDlg('编号不能为空!',(mtWarning),[mbOK],0);
    //Edit1.SetFocus ;
    Exit;
  end;

if Edit2.text='' then
  begin
    Message1.MessageDlg('姓名不能为空!',(mtWarning),[mbOK],0);
    Edit2.SetFocus ;
    Exit;
  end;
  
if he=1 then
  begin
    ADOQuery1.Edit ;
    ADOQuery1.FieldByName('编号').AsString :=trim(Edit1.text);
    ADOQuery1.FieldByName('姓名').AsString :=trim(Edit2.text);
    ADOQuery1.FieldByName('电话').AsString :=trim(Edit3.text);
    ADOQuery1.FieldByName('手机').AsString :=trim(Edit4.text);
    ADOQuery1.FieldByName('QQ号').AsString :=trim(Edit5.text);
    ADOQuery1.FieldByName('Email').AsString :=trim(Edit6.text);
    ADOQuery1.FieldByName('地址').AsString :=trim(Edit7.text);
    ADOQuery1.FieldByName('类型').AsString :=trim(ComboBox1.text);
    ADOQuery1.Post ;
    Message1.MessageDlg('编辑成功!',(mtInformation),[mbOK],0);
  end
else if he=2 then
  begin
    Query :=TADOQuery.Create(self);
    Query.Connection :=ADOConnection1;
    Query.SQL.Clear ;
    Query.SQL.Text :='select * from fd where 编号=:A';
    Query.Parameters.ParamByName('A').Value :=trim(Edit1.Text );
    Query.Open ;
    if not Query.IsEmpty  then
      begin
        Message1.MessageDlg('已存在的编号!',(mtWarning),[mbOK],0);
        Query.Close ;
        Query.Free ;
        Exit;
      end;
    Query.Close ;
    Query.Free ;

    ADOQuery1.Append ;
    ADOQuery1.FieldByName('编号').AsString :=trim(Edit1.text);
    ADOQuery1.FieldByName('姓名').AsString :=trim(Edit2.text);
    ADOQuery1.FieldByName('电话').AsString :=trim(Edit3.text);
    ADOQuery1.FieldByName('手机').AsString :=trim(Edit4.text);
    ADOQuery1.FieldByName('QQ号').AsString :=trim(Edit5.text);
    ADOQuery1.FieldByName('Email').AsString :=trim(Edit6.text);
    ADOQuery1.FieldByName('地址').AsString :=trim(Edit7.text);
    ADOQuery1.FieldByName('类型').AsString :=trim(ComboBox1.text);
    ADOQuery1.Post ;
    Message1.MessageDlg('添加成功!',(mtInformation),[mbOK],0);
    refresh();
  end;
   he :=0;
   disorenable(false);
  Button1.Enabled :=true;
  Button2.Enabled :=true;
  Button3.Enabled :=false;
  Button4.Enabled :=false;
  Button5.Enabled :=true;
end;




procedure TForm1.Button4Click(Sender: TObject);
begin
disorenable(false);
Button1.Enabled :=true;
Button2.Enabled :=true;
Button3.Enabled :=false;
Button4.Enabled :=false;
Button5.Enabled :=true;

end;


function TForm1.CFNum():string;    //编号的数字的最大数+1
var
Query :TADOQuery;
StrShort,StrLong :string;
LongNum,ShortNum,MaxNum :integer;
begin
  MaxNum:=0;
  Query :=TADOQuery.Create(self);
  Query.Connection :=ADOConnection1;
  Query.SQL.Clear ;
  Query.SQL.Text :='select 编号 from fd';
  Query.Open ;
  if not Query.IsEmpty then
  begin
    while not Query.Eof do
      begin
      StrLong:=Query.fieldByName('编号').AsString ;
      LongNum:=Length(StrLong);
      StrShort :=Copy(StrLong,3,(LongNum-2));
      ShortNum :=StrToInt(StrShort);
      if MaxNum<ShortNum then
        begin
          MaxNum:=ShortNum ;
        end;
      Query.Next ;
      end;
    MaxNum:=MaxNum+1;
    result :='CF'+IntToStr(MaxNum);
  end
else
  result :='CF1';

    Query.Close ;
    Query.Free ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
disorenable(true);
Edit1.Enabled :=false;
Edit1.Text :='';
Edit2.Text :='';
Edit3.Text :='';
Edit4.Text :='';
Edit5.Text :='';
Edit6.Text :='';
Edit7.Text :='';
ComboBox1.Text :='请选择';
Button1.Enabled :=false;
Button2.Enabled :=false;
Button3.Enabled :=true;
Button4.Enabled :=true;
Button5.Enabled :=false;
Edit1.Text :=CFNum();
he :=2;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin

 if Message1.MessageDlg('确认在删除吗?',(mtWarning),mbOKCancel,0)=mrOK then
  begin
    ADOQuery1.Delete;
    refresh();
  end;
end;


procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in['0'..'9','-',#8]) then
  begin
    Message1.MessageDlg('呵呵,只能输入数字和 - !',(mtWarning),[mbOK],0);
    Key :=#0;
    Edit3.SetFocus ;
  end;
end;

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
   if not(Key in['0'..'9',#8]) then
  begin
    Message1.MessageDlg('呵呵,只能输入数字!',(mtWarning),[mbOK],0);
    Key :=#0;
    Edit5.SetFocus ;
   end;
end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if not(Key in['0'..'9','-',#8]) then
  begin
    Message1.MessageDlg('呵呵,只能输入数字!',(mtWarning),[mbOK],0);
    Key :=#0;
    Edit4.SetFocus ;
  end;
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TbsColumn;
  State: TGridDrawState);
begin
  if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 then //条件判断
  begin
    with DBGrid1 do
    begin
    Canvas.Font.Color:=clWhite;
    Canvas.Brush.Color:=TColor(RGB(88,105,174));
    end;
  end;
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;


end.


//此源码由程序太平洋收集整理发布,任何人都可自由转载,但需保留本站信息
//╭⌒╮┅~ ¤ 欢迎光临程序太平洋╭⌒╮
//╭⌒╭⌒╮╭⌒╮~╭⌒╮  ︶  ,︶︶
//,︶︶︶︶,''︶~~ ,''~︶︶  ,''
//╔ ╱◥███◣═╬╬╬╬╬╬╬╬╬╗
//╬ ︱田︱田 田 ︱          ╬
//╬       http://www.5ivb.net ╬
//╬  ╭○╮●                     ╬
//╬  /■\/■\                    ╬
//╬   <| ||    有希望,就有成功! ╬
//╬                 ╬
//╚╬╬╬╬╬╬╬╬╬╬╗  ╔╬╬╬╬╝
//
//说明:
//专业提供VB、.NET、Delphi、ASP、PB源码下载
//包括:程序源码,控件,商业源码,系统方案,开发工具,书籍教程,技术文档

⌨️ 快捷键说明

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