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

📄 syspublic.pas

📁 蓝图财务进销存一体化,delphi源码,使用ACCESS数据库
💻 PAS
📖 第 1 页 / 共 5 页
字号:
var
  I: Integer;
  S: string;
begin
  Result := '';
  S := '';
  for I := 1 to Length(mString) do
    if mString[I] in [#32..#127] then
      S := S + mString[I]
    else
    begin
      if S <> '' then
      begin
        Result := Result + QuotedStr(S);
        S := '';
      end;
      Result := Result + Format('#$%x', [Ord(mString[I])]);
    end;
  if S <> '' then
    Result := Result + QuotedStr(S);
end; { StringToDisplay }

function SetIniValue(ADOConnet: TADOConnection; sName, sValue: string): Boolean;
var
  sSql: string;
begin
  Result := False;
  if (sName = '') then
    exit;
  sSql := ' SELECT * FROM SystemIni where sName=''' + sName + '''';

  if GetDataSetEmptyEx(ADOConnet, sSql) then
    sSql := 'INSERT INTO SystemIni (sName,sValue)VALUES(''' + sName + ''',''' +
      sValue + ''')'
  else
    sSql := ' update SystemIni Set sValue=''' + sValue + ''' Where sName=''' +
      sName + '''';

  Result := ExecSqlEx(ADOConnet, sSql);
end;

function GetDataSetEmptyEx(ADOConnet: TADOConnection; sSql: string): Boolean;
var
  ADOSetTmp: TADOQuery;
begin
  ADOSetTmp := TADOQuery.Create(nil);
  ADOSetTmp.LockType := ltReadOnly;
  OpenDataSetEx(ADOConnet, ADOSetTmp, sSql);
  Result := ADOSetTmp.IsEmpty;
  ADOSetTmp.Close;
  ADOSetTmp.Free;
end;

function ExecSqlEx(ADOConnet: TADOConnection; sSql: string): Boolean;
begin
  Result := True;
  if Trim(sSql) = '' then
  begin
    Result := False;
    exit;
  end;
  try
    ADOConnet.Execute(sSql);
  except
    Result := False;
  end;
end;

function GetDataSetCount(sSql: string): Integer;
begin
  Result := GetDataSetCountEx(DataMForm.ADOConnet, sSql);
end;

function GetDataSetCountEx(ADOConnet: TADOConnection; sSql: string): Integer;
var
  ADOSetTmp: TADOQuery;
begin
  ADOSetTmp := TADOQuery.Create(nil);
  ADOSetTmp.LockType := ltReadOnly;
  OpenDataSetEx(ADOConnet, ADOSetTmp, sSql);
  Result := ADOSetTmp.RecordCount;
  ADOSetTmp.Close;
  ADOSetTmp.Free;
end;

function JudgeDataUse(originalityTableName,OriginalityFieldName, presentFieldValue: string): Boolean;
var
  ADOQryTmp: TADOQuery;
begin
  Result:= True;
  Try
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);
  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select * From ' + originalityTableName + ' Where ' + OriginalityFieldName + '= ' + QuotedStr(presentFieldValue));
  ADOQryTmp.Open;

  if ADOQryTmp.RecordCount>0 then
  begin
    ShowMessage('资料已在使用中……');
    Abort;
  end;

  except
    Result:= False;
  end;

  ADOQryTmp.Close;
  ADOQryTmp.Free;
end;


procedure RemMsgBox(RemindText: string; Caption: string='');
begin
  if Application.MessageBox(PChar(RemindText), PChar(Caption), MB_ICONQUESTION + MB_YESNO) = IDOK then
end;

function MsgBox(Text: string; Flags: Longint = MB_OK): Integer;
begin
    Result := Application.MessageBox(PChar(Text), '提示', Flags +
      MB_ICONASTERISK);
end;

procedure ShowMsg(sMsg: string);
begin
  MsgBox(sMsg, MB_OK);
end;












procedure ReadDBGridEhAutoFitColWidth(Form1: TForm);
var
  i : integer;
  sCheck: string;
  ADOQryTmp: TADOQuery;
begin
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);
  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select * From SystemTable Where Name=''DBGridEhAutoFitColWidth''');
  ADOQryTmp.Open;

  sCheck:= ADOQryTmp.FieldByName('Code').AsString;

  for i:=0 to Form1.ComponentCount-1 do
    if (Form1.Components[i] is TDBGridEh) then
    begin
      if sCheck= 'True' then
         TDBGridEh(Form1.Components[i]).AutoFitColWidths:= True
         else
           TDBGridEh(Form1.Components[i]).AutoFitColWidths:= False;
    end;
    ADOQryTmp.Close;
    ADOQryTmp.Free;
end;

procedure ReadDBGridEhFlat(Form1: TForm);
var
  i : integer;
  sCheck: string;
  ADOQryTmp: TADOQuery;
begin
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);
  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select * From SystemTable Where Name=''DBGridEhFlat''');
  ADOQryTmp.Open;

  sCheck:= ADOQryTmp.FieldByName('Code').AsString;

  for i:=0 to Form1.ComponentCount-1 do
    if (Form1.Components[i] is TDBGridEh) then
    begin
      if sCheck= 'True' then
         TDBGridEh(Form1.Components[i]).Flat:= True
         else
           TDBGridEh(Form1.Components[i]).Flat:= False;
    end;
    ADOQryTmp.Close;
    ADOQryTmp.Free;
end;

procedure ReadDBEditFlat(Form1: TForm);
var
  i : integer;
  sCheck: string;
  ADOQryTmp: TADOQuery;
begin
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);
  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select * From SystemTable Where Name=''DBEditEhFlat''');
  ADOQryTmp.Open;

  sCheck:= ADOQryTmp.FieldByName('Code').AsString;

  for i:=0 to Form1.ComponentCount-1 do
  begin
    if (Form1.Components[i] is TDBEditEh) then
    begin
      if sCheck= 'True' then
         TDBEditEh(Form1.Components[i]).Flat:= True
         else
           TDBEditEh(Form1.Components[i]).Flat:= False;
    end;

    if (Form1.Components[i] is TDBDateTimeEditEh) then
    begin
      if sCheck= 'True' then
         TDBDateTimeEditEh(Form1.Components[i]).Flat:= True
         else
           TDBDateTimeEditEh(Form1.Components[i]).Flat:= False;
    end;

    if (Form1.Components[i] is TDBNumberEditEh) then
    begin
      if sCheck= 'True' then
         TDBNumberEditEh(Form1.Components[i]).Flat:= True
         else
           TDBNumberEditEh(Form1.Components[i]).Flat:= False;
    end;

    if (Form1.Components[i] is TDBComboBoxEh) then
    begin
      if sCheck= 'True' then
         TDBComboBoxEh(Form1.Components[i]).Flat:= True
         else
           TDBComboBoxEh(Form1.Components[i]).Flat:= False;
    end;

    if (Form1.Components[i] is TDBLookupComboboxEh) then
    begin
      if sCheck= 'True' then
         TDBLookupComboboxEh(Form1.Components[i]).Flat:= True
         else
           TDBLookupComboboxEh(Form1.Components[i]).Flat:= False;
    end;

    if (Form1.Components[i] is TDBCheckBoxEh) then
    begin
      if sCheck= 'True' then
         TDBCheckBoxEh(Form1.Components[i]).Flat:= True
         else
           TDBCheckBoxEh(Form1.Components[i]).Flat:= False;
    end;

  end;


    ADOQryTmp.Close;
    ADOQryTmp.Free;
end;


procedure SaveDBGridEhAutoFitColWidth(CheckBox1: TCheckBox);
var
  sCheck: string;
  ADOQryTmp: TADOQuery;
begin
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);
  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select * From SystemTable Where Name = ''DBGridEhAutoFitColWidth''');
  ADOQryTmp.Open;

  if CheckBox1.Checked then
    sCheck:= 'True'
  else
    sCheck:= 'False';

  ADOQryTmp.Edit;
  ADOQryTmp.FieldByName('Code').AsString:= sCheck;
  ADOQryTmp.Post;

end;


procedure SaveDBGridEhFlat(CheckBox1: TCheckBox);
var
  sCheck: string;
  ADOQryTmp: TADOQuery;
begin
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);
  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select * From SystemTable Where Name = ''DBGridEhFlat''');
  ADOQryTmp.Open;

  if CheckBox1.Checked then
    sCheck:= 'True'
  else
    sCheck:= 'False';

  ADOQryTmp.Edit;
  ADOQryTmp.FieldByName('Code').AsString:= sCheck;
  ADOQryTmp.Post;

end;

procedure SaveDBEditEhFlat(CheckBox3: TCheckBox);
var
  sCheck: string;
  ADOQryTmp: TADOQuery;
begin
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);
  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select * From SystemTable Where Name = ''DBEditEhFlat''');
  ADOQryTmp.Open;

  if CheckBox3.Checked then
    sCheck:= 'True'
  else
    sCheck:= 'False';

  ADOQryTmp.Edit;
  ADOQryTmp.FieldByName('Code').AsString:= sCheck;
  ADOQryTmp.Post;

end;




function InsCode(IniData: integer; ADOQuery1: TADOQuery; sFieldName, sTable: string): Boolean;
var
  ADOQryTmp: TADOQuery;
begin
  ADOQryTmp:= TADOQuery.Create(Nil);
  GetConn(ADOQryTmp);

  ADOQryTmp.Close;
  ADOQryTmp.SQL.Clear;
  ADOQryTmp.SQL.Add('Select Max('''+sFieldName+''') as sFieldName From '+sTable);
  ADOQryTmp.Open;

  ADOQuery1.Edit;

  if ADOQryTmp.IsEmpty then
  ADOQuery1.FieldByName(sFieldName).AsInteger:= IniData + 1
  else
  ADOQuery1.FieldByName('''+QuotedStr(sFieldName)+''').AsInteger:= ADOQryTmp.FieldByName(sFieldName).AsInteger + 1;
end;


{
用它时
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  ManipulateControl(edit1,Shift,X,Y,2);
end;  

}
procedure ManipulateControl(WinControl: TControl;
  Shift: TShiftState; X, Y, precision: integer);

var
  SC_MANIPULATE: Word;
begin
  //光标在控件的最左侧
  if (X<=Precision) and (Y>Precision) and (Y<WinControl.Height-Precision) then
  begin
    SC_MANIPULATE  := $F001;
    WinControl.Cursor := crSizeWE;
  end
  else
    //光标在控件的最右侧
    if (X>=WinControl.Width-Precision) and (Y>Precision) and (Y<WinControl.Height-Precision) then
    begin
      SC_MANIPULATE  := $F002;
      WinControl.Cursor := crSizeWE;
    end
    else
      //光标在控件的最上侧
      if (X>Precision) and (X<WinControl.Width-Precision) and (Y<=Precision) then
      begin
        SC_MANIPULATE  := $F003;
        WinControl.Cursor := crSizeNS;
      end
      else
        //光标在控件的最下侧
        if (X>Precision) and (X<WinControl.Width-Precision) and (Y>=WinControl.Height-Precision) then
        begin
          SC_MANIPULATE  := $F006;
          WinControl.Cursor := crSizeNS;
        end
        else
          //光标在控件的左上角
          if (X<=Precision) and (Y<=Precision) then
          begin
            SC_MANIPULATE  := $F004;
            WinControl.Cursor := crSizeNWSE;
          end
          else
            //光标在控件的右上角
            if (X>=WinControl.Width-Precision) and (Y<=Precision) then
            begin
              SC_MANIPULATE  := $F005;
              WinControl.Cursor := crSizeNESW ;
            end
            else
              //光标在控件的左下角
              if (X<=Precision) and (Y>=WinControl.Height-Precision) then
              begin
                SC_MANIPULATE  := $F007;
                WinControl.Cursor := crSizeNESW;
              end
              else
                //光标在控件的右下角
                if (X>=WinControl.Width-Precision) and (Y>=WinControl.Height-Precision) then
                begin
                  SC_MANIPULATE  := $F008;
                  WinControl.Cursor := crSizeNWSE;
                end
                else
                  //光标在控件的客户区(移动整个控件)
                  if (X>5) and (Y>5) and (X<WinControl.Width-5) and
                        (Y<WinControl.Height-5) then
                  begin
                    SC_MANIPULATE  := $F009;
                    WinControl.Cursor := crSizeAll;
                  end
                  else
                  begin
                    SC_MANIPULATE := $F000;
                    WinControl.Cursor := crDefault;
                  end;
  if Shift=[ssLeft] then
  begin
    ReleaseCapture;
    WinControl.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
  end;

end;

procedure TM(Fd:TDBNavigator);
var
  i   : Integer;

⌨️ 快捷键说明

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