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

📄 ufrmmain.pas

📁 用delphi写的界面代码和功能代码分离程序
💻 PAS
字号:
unit ufrmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, clsUser;

type
  TfrmMain = class(TForm)
    ListView1: TListView;
    btnModi: TBitBtn;
    btnAdd: TBitBtn;
    btnDel: TBitBtn;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    edtKey_Name: TEdit;
    btnFind: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure btnModiClick(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure btnFindClick(Sender: TObject);
  private
    { Private declarations }
    FCurID: Integer;
    procedure SetItemByUser(const AUser: TUser; const AListItem: TListItem);
    function GetUserFromItem(const AListItem: TListItem): TUser;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation
uses clsUser_Operater, ufrmUser;
{$R *.dfm}

procedure TfrmMain.SetItemByUser(const AUser: TUser; const AListItem: TListItem);
begin
  if (AUser <> nil) and (AListItem <> nil) then
  begin
    AListItem.Caption := IntToStr(AUser.ID);
    AListItem.SubItems.Clear;
    AListItem.SubItems.Add(AUser.UserName);
    AListItem.SubItems.Add(AUser.Sex);
    AListItem.SubItems.Add(IntToStr(AUser.Age));
  end;
end;

function TfrmMain.GetUserFromItem(const AListItem: TListItem): TUser;
var
  AUser: TUser;
begin
  Result := nil;
  if AListItem <> nil then
  begin
    AUser := TUser.Create;
    AUser.ID := FCurID;
    AUser.UserName := AListItem.SubItems[0];
    AUser.Sex := AListItem.SubItems[1];
    AUser.Age := StrToInt(AListItem.SubItems[2]);
    AUser := ufrmUser.GetUser(AUser);
    Result := AUser;
  end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
  AUser: TUser;
  arrUser: TArrUser;
  AUser_Operater: TUser_Operater;
  AListItem: TListItem;
  i, iEnd: Integer;
begin
  try
    AUser_Operater := TUser_Operater.Create;
    arrUser := AUser_Operater.GetAllUsers;
    iEnd := Length(arrUser) - 1;
    for i := 0 to iEnd do
    begin
      AUser := arrUser[i];
      AListItem := ListView1.Items.Add;
      SetItemByUser(AUser, AListItem);
    end;
  finally
    AUser.Free;
    AUser_Operater.Free;
    arrUser := nil;
  end;
end;

procedure TfrmMain.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  FCurID := StrToInt(Item.Caption);
end;

procedure TfrmMain.btnModiClick(Sender: TObject);
var
  AUser: TUser;
  AUser_Operater: TUser_Operater;
begin
  if (ListView1.Selected <> nil) then
  begin
    try
      AUser := GetUserFromItem(ListView1.Selected);
      AUser_Operater := TUser_Operater.Create;

      if AUser <> nil then
      begin
        AUser_Operater.SetUser(AUser);
        SetItemByUser(AUser, ListView1.Selected);
        ShowMessage('数据更新完毕');
      end;
    finally
      AUser.Free;
      AUser_Operater.Free;
    end;
  end else
    ShowMessage('请选择要进行操作的数据');
end;

procedure TfrmMain.btnAddClick(Sender: TObject);
var
  AUser: TUser;
  AUser_Operater: TUser_Operater;
  AListItem: TListItem;
begin
  try
    AUser_Operater := TUser_Operater.Create;

    AUser := ufrmUser.GetUser(nil);
    if AUser <> nil then
    begin
      AUser.ID := AUser_Operater.AddUser(AUser);
      AListItem := ListView1.Items.Add;
      SetItemByUser(AUser, AListItem);
      ShowMessage('数据添加完毕');
    end;
  finally
    AUser.Free;
    AUser_Operater.Free;
  end;
end;

procedure TfrmMain.btnDelClick(Sender: TObject);
var
  AUser_Operater: TUser_Operater;
begin
  if (ListView1.Selected <> nil) then
  begin
    try
      AUser_Operater := TUser_Operater.Create;
      AUser_Operater.DelUserByID(FCurID);
      ListView1.Selected.Delete;
    finally
      AUser_Operater.Free;
    end;
  end else
    ShowMessage('请选择要进行操作的数据');
end;

procedure TfrmMain.btnFindClick(Sender: TObject);
var
  AUser: TUser;
  arrUser: TArrUser;
  AUser_Operater: TUser_Operater;
  AListItem: TListItem;
  i, iEnd: Integer;
begin
  try
    AUser_Operater := TUser_Operater.Create;
    arrUser := AUser_Operater.GetUsersByUserName(edtKey_Name.Text);
    iEnd := Length(arrUser) - 1;
    ListView1.Items.Clear;
    for i := 0 to iEnd do
    begin
      AUser := arrUser[i];
      AListItem := ListView1.Items.Add;
      SetItemByUser(AUser, AListItem);
    end;
  finally
    AUser.Free;
    AUser_Operater.Free;
    arrUser := nil;
  end;
end;

end.

⌨️ 快捷键说明

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