📄 unit4.~pas
字号:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, ComCtrls;
type
TSearchForm = class(TForm)
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
DBGrid1: TDBGrid;
Button2: TButton;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Edit6: TEdit;
GroupBox1: TGroupBox;
Image1: TImage;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
RichEdit1: TRichEdit;
ComboBox2: TComboBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1Enter(Sender: TObject);
procedure ComboBox1Select(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Button4Click(Sender: TObject);
procedure DBGrid1Enter(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure ComboBox2Exit(Sender: TObject);
procedure Edit5Exit(Sender: TObject);
procedure Edit6Exit(Sender: TObject);
procedure RichEdit1Exit(Sender: TObject);
private
{ Private declarations }
str:string;
flag:Boolean;
change:Boolean;
public
{ Public declarations }
end;
var
SearchForm: TSearchForm;
implementation
uses Unit1, Unit3;
{$R *.dfm}
procedure TSearchForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
SearchForm:=nil;
MainForm.Enabled:=TRUE;
end;
procedure TSearchForm.Edit1Enter(Sender: TObject);
begin
if ComboBox1.ItemIndex=-1 then
begin
ShowMessage('请选择查询方式!');
ComboBox1.SetFocus;
end;
end;
procedure TSearchForm.ComboBox1Select(Sender: TObject);
begin
if ComboBox1.ItemIndex=0 then
begin
str:='Number';
Edit1.Clear;
Edit1.SetFocus;
end
else if ComboBox1.ItemIndex=1 then
begin
str:='Name';
Edit1.Clear;
Edit1.SetFocus;
end;
end;
procedure TSearchForm.FormCreate(Sender: TObject);
begin
flag:=FALSE;
change:=FALSE;
DataModule1.ADOQuery1.Active:=TRUE;
DBGrid1.DataSource:=DataModule1.DataSource1;
end;
procedure TSearchForm.Button2Click(Sender: TObject);
begin
if MessageDlg('是否删除 '+'"'+DBGrid1.Fields[1].asString+'"'+' 的记录?',
mtInformation, mbOKCancel, 0)=1 then
DataModule1.ADOQuery1.Delete;
end;
procedure TSearchForm.Button5Click(Sender: TObject);
begin
SearchForm.Close;
end;
procedure TSearchForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if str='Number' then
if not (Key in['0'..'9', #8]) then
begin
Key:=#0;
MessageBeep(1);
end;
if str='Name' then
if(Key<>#8) and (ord(Key)<128) then
begin
Key:=#0;
MessageBeep(1);
end;
end;
procedure TSearchForm.Button1Click(Sender: TObject);
var sSQL:string;
begin
if (str='Number') AND (Edit1.GetTextLen<8) then
begin
ShowMessage('请输入8位编号!');
Edit1.SetFocus;
end
else if (str='Name') AND (Edit1.GetTextLen=2) then
begin
ShowMessage('不能只输入一个汉字!');
Edit1.SetFocus;
end
else
begin
sSQL:='select Number,Name,Sex,Age,Address,Comment '
+' from 表1 '+'where '+str+'='+'"'+Edit1.text+'" '
+'order by Number ASC';
with DataModule1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSQL);
ADOQuery1.ExecSQL;
ADOQuery1.Active:=TRUE;
end;
end;
end;
procedure TSearchForm.Button6Click(Sender: TObject);
var sSQL:string;
begin
ComboBox1.ItemIndex:=-1;
Edit1.Clear;
sSQL:='select * from 表1';
with DataModule1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSQL);
ADOQuery1.ExecSQL;
ADOQuery1.Active:=TRUE;
end;
end;
procedure TSearchForm.DBGrid1CellClick(Column: TColumn);
begin
Edit2.Text:=DBGrid1.Fields[0].AsString;
Edit3.Text:=DBGrid1.Fields[1].AsString;
if DBGrid1.Fields[2].AsString='男' then
ComboBox2.ItemIndex:=0
else ComboBox2.ItemIndex:=1;
Edit5.Text:=DBGrid1.Fields[3].AsString;
Edit6.Text:=DBGrid1.Fields[4].AsString;
RichEdit1.Text:=DBGrid1.Fields[5].AsString;
end;
procedure TSearchForm.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in['0'..'9', #8]) then
begin
Key:=#0;
MessageBeep(1);
end;
end;
procedure TSearchForm.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if(Key<>#8) and (ord(Key)<128) then
begin
Key:=#0;
MessageBeep(1);
end;
end;
procedure TSearchForm.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in['0'..'9', #8]) then
begin
Key:=#0;
MessageBeep(1);
end;
end;
procedure TSearchForm.Button4Click(Sender: TObject);
var sSQL:string;
begin
if flag=FALSE then
ShowMessage('请选择要修改的记录项!')
else if Edit2.GetTextLen<8 then
begin
ShowMessage('请输入8位编号!');
Edit2.SetFocus;
end
else if Edit3.GetTextLen<4 then
begin
ShowMessage('请正确输入姓名!');
Edit3.SetFocus;
end
else if (Edit5.Text='') OR ((StrToInt(Edit5.Text)<18)
OR (StrToInt(Edit5.Text)>55)) then
begin
ShowMessage('请输入18到55之间的年龄!');
Edit5.SetFocus;
end
else if (DBGrid1.Fields[0].AsString=Edit2.Text) AND change then
if MessageDlg('是否对人员信息进行修改', mtInformation, mbOKCancel, 0)=1 then
begin
sSQL:='update 表1 set Name="'+Edit3.Text+'", Sex="'+ComboBox2.Text
+'", Age="'+Edit5.Text+'", Address="'+Edit6.Text+'", Comment'
+'="'+RichEdit1.Text+'" where Number='+'"'+Edit2.Text+'"';
with DataModule1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSQL);
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Number,Name,Sex,Age,Address,Comment from 表1'
+' order by Number ASC');
ADOQuery1.ExecSQL;
ADOQuery1.Active:=TRUE;
end;
change:=FALSE;
sSQL:='';
end;
if (DBGrid1.Fields[0].AsString<>Edit2.Text) AND change then
if MessageDlg('是否改变人员的编号?', mtInformation, mbOKCancel, 0)=1 then
begin
try
sSQL:='insert into 表1 values('+'"'+Edit2.Text+'","'+Edit3.Text+
'","'+ComboBox1.Text+'","'+Edit5.Text+'","'+Edit6.Text+
'","'+RichEdit1.Text+'",'+'" ")';
showmessage(sSQL);
with DataModule1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSQL);
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Number,Name,Sex,Age,Address,Comment from 表1'
+' order by Number ASC');
ADOQuery1.ExecSQL;
ADOQuery1.Active:=TRUE;
end;
except
with DataModule1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Number,Name,Sex,Age,Address,Comment from 表1'
+' order by Number ASC');
ADOQuery1.ExecSQL;
ADOQuery1.Active:=TRUE;
end;
ShowMessage('编号 '+Edit2.Text+' 已经存在!');
end;
change:=FALSE;
sSQL:='';
end;
end;
procedure TSearchForm.DBGrid1Enter(Sender: TObject);
begin
flag:=TRUE;
end;
procedure TSearchForm.Edit2Exit(Sender: TObject);
begin
if DBGrid1.Fields[0].AsString<>Edit2.Text then
change:=TRUE;
end;
procedure TSearchForm.Edit3Exit(Sender: TObject);
begin
if DBGrid1.Fields[1].AsString<>Edit3.Text then
change:=TRUE;
end;
procedure TSearchForm.ComboBox2Exit(Sender: TObject);
begin
if DBGrid1.Fields[2].AsString<>ComboBox1.Text then
change:=TRUE;
end;
procedure TSearchForm.Edit5Exit(Sender: TObject);
begin
if DBGrid1.Fields[3].AsString<>Edit5.Text then
change:=TRUE;
end;
procedure TSearchForm.Edit6Exit(Sender: TObject);
begin
if DBGrid1.Fields[4].AsString<>Edit6.Text then
change:=TRUE;
end;
procedure TSearchForm.RichEdit1Exit(Sender: TObject);
begin
if DBGrid1.Fields[5].AsString<>RichEdit1.Text then
change:=TRUE;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -