?? sharedata.pas
字號(hào):
unit ShareData;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls,ExtCtrls,ComCtrls,Mask;
var
Flag:Boolean; //用來控制點(diǎn)擊Cancel后,回到DBClink還是OKClink (True);
IntKeys:set of char=['0'..'9']+[chr(8)]+[chr(10)]+[chr(13)];
RealKeys:set of char=['0'..'9']+[chr(8)]+[chr(10)]+[chr(13)]+['.'];
SelKeys:set of 33..41=[33..41];
TagKeys:set of 1..5=[1..5];
procedure NextSetFocus(Sender:TObject);
function InputIntKeys(sender:TObject;key:char):char;
function InputRealKeys(Sender:TObject;Key:Char):Char;
Procedure InitButtons(TempPanel:TPanel);
Procedure DBClick(TempPanel:TPanel);
Procedure AddClick(TempPanel:TPanel);
Procedure editClick(TempPanel:TPanel);
Procedure OKClick(TempPanel:TPanel);
Procedure delClick(TempPanel:TPanel);
Procedure CancelClick(TempPanel:TPanel);
procedure ClearControls(TempPanel:TPanel);
procedure EnabledControls(TempPanel:TPanel;Operate:Boolean);
procedure updatequery;
Function GetAddressA(num:Integer):String;
implementation
uses
DataModule;
procedure NextSetFocus(Sender:TObject);
begin
SendMessage(GetParentForm(TwinControl(sender)).Handle,wm_NextDlgCtl,0,0);
end;
function InputIntKeys(sender:TObject;key:char):char;
begin
if not(key in Intkeys) then
key:=chr(0);
result:=key;
end;
function InputRealKeys(Sender:TObject;Key:Char):Char;
begin
if Key='.' then
if pos('.',TEdit(sender).Text)>0 then //用TEdit 加StdCtrls 只要查TEdit后去Q
Key:=char(0);
if not(Key in RealKeys) then
Key:=char(0);
if Key=#13 then
SendMessage(GetParentForm(TWinControl(sender)).Handle, wm_NextDlgCtl, 0, 0);
Result:=Key;
end;
Procedure InitButtons(TempPanel:TPanel); //Tag設(shè)置說明0為Panel,1添加2修改3刪除4確定5取消
var
i:integer;
tempbutton:TButton;
begin
Flag:=True;
for i:=0 to TempPanel.ControlCount-1 do
begin
if TempPanel.Controls[i] is TButton then
begin
tempbutton:=TButton(TempPanel.Controls[i]);
if tempbutton.Tag=1 then
tempbutton.Enabled:=True
else if (tempbutton.Tag in TagKeys) then
tempbutton.Enabled:=False;
tempbutton.visible:=tempbutton.Enabled;
end;
end;
end;
Procedure DBClick(TempPanel:TPanel);
var
i:integer;
tempbutton:TButton;
begin
Flag:=False;
for i:=0 to TempPanel.ControlCount-1 do
begin
if TempPanel.Controls[i] is TButton then
begin
tempbutton:=TButton(TempPanel.Controls[i]);
if (tempbutton.Tag=4)or(tempbutton.Tag=5) then
tempbutton.Enabled:=False
else if (tempbutton.Tag in TagKeys) then
tempbutton.Enabled:=True;
tempbutton.visible:=tempbutton.Enabled;
end;
end;
end;
Procedure AddClick(TempPanel:TPanel);
var
i:integer;
tempbutton:TButton;
begin
Flag:=True;
for i:=0 to TempPanel.ControlCount-1 do
begin
if TempPanel.Controls[i] is TButton then
begin
tempbutton:=TButton(TempPanel.Controls[i]);
if (tempbutton.Tag=4)or(tempbutton.Tag=5) then
tempbutton.Enabled:=True
else if (tempbutton.Tag in TagKeys) then
tempbutton.Enabled:=False;
tempbutton.visible:=tempbutton.Enabled;
end;
end;
end;
Procedure editClick(TempPanel:TPanel);
begin
addClick(TempPanel);
Flag:=False;
end;
Procedure OKClick(TempPanel:TPanel);
begin
InitButtons(TempPanel);
end;
Procedure delClick(TempPanel:TPanel);
begin
InitButtons(TempPanel);
end;
Procedure CancelClick(TempPanel:TPanel);
begin
if flag then
initButtons(TempPanel)
else
DBClick(TempPanel);
end;
procedure ClearControls(TempPanel:TPanel); //只是表面清除
var
i:Integer;
begin
for i:=0 to TempPanel.ControlCount-1 do
begin
if TempPanel.Controls[i] is TEdit then
TEdit(TempPanel.Controls[i]).Clear
else if TempPanel.Controls[i] is TComboBox then
TComboBox(TempPanel.Controls[i]).Text:=''
else if TempPanel.Controls[i] is TDateTimePicker then
TDateTimePicker(TempPanel.Controls[i]).Date:=date
else if TempPanel.Controls[i] is TMemo then
TMemo(TempPanel.Controls[i]).Lines.Clear;
end;
end;
procedure EnabledControls(TempPanel:TPanel;Operate:Boolean);
var
i:integer;
begin
for i:=0 to TempPanel.ControlCount-1 do
begin
if TempPanel.Controls[i] is TEdit then
TEdit(TempPanel.Controls[i]).Enabled:=Operate
else if TempPanel.Controls[i] is TComboBox then
TComboBox(TempPanel.Controls[i]).Enabled:=Operate
else if TempPanel.Controls[i] is TDateTimePicker then
TDateTimePicker(TempPanel.Controls[i]).Enabled:=Operate
else if TempPanel.Controls[i] is TMemo then
TMemo(TempPanel.Controls[i]).Enabled:=Operate
else if TempPanel.Controls[i] is TCheckBox then
TCheckBox(TempPanel.Controls[i]).Enabled:=Operate;
end;
end;
procedure updatequery;
begin
with DM.cquery do
begin
Active:=False;
Active:=True;
end;
end;
Function GetAddressA(num:Integer):String;
begin
//Excel支持最大列為256
if (num>256)or(num<=0) then
begin
result:='';
end
else
begin
if num<27 then
result:=String(Chr(Integer('A')+num-1))
else
begin
if num mod 26 =0 then
result:=String(Chr(Integer('A')+(num div 26)-2))+String('Z')
else
result:=String(Chr(Integer('A')+(num div 26)-1))+String(Chr(Integer('A')+(num mod 26)-1));
end;
end;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -