⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sharedata.pas

📁 一个物流公司的物流配送系统
💻 PAS
字号:
unit ShareData;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls,ExtCtrls,ComCtrls,Mask;
var
   Flag:Boolean;       //用来控制点击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设置说明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.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -