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

📄 promain.pas

📁 个人信息管理系统
💻 PAS
字号:
unit ProMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls,DataDefine, ExtCtrls, StdCtrls, DBCtrls,adodb, DB,
  Grids, DBGrids,Type_Edit, Menus,Msg_Edit,dm, Mask;

type
  TMainFrm = class(TForm)
    StatusBar1: TStatusBar;
    Splitter1: TSplitter;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    PopupMenu2: TPopupMenu;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    Splitter2: TSplitter;
    DM: TDBMemo;
    N7: TMenuItem;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    TV: TTreeView;
    Memo1: TMemo;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure TVClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure Memo1Exit(Sender: TObject);
    procedure Memo1Enter(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
  Function InitData():integer;
  Function intmsg():integer;
  public
  end;

var
  MainFrm: TMainFrm;

implementation

{$R *.dfm}
Function InitDB():integer;
begin
Tmp_Connection:=Tadoconnection.Create(nil);
Tmp_Connection.LoginPrompt:=False;
Tmp_Query:=TadoQuery.Create(nil);
ConnStr:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;Jet OLEDB:Database Password=main()';
Tmp_Connection.ConnectionString:=ConnStr;
Tmp_Query.Connection:=Tmp_Connection;
Tmp_Query1:=TadoQuery.Create(nil);
Tmp_Query1.Connection:=Tmp_Connection;
//Tmp_Query.ConnectionString:=ConnStr;
end;

Function TmainFrm.intmsg():integer;
begin
dmfrm.Table_MSG.Open;
dmfrm.Table_MSG.DisableControls;
dmfrm.Table_MSG.Filtered:=false;
dmfrm.Table_MSG.Filtered:=true;
dmfrm.Table_MSG.EnableControls;
end;

Function TMainFrm.InitData():integer;
Var dbpassword:String;
Node,TmpNode:TTreenode;
tmp_pid,tmp_curid,i:integer;
sqlstr:string;
begin
Tmp_Query1.Close;
Tmp_Query1.SQL.Clear;
Tmp_Query1.SQL.Add('SELECT COUNT(*) FROM MSG');
Tmp_Query1.Prepared;
Tmp_Query1.Open;

TV.Items.Clear;
Node:=TV.Items.GetFirstNode;
TV.Items.AddChild(Node,'全部('+Tmp_Query1.Fields[0].ASSTRING+')');
Tmp_Query1.Close;
Node:=TV.TopItem;
setlength(node_pid,1);
node_pid[0]:=0;

While Node<>nil Do
Begin
    tmp_curid:=node_pid[node.AbsoluteIndex];
    Tmp_Query.Close;
    Tmp_Query.SQL.Clear;
    sqlstr:='SELECT ID,TYPE_NAME FROM TYPE_NAME WHERE PID=:PID ORDER BY TYPE_NAME ';
    Tmp_Query.SQL.Add(sqlstr);
    Tmp_Query.Parameters.ParamByName('PID').Value:=tmp_curid;
    Tmp_Query.Prepared;
    Tmp_Query.Open;
    Tmp_Query1.Close;
    Tmp_Query1.SQL.Clear;
    Tmp_Query1.SQL.Add('SELECT COUNT(*) FROM MSG WHERE TYPE=:TYPE');
        While Not Tmp_Query.Eof Do
        Begin
        Tmp_Query1.Close;
        Tmp_Query1.Parameters.ParamByName('TYPE').Value:=Tmp_Query.fieldbyname('ID').AsInteger;
        Tmp_Query1.Prepared;
        Tmp_Query1.Open;
        TmpNode:=TV.Items.AddChild(Node,Tmp_Query.fieldbyname('TYPE_NAME').AsString+'('+Tmp_Query1.Fields[0].ASSTRING+')');
        setlength(node_pid,tv.Items.Count);
        IF TmpNode.AbsoluteIndex<tv.Items.Count-1 Then
        begin
        For i:=length(node_pid)-1 downto TmpNode.AbsoluteIndex+1   do
        node_pid[i]:=node_pid[i-1];
        end;
        node_pid[TmpNode.AbsoluteIndex]:=Tmp_Query.fieldbyname('ID').AsInteger;
        Tmp_Query.Next;
        end;
    Node:=Node.GetNext;
end;
setlength(node_pid,tv.Items.Count+1);
Node:=TV.TopItem;
Tmp_Query.Close;
Tmp_Query1.Close;
Tmp_Query1.SQL.Clear;
Tmp_Query1.SQL.Add('SELECT COUNT(*) FROM MSG WHERE TYPE NOT IN(SELECT ID FROM TYPE_NAME)');
Tmp_Query1.Prepared;
Tmp_Query1.Open;
TmpNode:=TV.Items.AddChild(Node,'未分类('+Tmp_Query1.Fields[0].ASSTRING+')');
Tmp_Query1.Close;
node_pid[TmpNode.AbsoluteIndex]:=0;
end;

procedure TMainFrm.FormCreate(Sender: TObject);
begin
InitDB;
InitData;
tv.Items.Item[0].Expanded:=True;
end;

procedure TMainFrm.TVClick(Sender: TObject);
begin
if tv.Selected=nil then exit;
curfilt:=node_pid[TV.Selected.AbsoluteIndex];
intmsg();


end;

procedure TMainFrm.N1Click(Sender: TObject);
var Tmp_node:TTreeNode;
begin
  if tv.Selected<>nil then
  Begin
      Edit_Node:=tv.Selected.AbsoluteIndex;
      Edit_Type:=1;
      Type_EditFrm.ShowModal;
      if Type_EditFrm.ModalResult=mrOK Then
      begin
      InitData;
      Tmp_node:=tv.Items.Item[Edit_Node];
       While  Tmp_node<>nil Do
      begin
      Tmp_node.Expanded:=True;
      Tmp_node:=Tmp_node.Parent;
      end;
      End;
  end;
end;

procedure TMainFrm.N3Click(Sender: TObject);
var Tmp_nodeindex:integer;
Tmp_node:TTreeNode;
begin
  if tv.Selected<>nil then
  Begin
      Type_EditFrm.Name_Edit.Text:=TV.Selected.Text;
      Edit_Node:=tv.Selected.AbsoluteIndex;
      Edit_Type:=3;
      Type_EditFrm.ShowModal;
      if Type_EditFrm.ModalResult=mrOK Then
      begin
      InitData;
      Tmp_node:=tv.Items.Item[Edit_Node];
      While  Tmp_node<>nil Do
      begin
      Tmp_node.Expanded:=True;
      Tmp_node:=Tmp_node.Parent;
      end;
      End;
  end;
end;

procedure TMainFrm.N2Click(Sender: TObject);
var Tmp_nodeindex:integer;
Tmp_node:TTreeNode;
begin
  if tv.Selected<>nil then
  Begin
      Type_EditFrm.Name_Edit.Text:=TV.Selected.Text;
      Edit_Node:=tv.Selected.AbsoluteIndex;
      Edit_Type:=2;
      Type_EditFrm.ShowModal;
      if Type_EditFrm.ModalResult=mrOK Then
      begin
      InitData;
      Tmp_node:=tv.Items.Item[Edit_Node].Parent;
      While  Tmp_node<>nil Do
      begin
      Tmp_node.Expanded:=True;
      Tmp_node:=Tmp_node.Parent;
      end;
      End;
  end;

end;

procedure TMainFrm.N4Click(Sender: TObject);
var Tmp_node:TTreeNode;
begin
  if tv.Selected<>nil then
  Begin
      msg_Edit_Type:=1;
      dmfrm.Table_MSG.Insert;
      Msg_EditFrm.ShowModal;
  end;
end;

procedure TMainFrm.N5Click(Sender: TObject);
var Tmp_node:TTreeNode;
begin
  if tv.Selected<>nil then
  Begin
      msg_Edit_Type:=2;
      dmfrm.Table_MSG.Edit;
      Msg_EditFrm.ShowModal;
  end;

end;

procedure TMainFrm.N6Click(Sender: TObject);
begin
 if tv.Selected<>nil then
  Begin
  if MessageDlg('确定删除"'+#10+dmfrm.Table_MSG.Fields[1].AsString+'"?',mtConfirmation,mbOKCancel,0) = mrOk  then
      dmfrm.Table_MSG.Delete;
  end;
end;

procedure TMainFrm.DBGrid1DblClick(Sender: TObject);
//Var TmpFrm:TMsg_EditFrm;
begin
//TmpFrm:=TMsg_EditFrm.Create(nil);
//TmpFrm.Show;
N5.Click;
//Msg_EditFrm.Show;
end;

procedure TMainFrm.FormShow(Sender: TObject);
begin
dmfrm.Table_MSG.Active:=True;
dmfrm.table_type.Active:=TRUE;
end;

procedure TMainFrm.N7Click(Sender: TObject);
begin
InitData;
end;

procedure TMainFrm.Memo1Exit(Sender: TObject);
begin
if memo1.Text=''  Then
memo1.Text:='输入要检索的关键字'

end;

procedure TMainFrm.Memo1Enter(Sender: TObject);
begin
 if pos('输入要检索的关键字',memo1.Text)>0  Then
 BEGIN
memo1.Clear;
memo1.Font.Color:=$00000000
END;
end;

procedure TMainFrm.Button1Click(Sender: TObject);
begin
if (pos('输入要检索的关键字',memo1.Text)>0) OR  (memo1.Text='') tHEN exit;


end;

end.

⌨️ 快捷键说明

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