📄 gz_shezhi_unit.~pas
字号:
unit gz_shezhi_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, DBNavPlus, Grids, DBGridEh, DB, DBTables,
StdCtrls, CalcExpress, ComCtrls, Mask, RzEdit, RzSpnEdt, Animate, GIFCtrl;
type
Tgz_shezhi = class(TForm)
Panel1: TPanel;
DBNavPlus1: TDBNavPlus;
vars: TDBMemo;
Values: TDBMemo;
Table1: TTable;
DataSource1: TDataSource;
CalcExpress1: TCalcExpress;
Panel2: TPanel;
StatusBar1: TStatusBar;
Splitter1: TSplitter;
dbedt_biaozhi: TDBEdit;
dbedt_gzdm: TDBEdit;
dbedt_xsmc: TDBEdit;
dbedt_zdkd: TDBEdit;
dbedt_gongshi: TDBEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
cb_biaozhi: TComboBox;
edt_xsmc: TEdit;
rse_zdkd: TRzSpinEdit;
edt_gongshi: TEdit;
Memo1: TMemo;
Panel3: TPanel;
Button3: TButton;
Button7: TButton;
Button9: TButton;
Button4: TButton;
Button8: TButton;
Button12: TButton;
Button5: TButton;
Button11: TButton;
Button6: TButton;
Button10: TButton;
edt_xs: TEdit;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Button22: TButton;
Button23: TButton;
Button24: TButton;
Button25: TButton;
rg_xz: TRadioGroup;
cb_gjzd: TComboBox;
Button2: TButton;
Button13: TButton;
Button1: TButton;
Button14: TButton;
Button26: TButton;
RxGIFAnimator1: TRxGIFAnimator;
DBGridEh1: TDBGridEh;
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure cb_biaozhiClick(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure rg_xzClick(Sender: TObject);
procedure cb_gjzdChange(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
gz_shezhi: Tgz_shezhi;
implementation
{$R *.dfm}
procedure Tgz_shezhi.Button3Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '+';
edt_xs.Text := edt_xs.Text + '+';
end;
procedure Tgz_shezhi.Button4Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '-';
edt_xs.Text := edt_xs.Text + '-';
end;
procedure Tgz_shezhi.Button5Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '*';
edt_xs.Text := edt_xs.Text + '*';
end;
procedure Tgz_shezhi.Button6Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '/';
edt_xs.Text := edt_xs.Text + '/';
end;
procedure Tgz_shezhi.Button7Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '(';
edt_xs.Text := edt_xs.Text + '(';
end;
procedure Tgz_shezhi.Button8Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + ')';
edt_xs.Text := edt_xs.Text + ')';
end;
procedure Tgz_shezhi.Button10Click(Sender: TObject);
begin
edt_gongshi.Text := '';
edt_xs.Text := '';
memo1.Lines.Clear;
end;
procedure Tgz_shezhi.Button9Click(Sender: TObject);
var
i: integer;
biaozhi_zd: integer;
begin
biaozhi_zd := 0;
if table1.RecNo < 6 then
begin
Application.MessageBox('字段a1到a5不能做为计算变量!', '重新选择', MB_ICONWARNING);
exit;
end
else
edt_gongshi.Text := edt_gongshi.Text + table1['gzdm'];
edt_xs.Text := edt_xs.Text + table1['xsmc'];
if memo1.Lines.Count = 0 then
begin
memo1.Lines.Clear;
memo1.Lines.Add(table1['gzdm']);
end
else
begin
for i := 0 to memo1.Lines.Count do
begin
if uppercase(memo1.Lines.Strings[i]) = uppercase(table1['gzdm']) then
biaozhi_zd := 1;
end;
if biaozhi_zd = 0 then
memo1.Lines.Add(table1['gzdm']);
end;
end;
procedure Tgz_shezhi.Button11Click(Sender: TObject);
begin
if strlen(pchar(edt_gongshi.Text)) > 0 then
begin
edt_gongshi.Text := copy(edt_gongshi.Text, 1, strlen(pchar(edt_gongshi.Text)) - 1);
end;
end;
procedure Tgz_shezhi.cb_biaozhiClick(Sender: TObject);
begin
if cb_biaozhi.ItemIndex = 1 then
panel3.Visible := true
else
panel3.Visible := false;
end;
procedure Tgz_shezhi.Button12Click(Sender: TObject);
var
i: integer;
rp: pchar;
begin
if memo1.Lines.Count > 0 then
begin
for i := memo1.Lines.Count to 0 do
begin
rp := strpos(pchar(edt_gongshi.text), pchar(memo1.Lines.Strings[i]));
if rp = nil then
memo1.Lines.Delete(i);
end;
end;
end;
procedure Tgz_shezhi.rg_xzClick(Sender: TObject);
var
i: integer;
begin
if rg_xz.ItemIndex = 0 then
begin
cb_gjzd.Items.Clear;
table1.First;
for i := 1 to 30 do
table1.Next;
with table1 do
while not eof do
begin
cb_gjzd.Items.Add(table1['gzdm'] + ' ' + table1['xsmc']);
table1.Next;
end;
cb_gjzd.ItemIndex := 0;
end;
if rg_xz.ItemIndex = 1 then
begin
cb_gjzd.Items.Clear;
for i := 1 to 150 do
if not table1.Locate('gzdm', 'a' + inttostr(i), [locaseinsensitive]) then
cb_gjzd.Items.Add('a' + inttostr(i));
cb_gjzd.ItemIndex := 0;
end;
end;
procedure Tgz_shezhi.cb_gjzdChange(Sender: TObject);
begin
if table1.Locate('gzdm', trim(copy(cb_gjzd.Text, 1, 3)), [locaseinsensitive]) then
begin
cb_biaozhi.ItemIndex := table1['biaozhi'];
if table1['biaozhi'] = 1 then
panel3.Visible := true
else
panel3.Visible := false;
edt_xsmc.Text := table1['xsmc'];
rse_zdkd.Value := table1['zdkd'];
if table1['gongshi'] = null then
edt_gongshi.Text := ''
else
edt_gongshi.Text := table1['gongshi'];
memo1.Lines.Clear;
memo1.Lines.AddStrings(vars.Lines);
end;
end;
procedure Tgz_shezhi.Button2Click(Sender: TObject);
var
shanchu_xs: string;
begin
if table1.RecNo < 30 then
begin
Application.MessageBox('字段a1到a30不能做为计算变量!', '重新选择', MB_ICONWARNING);
exit;
end
else
begin
shanchu_xs := '真的要删除 ' + table1['gzdm'] + ' (' + table1['xsmc'] + ' )这项吗?';
// Application.MessageBox('真的要删除 '+pchar(shanchu_xs)+'这项吗?', '请慎重选择!', MB_OKCANCEL + MB_ICONQUESTION) = IDOK
if Application.MessageBox(pchar(shanchu_xs), '请慎重选择!', MB_OKCANCEL + MB_ICONQUESTION) = IDOK then
table1.Delete;
end;
end;
procedure Tgz_shezhi.Button13Click(Sender: TObject);
begin
if trim(edt_xsmc.Text) = '' then
begin
Application.MessageBox('应填写〔显示名称〕!', '重新填写', MB_ICONWARNING);
exit;
end;
if cb_biaozhi.ItemIndex = 1 then
begin
if trim(edt_gongshi.Text) = '' then
begin
Application.MessageBox('公式不能唯空!', '重新填写', MB_ICONWARNING);
exit;
end;
if memo1.Lines.Count = 0 then
begin
Application.MessageBox('没有参与公式计算的变量!', '重新填写', MB_ICONWARNING);
exit;
end;
end;
if rg_xz.ItemIndex = 0 then
begin
if table1.Locate('gzdm', trim(copy(cb_gjzd.Text, 1, 3)), [locaseinsensitive]) then
begin
table1.Edit;
table1['biaozhi'] := cb_biaozhi.ItemIndex;
table1['xsmc'] := edt_xsmc.Text;
table1['zdkd'] := rse_zdkd.Value;
table1['gongshi'] := edt_gongshi.Text;
vars.Lines.Clear;
vars.Lines.AddStrings(memo1.Lines);
table1.Post;
Application.MessageBox('保存成功!', '提示', mb_ok);
end;
end;
if rg_xz.ItemIndex = 1 then
begin
if Application.MessageBox('是否选择好了添加位置?', '请慎重选择!', MB_OKCANCEL + MB_ICONQUESTION) = IDOK then
begin
table1.Insert;
table1['biaozhi'] := cb_biaozhi.ItemIndex;
table1['gzdm'] := cb_gjzd.text;
table1['xsmc'] := edt_xsmc.Text;
table1['zdkd'] := rse_zdkd.Value;
table1['gongshi'] := edt_gongshi.Text;
vars.Lines.Clear;
vars.Lines.AddStrings(memo1.Lines);
table1.Post;
Application.MessageBox('添加成功!', '提示', mb_ok);
end;
end;
end;
procedure Tgz_shezhi.Button15Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '0';
edt_xs.Text := edt_xs.Text + '0';
end;
procedure Tgz_shezhi.Button16Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '1';
edt_xs.Text := edt_xs.Text + '1';
end;
procedure Tgz_shezhi.Button17Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '2';
edt_xs.Text := edt_xs.Text + '2';
end;
procedure Tgz_shezhi.Button18Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '3';
edt_xs.Text := edt_xs.Text + '3';
end;
procedure Tgz_shezhi.Button19Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '4';
edt_xs.Text := edt_xs.Text + '4';
end;
procedure Tgz_shezhi.Button20Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '5';
edt_xs.Text := edt_xs.Text + '5';
end;
procedure Tgz_shezhi.Button21Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '6';
edt_xs.Text := edt_xs.Text + '6';
end;
procedure Tgz_shezhi.Button22Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '7';
edt_xs.Text := edt_xs.Text + '7';
end;
procedure Tgz_shezhi.Button23Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '8';
edt_xs.Text := edt_xs.Text + '8';
end;
procedure Tgz_shezhi.Button24Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '9';
edt_xs.Text := edt_xs.Text + '9';
end;
procedure Tgz_shezhi.Button25Click(Sender: TObject);
begin
edt_gongshi.Text := edt_gongshi.Text + '.';
edt_xs.Text := edt_xs.Text + '.';
end;
procedure Tgz_shezhi.Button1Click(Sender: TObject);
begin
if trim(edt_xsmc.Text) = '' then
begin
Application.MessageBox('应填写〔显示名称〕!', '重新填写', MB_ICONWARNING);
exit;
end;
if cb_biaozhi.ItemIndex = 1 then
begin
if trim(edt_gongshi.Text) = '' then
begin
Application.MessageBox('公式不能唯空!', '重新填写', MB_ICONWARNING);
exit;
end;
if memo1.Lines.Count = 0 then
begin
Application.MessageBox('没有参与公式计算的变量!', '重新填写', MB_ICONWARNING);
exit;
end;
end;
if rg_xz.ItemIndex = 0 then
begin
if table1.Locate('gzdm', trim(copy(cb_gjzd.Text, 1, 3)), [locaseinsensitive]) then
begin
table1.Edit;
table1['biaozhi'] := cb_biaozhi.ItemIndex;
table1['xsmc'] := edt_xsmc.Text;
table1['zdkd'] := rse_zdkd.Value;
table1['gongshi'] := edt_gongshi.Text;
vars.Lines.Clear;
vars.Lines.AddStrings(memo1.Lines);
table1.Post;
Application.MessageBox('保存成功!', '提示', mb_ok);
end;
end;
if rg_xz.ItemIndex = 1 then
begin
if Application.MessageBox('是否追加?', '请慎重选择!', MB_OKCANCEL + MB_ICONQUESTION) = IDOK then
begin
table1.append;
table1['biaozhi'] := cb_biaozhi.ItemIndex;
table1['gzdm'] := cb_gjzd.text;
table1['xsmc'] := edt_xsmc.Text;
table1['zdkd'] := rse_zdkd.Value;
table1['gongshi'] := edt_gongshi.Text;
vars.Lines.Clear;
vars.Lines.AddStrings(memo1.Lines);
table1.Post;
Application.MessageBox('追加成功!', '提示', mb_ok);
end;
end;
end;
procedure Tgz_shezhi.Button14Click(Sender: TObject);
begin
close;
end;
procedure Tgz_shezhi.Button26Click(Sender: TObject);
var
i, biaozhi_zd: integer;
begin
edt_gongshi.Text := edt_gongshi.Text + 'chuqin';
edt_xs.Text := edt_xs.Text + '该月天数';
if memo1.Lines.Count = 0 then
begin
memo1.Lines.Clear;
memo1.Lines.Add('chuqin');
end
else
begin
for i := 0 to memo1.Lines.Count do
begin
if uppercase(memo1.Lines.Strings[i]) = uppercase('chuqin') then
biaozhi_zd := 1;
end;
if biaozhi_zd = 0 then
memo1.Lines.Add('chuqin');
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -