?? operator.pas
字號(hào):
unit operator;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, Grids, DBGrids, DBTables, ExtCtrls, StdCtrls, Buttons;
type
TFrm_operator = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
BtBtn_New: TBitBtn;
BtBtn_Edit: TBitBtn;
BtBtn_Delete: TBitBtn;
BtBtn_Close: TBitBtn;
Bevel1: TBevel;
Bevel2: TBevel;
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure BtBtn_NewClick(Sender: TObject);
procedure BtBtn_EditClick(Sender: TObject);
procedure BtBtn_DeleteClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid1DblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_operator: TFrm_operator;
implementation
uses sys_dm, sys_global, OperatorAdd;
{$R *.DFM}
procedure TFrm_operator.FormShow(Sender: TObject);
begin
with frm_sys_dm.Qr_tmp1 do
begin
close;
sql.text := 'select * from operator order by id' ;
open;
end;
end;
procedure TFrm_operator.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_escape then close ;
if key = VK_SPACE then BtBtn_Edit.Click ;
if key = vk_delete then BtBtn_Delete.Click;
if (key=ord('N')) and (shift-[ssalt]-[ssshift]+[ssctrl]=shift) then
BtBtn_New.Click ;
end;
procedure TFrm_operator.DBGrid1DblClick(Sender: TObject);
begin
BtBtn_Edit.Click ;
end;
procedure TFrm_operator.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
frm_sys_dm.qr_tmp1.close;
frm_sys_dm.qr_tmp2.close;
end;
procedure TFrm_operator.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
cellheight : integer ;
begin
cellheight := rect.bottom-rect.top+1;
with (sender as TDbgrid).canvas do
begin
font.color := clblack;
if gdselected in state then begin
font.color := clwhite;
brush.color := clhighlight;
end
else if (rect.top div cellheight) mod 2 <> 0 then begin
brush.color := clwindow;
end else
brush.Color := 16772846 ;
FillRect(rect);
textout(rect.left+2,rect.top+2,dbgrid1.columns[datacol].field.asstring);
end;
end;
procedure TFrm_operator.BtBtn_NewClick(Sender: TObject);
begin
m_mode := 'a' ;
Frm_OperatorAdd := TFrm_OperatorAdd.create(application);
Frm_OperatorAdd.showmodal;
Frm_OperatorAdd.free ;
end;
procedure TFrm_operator.BtBtn_EditClick(Sender: TObject);
begin
m_mode := 'e' ;
Frm_OperatorAdd := TFrm_OperatorAdd.create(application);
Frm_OperatorAdd.showmodal;
Frm_OperatorAdd.free ;
end;
procedure TFrm_operator.BtBtn_DeleteClick(Sender: TObject);
var
M_Id: string;
M_NextId: string;
M_Name: string;
begin
M_Id := frm_sys_dm.qr_tmp1.Fields[0].AsString ;
M_Name := frm_sys_dm.qr_tmp1.Fields[1].AsString ;
if UpperCase(M_Id) = 'SYS' then
begin
application.MessageBox(' 系統(tǒng)管理員不能刪除 !','信息提示',MB_ok+mb_iconstop);
exit;
end;
// 得到下一條記錄的ID
frm_sys_dm.qr_tmp1.Next ;
if frm_sys_dm.qr_tmp1.eof then
begin
frm_sys_dm.qr_tmp1.prior;
M_NextId := frm_sys_dm.qr_tmp1.Fields[0].AsString ;
frm_sys_dm.qr_tmp1.Next;
end else
begin
M_NextId := frm_sys_dm.qr_tmp1.Fields[0].AsString ;
frm_sys_dm.qr_tmp1.prior;
end;
if application.MessageBox(pchar(M_Id+'--'+M_Name+' 將被刪去, 您確定嗎?'),'信息提示',MB_yesno+mb_iconquestion+MB_DEFBUTTON2)=ID_yes then
with frm_sys_dm.qr_tmp2 do
begin
close;
sql.clear;
sql.Add('delete from operator where id = '''+M_Id+'''');
try
ExecSQL; // 執(zhí)行SQL
with frm_sys_dm.qr_tmp1 do // DBGRID重新顯示
begin
close;
open;
// 查找下一條記錄
locate('id',M_NextId,[]);
end;
except
application.messagebox('電腦出錯(cuò),未能刪除該條記錄!','錯(cuò)誤提示',mb_ok+mb_iconstop);
exit;
end;
end;
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -