📄 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, KsControls, KsButtons,
KsSkinButtons, KsHooks, KsForms, KsSkinForms, KsLabels, KsSkinLabels,
ADODB;
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 + -