📄 syspublic.pas
字号:
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 + -