📄 principal.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 + -