📄 baseinfoedit.pas
字号:
unit BaseInfoEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
EditForm, StdCtrls, Buttons, dxCntner, dxEditor, dxEdLib, dxDBELib,
dxExEdtr, DBData, dxDBTL, db, Variants, KsSkinButtons, KsSkinForms,
KsSkinLabels, ADODB, se_controls, KsSkinSpeedButtons;
type
TfrmBaseInfoEdit = class(TfrmEditForm)
bbOk: TSeSkinButton;
bbNo: TSeSkinButton;
lblName1: TSeSkinLabel;
edt1: TdxDBEdit;
lblName2: TSeSkinLabel;
edt2: TdxDBEdit;
lblSelect1: TSeSkinLabel;
cbx1: TdxDBPickEdit;
edt3: TdxDBEdit;
bbAdd: TSeSkinButton;
procedure bbNoClick(Sender: TObject);
procedure bbOkClick(Sender: TObject);
procedure bbAddClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
bReturn: Boolean;
treeMain: TdxDBTreeList;
sCbxStr: string;
lMode: Integer;
procedure SetCbx;
procedure MainShow;
procedure LoadData;
public
{ Public declarations }
end;
function BaseInfoEditShow(tree1Main: TdxDBTreeList; s1CbxStr, s1Caption: string;
l1Mode: Integer): Boolean;
implementation
uses BaseInfo, SysPublic;
{$R *.DFM}
function BaseInfoEditShow(tree1Main: TdxDBTreeList; s1CbxStr, s1Caption: string;
l1Mode: Integer): Boolean;
var
frmBaseInfoEdit: TfrmBaseInfoEdit;
begin
frmBaseInfoEdit := TfrmBaseInfoEdit.Create(Application);
with frmBaseInfoEdit do
begin
treeMain := tree1Main;
sCbxStr := s1CbxStr;
Caption := s1Caption + '编辑';
lMode := l1Mode;
MainShow;
Result := bReturn;
Free;
end;
end;
procedure TfrmBaseInfoEdit.MainShow;
begin
DataSet := treeMain.DataSource.DataSet;
LoadData;
ShowModal;
end;
procedure TfrmBaseInfoEdit.LoadData;
begin
lblName1.Visible := false;
edt1.Visible := false;
lblName2.Visible := false;
edt2.Visible := false;
lblSelect1.Visible := false;
cbx1.Visible := false;
edt3.Visible := false;
bReturn := false;
if treeMain.ColumnCount >= 1 then
begin
lblName1.Caption := treeMain.Columns[0].Caption + ':';
edt1.DataField := treeMain.Columns[0].FieldName;
lblName1.Visible := true;
edt1.Visible := true;
end;
if (treeMain.ColumnCount = 2) and (sCbxStr <> '') then
begin
lblSelect1.Caption := treeMain.Columns[1].Caption + ':';
cbx1.DataField := treeMain.Columns[1].FieldName;
SetCbx;
lblSelect1.Visible := true;
cbx1.Visible := true;
end
else
if (treeMain.ColumnCount >= 2) then
begin
lblName2.Caption := treeMain.Columns[1].Caption + ':';
edt2.DataField := treeMain.Columns[1].FieldName;
lblName2.Visible := true;
edt2.Visible := true;
end;
if (treeMain.ColumnCount = 3) and (sCbxStr <> '') then
begin
lblSelect1.Caption := treeMain.Columns[2].Caption + ':';
cbx1.DataField := treeMain.Columns[2].FieldName;
SetCbx;
lblSelect1.Visible := true;
cbx1.Visible := true;
end
else
if (treeMain.ColumnCount >= 3) then
begin
lblSelect1.Caption := treeMain.Columns[2].Caption + ':';
edt3.DataField := treeMain.Columns[2].FieldName;
SetCbx;
lblSelect1.Visible := true;
edt3.Visible := true;
end;
if treeMain.ColumnCount = 1 then
Height := edt3.Top + 30
else
if treeMain.ColumnCount = 2 then
Height := edt3.Top + edt3.Height + 30
else
if treeMain.ColumnCount = 3 then
Height := edt3.Top + edt3.Height + 40;
end;
procedure TfrmBaseInfoEdit.SetCbx;
var
s1, s2, s3: string;
begin
if sCbxStr <> '' then
begin
s1 := sCbxStr + ',';
while pos(',', s1) <> 0 do
begin
s2 := copy(s1, 0, pos(',', s1) - 1);
s1 := copy(s1, pos(',', s1) + 1, Length(s1));
if s2 <> '' then
begin
if s3 <> '' then
s3 := s3 + #13 + s2
else
s3 := s2;
end;
end;
cbx1.Items.Text := s3;
end;
end;
procedure TfrmBaseInfoEdit.bbNoClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmBaseInfoEdit.bbOkClick(Sender: TObject);
begin
inherited;
if not CheckEditEmpty(1, self, [lblName1.Name], [edt1.Name]) then Exit;
DataSet.FieldByName('Mode').AsInteger := lMode;
bReturn := true;
Close;
end;
procedure TfrmBaseInfoEdit.bbAddClick(Sender: TObject);
var
FParentValue: Variant;
begin
inherited;
if not CheckEditEmpty(1, self, [lblName1.Name], [edt1.Name]) then Exit;
with DataSet do
begin
Edit;
FieldByName('Mode').AsInteger := lMode;
Post;
SaveDataSet(TAdoDataSet(DataSet), False);
if FieldByName('TreeParent').IsNull then
FParentValue := Null
else
FParentValue := FieldByName('TreeParent').Value;
Last;
Insert;
FieldByName('TreeParent').Value := FParentValue;
end;
end;
procedure TfrmBaseInfoEdit.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
if (bReturn = False) and (DataSet.State in [dsInsert]) and
not CheckEditEmpty(0, self, [lblName1.Name], [edt1.Name]) then
begin
if MsgBox('你没有保存数据,确定要退出吗?',
'提示', MB_OKCANCEL) <> IDOK then
Action := caNone;
end;
end;
procedure TfrmBaseInfoEdit.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
case KEY of
VK_ESCAPE: bbNoClick(nil);
VK_RETURN: bbOkClick(nil);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -