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

📄 principal.pas

📁 Aplicativo simples de usar para organizar sua agenda telef么nica.
💻 PAS
字号:
unit Principal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, DB, ADODB, Grids, DBGrids,
  Buttons, DBTables, XPMan;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edtNome: TEdit;
    edtEmpresa: TEdit;
    edtTelefone1: TEdit;
    spLetraA: TSpeedButton;
    spLetraC: TSpeedButton;
    spLetraE: TSpeedButton;
    spLetraG: TSpeedButton;
    spLetraI: TSpeedButton;
    spLetraK: TSpeedButton;
    spLetraM: TSpeedButton;
    spLetraO: TSpeedButton;
    spLetraQ: TSpeedButton;
    spLetraS: TSpeedButton;
    spLetraU: TSpeedButton;
    spLetraW: TSpeedButton;
    spLetraY: TSpeedButton;
    spLetraB: TSpeedButton;
    spLetraD: TSpeedButton;
    spLetraF: TSpeedButton;
    spLetraH: TSpeedButton;
    spLetraJ: TSpeedButton;
    spLetraL: TSpeedButton;
    spLetraN: TSpeedButton;
    spLetraP: TSpeedButton;
    spLetraR: TSpeedButton;
    spLetraT: TSpeedButton;
    spLetraV: TSpeedButton;
    spLetraX: TSpeedButton;
    spLetraZ: TSpeedButton;
    spLetraAZ: TSpeedButton;
    GroupBox3: TGroupBox;
    GroupBox4: TGroupBox;
    rdbNome: TRadioButton;
    rdbEmpresa: TRadioButton;
    Label4: TLabel;
    edtBusca: TEdit;
    chkBuscaInicio: TCheckBox;
    SpeedButton28: TSpeedButton;
    gridLista: TDBGrid;
    Label5: TLabel;
    edtTelefone2: TEdit;
    Label6: TLabel;
    edtTelefone3: TEdit;
    Label7: TLabel;
    memAnotacoes: TMemo;
    cmbTipo1: TComboBox;
    cmbTipo2: TComboBox;
    cmbTipo3: TComboBox;
    Database1: TDatabase;
    qryContatos: TQuery;
    qryExecucao: TQuery;
    dsContatos: TDataSource;
    qryContatosIdContato: TIntegerField;
    qryContatosNome: TStringField;
    qryContatosEmpresa: TStringField;
    qryContatosTelefone1: TStringField;
    qryContatosTipo1: TStringField;
    qryContatosTelefone2: TStringField;
    qryContatosTipo2: TStringField;
    qryContatosTelefone3: TStringField;
    qryContatosTipo3: TStringField;
    qryContatosAnotacao: TMemoField;
    SpeedButton29: TSpeedButton;
    SpeedButton30: TSpeedButton;
    SpeedButton31: TSpeedButton;
    DBEdit1: TDBEdit;
    lblOperacao: TLabel;
    lblIdContato: TLabel;
    XPManifest1: TXPManifest;
    procedure SpeedButton29Click(Sender: TObject);
    procedure SpeedButton30Click(Sender: TObject);
    procedure DBEdit1Change(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure spLetraAClick(Sender: TObject);
    procedure spLetraBClick(Sender: TObject);
    procedure spLetraCClick(Sender: TObject);
    procedure spLetraDClick(Sender: TObject);
    procedure spLetraEClick(Sender: TObject);
    procedure spLetraFClick(Sender: TObject);
    procedure spLetraGClick(Sender: TObject);
    procedure spLetraHClick(Sender: TObject);
    procedure spLetraIClick(Sender: TObject);
    procedure spLetraJClick(Sender: TObject);
    procedure spLetraKClick(Sender: TObject);
    procedure spLetraLClick(Sender: TObject);
    procedure spLetraMClick(Sender: TObject);
    procedure spLetraNClick(Sender: TObject);
    procedure spLetraOClick(Sender: TObject);
    procedure spLetraPClick(Sender: TObject);
    procedure spLetraQClick(Sender: TObject);
    procedure spLetraRClick(Sender: TObject);
    procedure spLetraSClick(Sender: TObject);
    procedure spLetraTClick(Sender: TObject);
    procedure spLetraUClick(Sender: TObject);
    procedure spLetraVClick(Sender: TObject);
    procedure spLetraWClick(Sender: TObject);
    procedure spLetraXClick(Sender: TObject);
    procedure spLetraYClick(Sender: TObject);
    procedure spLetraZClick(Sender: TObject);
    procedure spLetraAZClick(Sender: TObject);
    procedure SpeedButton28Click(Sender: TObject);
  private
    { Private declarations }
    procedure ListarContatos(letra: String);
    procedure CarregarDados;
    procedure LimparTela;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CarregarDados;
var i: Integer;
begin
  lblIdContato.Caption := qryContatosIdContato.AsString;
  edtNome.Text := qryContatosNome.AsString;
  edtEmpresa.Text := qryContatosEmpresa.AsString;
  edtTelefone1.Text := qryContatosTelefone1.AsString;
  for i:=0 to cmbTipo1.Items.Count-1 do
  begin
    if qryContatosTipo1.Text = cmbTipo1.Items.Strings[i] then
    begin
      cmbTipo1.ItemIndex := i;
      Break;
    end;
  end;
  edtTelefone2.Text := qryContatosTelefone2.AsString;
  for i:=0 to cmbTipo2.Items.Count-1 do
  begin
    if qryContatosTipo2.Text = cmbTipo2.Items.Strings[i] then
    begin
      cmbTipo2.ItemIndex := i;
      Break;
    end;
  end;
  edtTelefone3.Text := qryContatosTelefone3.AsString;
  for i:=0 to cmbTipo3.Items.Count-1 do
  begin
    if qryContatosTipo3.Text = cmbTipo3.Items.Strings[i] then
    begin
      cmbTipo3.ItemIndex := i;
      Break;
    end;
  end;
  memAnotacoes.Lines.Add(qryContatosAnotacao.AsString);

  lblOperacao.Caption := '000';
end;

procedure TForm1.LimparTela;
begin
  edtNome.Clear;
  edtEmpresa.Clear;
  edtTelefone1.Clear;
  cmbTipo1.ItemIndex := -1;
  edtTelefone2.Clear;
  cmbTipo2.ItemIndex := -1;
  edtTelefone3.Clear;
  cmbTipo3.ItemIndex := -1;
  memAnotacoes.Lines.Clear;
end;

procedure TForm1.SpeedButton29Click(Sender: TObject);
begin
  LimparTela;
  lblOperacao.Caption := '1';
  edtNome.SetFocus;
end;

procedure TForm1.SpeedButton30Click(Sender: TObject);
var vNome, vEmpresa,
    vTelefone1, vTipo1, vTelefone2, vTipo2, vTelefone3, vTipo3,
    vAnotacao: String;
    IdContato: Integer;
begin
  vNome      := #39+edtNome.Text+#39;
  vEmpresa   := #39+edtEmpresa.Text+#39;
  vTelefone1 := #39+edtTelefone1.Text+#39;
  vTipo1     := #39+cmbTipo1.Text+#39;
  vTelefone2 := #39+edtTelefone2.Text+#39;
  vTipo2     := #39+cmbTipo2.Text+#39;
  vTelefone3 := #39+edtTelefone3.Text+#39;
  vTipo3     := #39+cmbTipo3.Text+#39;
  vAnotacao  := #39+memAnotacoes.Lines.Text+#39;

  if StrToInt(lblOperacao.Caption) = 1 then
  begin
    with qryExecucao do
    begin
      Close;
      SQL.Clear;
      SQL.Add('INSERT INTO Contatos (Nome, Empresa, Telefone1, Tipo1, Telefone2, Tipo2, Telefone3, Tipo3, Anotacao)');
      SQL.Add('VALUES');
      SQL.Add('('+vNome+','+vEmpresa+','+vTelefone1+','+vTipo1+','+vTelefone2+','+vTipo2+','+vTelefone3+','+vTipo3+','+vAnotacao+')');
      ExecSQL;
    end;
    with qryExecucao do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT * FROM Contatos ');
      SQL.Add('WHERE Nome  = '+vNome);
      SQL.Add('AND Empresa  = '+vEmpresa);
      SQL.Add('AND Telefone1  = '+vTelefone1);
      SQL.Add('AND Telefone2  = '+vTelefone2);
      SQL.Add('AND Telefone3  = '+vTelefone3);
      Open;
      Last;
    end;
    IdContato := qryExecucao.FieldValues['IdContato'];
  end
  else
  begin
    IdContato := qryContatosIdContato.AsInteger;
    with qryExecucao do
    begin
      Close;
      SQL.Clear;
      SQL.Add('UPDATE Contatos SET ');
      SQL.Add('Nome = '+vNome+', ');
      SQL.Add('Empresa = '+vEmpresa+', ');
      SQL.Add('Telefone1 = '+vTelefone1+', ');
      SQL.Add('Tipo1 = '+vTipo1+', ');
      SQL.Add('Telefone2 = '+vTelefone2+', ');
      SQL.Add('Tipo2 = '+vTipo2+', ');
      SQL.Add('Telefone3 = '+vTelefone3+', ');
      SQL.Add('Tipo3 = '+vTipo3+', ');
      SQL.Add('Anotacao = '+vAnotacao+' ');
      SQL.Add('WHERE IdContato = '+lblIdContato.Caption);
      ExecSQL;
    end;
  end;

  qryExecucao.Close;


  with qryContatos do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM Contatos ');
    SQL.Add('ORDER BY Nome ');
    Open;
  end;

  qryContatos.Locate('IdContato', IdContato, []);
  lblOperacao.Caption := '0';
end;

procedure TForm1.DBEdit1Change(Sender: TObject);
begin
  CarregarDados;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  qryContatos.Close;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  qryContatos.Open;
end;

procedure TForm1.ListarContatos(letra: String);
begin
  with qryContatos do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM Contatos ');
    SQL.Add('WHERE Nome LIKE '+#39+letra+'%'+#39);
    SQL.Add('ORDER BY Nome ');
    Open;
  end;
end;

procedure TForm1.spLetraAClick(Sender: TObject);
begin
  ListarContatos('A');
end;

procedure TForm1.spLetraBClick(Sender: TObject);
begin
  ListarContatos('B');
end;

procedure TForm1.spLetraCClick(Sender: TObject);
begin
  ListarContatos('C');
end;

procedure TForm1.spLetraDClick(Sender: TObject);
begin
  ListarContatos('D');
end;

procedure TForm1.spLetraEClick(Sender: TObject);
begin
  ListarContatos('E');
end;

procedure TForm1.spLetraFClick(Sender: TObject);
begin
  ListarContatos('F');
end;

procedure TForm1.spLetraGClick(Sender: TObject);
begin
  ListarContatos('G');
end;

procedure TForm1.spLetraHClick(Sender: TObject);
begin
  ListarContatos('H');
end;

procedure TForm1.spLetraIClick(Sender: TObject);
begin
  ListarContatos('I');
end;

procedure TForm1.spLetraJClick(Sender: TObject);
begin
  ListarContatos('J');
end;

procedure TForm1.spLetraKClick(Sender: TObject);
begin
  ListarContatos('K');
end;

procedure TForm1.spLetraLClick(Sender: TObject);
begin
  ListarContatos('L');
end;

procedure TForm1.spLetraMClick(Sender: TObject);
begin
  ListarContatos('M');
end;

procedure TForm1.spLetraNClick(Sender: TObject);
begin
  ListarContatos('N');
end;

procedure TForm1.spLetraOClick(Sender: TObject);
begin
  ListarContatos('O');
end;

procedure TForm1.spLetraPClick(Sender: TObject);
begin
  ListarContatos('P');
end;

procedure TForm1.spLetraQClick(Sender: TObject);
begin
  ListarContatos('Q');
end;

procedure TForm1.spLetraRClick(Sender: TObject);
begin
  ListarContatos('R');
end;

procedure TForm1.spLetraSClick(Sender: TObject);
begin
  ListarContatos('S');
end;

procedure TForm1.spLetraTClick(Sender: TObject);
begin
  ListarContatos('T');
end;

procedure TForm1.spLetraUClick(Sender: TObject);
begin
  ListarContatos('U');
end;

procedure TForm1.spLetraVClick(Sender: TObject);
begin
  ListarContatos('V');
end;

procedure TForm1.spLetraWClick(Sender: TObject);
begin
  ListarContatos('W');
end;

procedure TForm1.spLetraXClick(Sender: TObject);
begin
  ListarContatos('X');
end;

procedure TForm1.spLetraYClick(Sender: TObject);
begin
  ListarContatos('Y');
end;

procedure TForm1.spLetraZClick(Sender: TObject);
begin
  ListarContatos('Z');
end;

procedure TForm1.spLetraAZClick(Sender: TObject);
begin
  ListarContatos('');
end;

procedure TForm1.SpeedButton28Click(Sender: TObject);
begin
  with qryContatos do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM Contatos ');
    if chkBuscaInicio.Checked then
    begin
      if rdbNome.Checked then
        SQL.Add('WHERE Nome LIKE '+#39+'%'+edtBusca.Text+'%'+#39);
      if rdbEmpresa.Checked then
        SQL.Add('WHERE Empresa LIKE '+#39+'%'+edtBusca.Text+'%'+#39);
    end
    else
    begin
      if rdbNome.Checked then
        SQL.Add('WHERE Nome LIKE '+#39+edtBusca.Text+'%'+#39);
      if rdbEmpresa.Checked then
        SQL.Add('WHERE Empresa LIKE '+#39+edtBusca.Text+'%'+#39);
    end;
    SQL.Add('ORDER BY Nome ');
    Open;
  end;
end;

end.

⌨️ 快捷键说明

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