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

📄 fm_utl.pas

📁 商品入库
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit fm_utl;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids,DB , DBGrids, Buttons, ToolWin, ComCtrls, ExtCtrls, DBCtrls, StdCtrls,
  Mask, DBTables, Registry;


//按钮模式设置
FUNCTION BTN_ENABLED_MODE(BTNINS,BTNUPD,BTNDEL,BTNYES,BTNCAL,BTNSER,BTNPRN,BTNQUT: TSpeedButton;
                          INS_MD,UPD_MD,DEL_MD,YES_MD,CAL_MD,SER_MD,PRN_MD,QUT_MD: Boolean):Boolean;
FUNCTION BTN_ENABLED_MODE_BITBTN(BTNINS,BTNUPD,BTNDEL,BTNYES,BTNCAL,BTNSER,BTNPRN,BTNQUT: TBITBTN;
                          INS_MD,UPD_MD,DEL_MD,YES_MD,CAL_MD,SER_MD,PRN_MD,QUT_MD: Boolean):Boolean;
//加载按钮图形
FUNCTION BTN_LOADBMPFILE(BTNINS,BTNUPD,BTNDEL,BTNYES,BTNCAL,BTNSER,BTNPRN,BTNQUT: TSpeedButton;
                         INS_TB,UPD_TB,DEL_TB,YES_TB,CAL_TB,SER_TB,PRN_TB,QUT_TB: TBitmap):Boolean;

//加载按钮图形
FUNCTION BTN_LOADBMPFILE_BITBTN(BTNNAME: TBITBTN;FILENAME: STRING):Boolean;
FUNCTION BTN_LOADBMPSTREAM_BITBTN(BTNNAME: TBITBTN; T_STREAM: TBitmap):Boolean;

//GRID BOOLEAN 画图
FUNCTION GRID_DRAWCOLUMNCELL(Sender: TObject; const Rect: TRect;  DataCol: Integer; Column: TColumn; State: TGridDrawState;True_bmp, False_bmp, Blank_bmp : TBitmap):boolean;

//FORM =========================================================================
//检查FORM 是否存在
FUNCTION FormExists(FORM_NAME:STRING):BOOLEAN;
// FORM 释放内存
FUNCTION FormRelease(T_FORM:TFORM):BOOLEAN;
FUNCTION FormFREE(T_FORM:STRING):BOOLEAN;
FUNCTION DataModuleRelease(T_FORM:TDataModule):BOOLEAN;

FUNCTION Form_MDI_POSITION    (T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
FUNCTION Form_MDI_SHOWMODAL   (T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
FUNCTION Form_MDI_SHOW        (T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
FUNCTION Form_NORMAL_SHOW     (T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
FUNCTION Form_NORMAL_SHOWMODAL(T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
//FUNCTION Form_SET_NORMAL   (T_FORM:TFORM):BOOLEAN;
//FUNCTION Form_SET_MDIFORM  (T_FORM:TFORM):BOOLEAN;
//FORM =========================================================================



//数据库类 =====================================================================

//检查 是否为空字段
FUNCTION FM_CHECK_FIELD_BLANK(F_VALUE,F_NAME,F_MESSAGE : STRING):boolean;

//更新数据库 POST
FUNCTION FM_DB_QUERY_POST  (T_DATABASE:TDATABASE;T_QUERY:TQUERY):boolean;
FUNCTION FM_DB_QUERY_UPDATE(T_DATABASE:TDATABASE;T_QUERY:TQUERY):boolean;
//数据库类 =====================================================================


// 登录器 REGISTER =============================================================
FUNCTION REGISTER_NUMBER_POS(CPU_ID:LONGINT):STRING;
FUNCTION REGISTER_NUMBER_WHOUSE(CPU_ID:LONGINT):STRING;

FUNCTION REGISTER_POS_CREATE(T_REG_NAME:STRING):BOOLEAN;
FUNCTION REGISTER_POS_REGISTER(T_REG_NAME, T_SF_ID:STRING):BOOLEAN;

FUNCTION REGISTER_KEY_VALUE_STR (T_REG_NAME, T_KEY:STRING):STRING;
FUNCTION REGISTER_KEY_VALUE_DATE(T_REG_NAME, T_KEY:STRING):TDATE;
FUNCTION REGISTER_KEY_CHECK(T_REG_NAME:STRING):BOOLEAN;
FUNCTION REGISTER_KEY_CREATE(T_REG_NAME:STRING):BOOLEAN;
FUNCTION REGISTER_KEY_DELETE(T_REG_NAME:STRING):BOOLEAN;

FUNCTION REGISTER_SAVE_OBJECT_INT(T_REG_NAME:STRING;T_KEY:INTEGER):BOOLEAN;
FUNCTION REGISTER_SAVE_OBJECT_STR(T_REG_NAME:STRING;T_KEY:STRING ):BOOLEAN;

FUNCTION REGISTER_LOAD_OBJECT_INT(T_REG_NAME:STRING;T_DEFAULT:INTEGER):INTEGER;
FUNCTION REGISTER_LOAD_OBJECT_STR(T_REG_NAME:STRING;T_DEFAULT:STRING ):STRING;
// 登录器 REGISTER =============================================================



implementation

USES UN_UTL;


//按钮模式设置
FUNCTION BTN_ENABLED_MODE(BTNINS,BTNUPD,BTNDEL,BTNYES,BTNCAL,BTNSER,BTNPRN,BTNQUT: TSpeedButton;
                          INS_MD,UPD_MD,DEL_MD,YES_MD,CAL_MD,SER_MD,PRN_MD,QUT_MD: Boolean):Boolean;
BEGIN
  RESULT:= TRUE;
  with BTNINS do Enabled := INS_MD;
  with BTNUPD do Enabled := UPD_MD;
  with BTNDEL do Enabled := DEL_MD;
  with BTNYES do Enabled := YES_MD;
  with BTNCAL do Enabled := CAL_MD;
  with BTNSER do Enabled := SER_MD;
  with BTNPRN do Enabled := PRN_MD;
  with BTNQUT do Enabled := QUT_MD;
END;

FUNCTION BTN_ENABLED_MODE_BITBTN(BTNINS,BTNUPD,BTNDEL,BTNYES,BTNCAL,BTNSER,BTNPRN,BTNQUT: TBITBTN;
                          INS_MD,UPD_MD,DEL_MD,YES_MD,CAL_MD,SER_MD,PRN_MD,QUT_MD: Boolean):Boolean;
BEGIN
  RESULT:= TRUE;
  with BTNINS do Enabled := INS_MD;
  with BTNUPD do Enabled := UPD_MD;
  with BTNDEL do Enabled := DEL_MD;
  with BTNYES do Enabled := YES_MD;
  with BTNCAL do Enabled := CAL_MD;
  with BTNSER do Enabled := SER_MD;
  with BTNPRN do Enabled := PRN_MD;
  with BTNQUT do Enabled := QUT_MD;
END;

//加载按钮图形
FUNCTION BTN_LOADBMPFILE(BTNINS,BTNUPD,BTNDEL,BTNYES,BTNCAL,BTNSER,BTNPRN,BTNQUT: TSpeedButton;
                         INS_TB,UPD_TB,DEL_TB,YES_TB,CAL_TB,SER_TB,PRN_TB,QUT_TB: TBitmap):Boolean;
BEGIN
  RESULT:= TRUE;
  with BTNINS do Glyph := INS_TB;
  with BTNUPD do Glyph := UPD_TB;
  with BTNDEL do Glyph := DEL_TB;
  with BTNYES do Glyph := YES_TB;
  with BTNCAL do Glyph := CAL_TB;
  with BTNSER do Glyph := SER_TB;
  with BTNPRN do Glyph := PRN_TB;
  with BTNQUT do Glyph := QUT_TB;
END;

FUNCTION BTN_LOADBMPFILE_BITBTN(BTNNAME: TBITBTN;FILENAME: STRING):Boolean;
BEGIN
  RESULT:= TRUE;
  IF BTNNAME.Glyph.Empty  = TRUE THEN
  IF FileExists(FILENAME) = TRUE THEN BTNNAME.Glyph.LoadFromFile(FILENAME);
END;


FUNCTION BTN_LOADBMPSTREAM_BITBTN(BTNNAME: TBITBTN; T_STREAM: TBitmap):Boolean;
BEGIN
  RESULT:= TRUE;
  IF BTNNAME.Glyph.Empty  = TRUE THEN with BTNNAME do Glyph := T_STREAM;
END;


FUNCTION GRID_DRAWCOLUMNCELL(Sender: TObject; const Rect: TRect;  DataCol: Integer; Column: TColumn; State: TGridDrawState;True_bmp, False_bmp, Blank_bmp : TBitmap):boolean;
var X,Y ,N: Integer;
BEGIN
  RESULT:= TRUE;
  WITH SENDER AS TDBGRID DO
    BEGIN
    FOR N := 0 TO datasource.DataSet.FieldCount -1 DO
       BEGIN
       IF datasource.DataSet.Fields[N].DataType = ftBoolean THEN
          BEGIN
          if (Column.Field.DisplayText = 'True' ) then
             BEGIN
             Canvas.StretchDraw(Rect, blank_bmp);
             X := ( Rect.Right  - Rect.Left - TRUE_BMP.Width  ) div 2;
             Y := ( Rect.Bottom - Rect.Top  - TRUE_BMP.Height ) div 2;
             Canvas.Draw(Rect.Left + x, Rect.Top + y, TRUE_BMP);
             END;
          if (Column.Field.DisplayText = 'False' ) then
             BEGIN
             Canvas.StretchDraw(Rect, blank_bmp);
             X := ( Rect.Right  - Rect.Left - TRUE_BMP.Width  ) div 2;
             Y := ( Rect.Bottom - Rect.Top  - TRUE_BMP.Height ) div 2;
             Canvas.Draw(Rect.Left + x, Rect.Top + y, FALSE_BMP);
             END;
          END;    // IF 
       END;   // FOR
    END;   // WITH
END;


//检查FORM 是否存在
FUNCTION FormExists(FORM_NAME:STRING):BOOLEAN;
BEGIN
  IF Application.FindComponent(FORM_NAME)=nil then RESULT := FALSE ELSE RESULT := TRUE;
END;

// FORM 释放内存
FUNCTION FormRelease(T_FORM:TFORM):BOOLEAN;
BEGIN
  IF Application.FindComponent(T_FORM.Name) <> nil then
  IF FormExists(T_FORM.Name)=TRUE THEN
     BEGIN
     T_FORM.Release;
     RESULT := TRUE;
     END ELSE RESULT := FALSE;
END;

FUNCTION FormFREE(T_FORM:STRING):BOOLEAN;
BEGIN
  IF Application.FindComponent(T_FORM) <> nil then
     BEGIN
     Application.FindComponent(T_FORM).FREE;
     RESULT := TRUE;
     END ELSE RESULT := FALSE;
END;

FUNCTION DataModuleRelease(T_FORM:TDataModule):BOOLEAN;
BEGIN
  IF Application.FindComponent(T_FORM.Name)<>nil then
     BEGIN
     T_FORM.FREE;
     RESULT := TRUE;
     END ELSE RESULT := FALSE;
END;




FUNCTION Form_MDI_POSITION(T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
BEGIN
  WITH T_FORM AS TFORM DO
     BEGIN
     WINDOWSTATE:=wsNormal;
     POSITION:=poScreenCenter;
     FORMSTYLE:=FSMDICHILD;
     IF X >= 0 THEN LEFT := X; IF Y >=0 THEN TOP := Y;
     RESULT := TRUE;
     END;
END;

FUNCTION Form_MDI_SHOWMODAL(T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
BEGIN
  WITH T_FORM AS TFORM DO
     BEGIN
     WINDOWSTATE:=wsNormal;
     POSITION:=poScreenCenter;
     FORMSTYLE:=FSMDICHILD;
     Visible := FALSE;
     SHOWMODAL;
     IF X >= 0 THEN LEFT := X; IF Y >=0 THEN TOP := Y;
     RESULT := TRUE;
     END;
END;

FUNCTION Form_MDI_SHOW(T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
BEGIN
  WITH T_FORM AS TFORM DO
     BEGIN
     WINDOWSTATE:=wsNormal;
     POSITION:=poScreenCenter;
     FORMSTYLE:=FSMDICHILD;
     Visible := FALSE;
     SHOW;
     IF X >= 0 THEN LEFT := X; IF Y >=0 THEN TOP := Y;
     RESULT := TRUE;
     END;
END;

FUNCTION Form_NORMAL_SHOW  (T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
BEGIN
  WITH T_FORM AS TFORM DO
     BEGIN
     WINDOWSTATE:=wsNormal;
     POSITION:=poScreenCenter;
     FORMSTYLE:=FSNORMAL;
     IF X >= 0 THEN LEFT := X; IF Y >=0 THEN TOP := Y;
     SHOW;
     RESULT := TRUE;
     END;
END;

FUNCTION Form_NORMAL_SHOWMODAL(T_FORM:TFORM;X,Y:INTEGER):BOOLEAN;
BEGIN
  WITH T_FORM AS TFORM DO
     BEGIN
     WINDOWSTATE:=wsNormal;
     POSITION:=poScreenCenter;
     FORMSTYLE:=FSNormal;
     Visible := FALSE;
     SHOWMODAL;
     IF X >= 0 THEN LEFT := X; IF Y >=0 THEN TOP := Y;
     RESULT := TRUE;
     END;
END;




//数据库类 =====================================================================

//检查 是否为空字段
FUNCTION FM_CHECK_FIELD_BLANK(F_VALUE,F_NAME,F_MESSAGE : STRING):boolean;
BEGIN
  IF TRIM(F_VALUE) = '' THEN
     BEGIN

⌨️ 快捷键说明

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