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

📄 wzglcommon.pas

📁 物资管理系统 包括屋子入库出库管理
💻 PAS
字号:
unit WZGLCommon;

interface

uses
  Windows, SysUtils, Classes, DB, DBGrids, ADODB, ComCtrls;

resourcestring
  conIniFile = 'Wzgl.ini';

type
  TWZMX = record
    BM, MC, GG, DW: string;
    DJ, RKSL, CKSL: Double;
  end;
  PWZMX = ^TWZMX;

var
  EXEPath: string;           //主程序路径
  AdoWzgl: TADOConnection;   //数据库连接

function GetExePath: string;
function IsNumeric(const s: string): Boolean;
procedure FillTreeView(ATreeView: TTreeView; ADataSet: TDataSet;
    AIDField, APIDField, ATextField: string);

implementation

function  GetExePath: string;
begin
  Result := ExtractFilePath(ParamStr(0));
end;

function IsNumeric(const s: string): Boolean;
var
  l_Code: Integer;
  l_Str: string;
  F: Double;
begin
  Result := True;
  l_Str := Trim(s);
  try
    Val(l_Str, F, l_Code);
  except
    Result := False;
  end;
  Result := Result and (l_Code = 0);
  if Length(l_Str) >= 1 then
      Result := Result and (not (l_Str[1] in ['e', 'E']));
end;

procedure FillTreeView(ATreeView: TTreeView; ADataSet: TDataSet;
    AIDField, APIDField, ATextField: string);

  procedure InitNode(ATreeNode: TTreeNode);
  var
    TreeNode: TTreeNode;
  begin
    with ADataSet do
    begin
      Filtered := False;
      if ATreeNode = nil then
        Filter := Format('%s = 0', [APIDField])
      else
        Filter := Format('%s = %d', [APIDField, Integer(ATreeNode.Data)]);
      Filtered := True;
      First;
      while not Eof do
      begin
        ATreeView.Items.AddChildObject(ATreeNode, Trim(FieldByName(ATextField).AsString),
          Pointer(FieldByName(AIDField).AsInteger));
        Next;
      end;
    end;

    if ATreeNode = nil then
      TreeNode := ATreeView.Items.GetFirstNode
    else
      TreeNode := ATreeNode.GetFirstChild;

    while TreeNode <> nil do
    begin
      InitNode(TreeNode);
      TreeNode := TreeNode.GetNextSibling;
    end;
  end;

var
  OldChange:  TTVChangedEvent;
  OldChanging: TTVChangingEvent;
begin
  with ATreeView do
  begin
    Items.BeginUpdate;
    // 屏蔽Change事件
    OldChange := OnChange;
    OldChanging := OnChanging;
    OnChange := nil;
    OnChanging := nil;
    // 装载数据
    Items.Clear;
    InitNode(nil);
    ADataSet.Filtered := False;
    // 恢复Change事件
    OnChange := OldChange;
    OnChanging := OldChanging;
    Items.EndUpdate;
    if Items.Count > 0 then Select(Items[0]);
  end;
end;

end.

⌨️ 快捷键说明

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