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

📄 untbasesingleedit.pas

📁 简要说明:对医院幼儿心理情况做的一个调查,统计系统.
💻 PAS
字号:
unit untBaseSingleEdit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, untBaseDialog, StdCtrls, Buttons, ExtCtrls, jpeg, DB, ADODB,
  untGlobalVar, DBCtrls, fcButton, fcImgBtn;

type
  TfrmBaseSingleEdit = class(TfrmBaseDialog)
    dsSingle: TDataSource;
    procedure btnOKClick(Sender: TObject);
  private
    FDataSet: TADODataSet;
    FOpMode: TOperatorMode;
    procedure SetDataSet(const Value: TADODataSet);
    procedure SetOpMode(const Value: TOperatorMode);
    procedure SaveRecord;
    { Private declarations }
  protected
    function CheckDataValid: Boolean; virtual;
    procedure DoBeforePost; virtual;
    procedure AfterPost; virtual;
    procedure InitComponents; virtual;
  public
    { Public declarations }
    ContinueAppend: Boolean;
    property DataSet: TADODataSet read FDataSet write SetDataSet;
    property OpMode: TOperatorMode read FOpMode write SetOpMode;
  end;

var
  frmBaseSingleEdit: TfrmBaseSingleEdit;

implementation

uses
  untGlobalFun;

{$R *.dfm}

{ TfrmBaseSingleEdit }

procedure TfrmBaseSingleEdit.SetDataSet(const Value: TADODataSet);
begin
  FDataSet := Value;
  dsSingle.DataSet := Value;
end;

procedure TfrmBaseSingleEdit.SetOpMode(const Value: TOperatorMode);
var
  i: Integer;
begin
  FOpMode := Value;

  for i := 0 to ComponentCount - 1 do
  begin
    if Components[i] is TDBEdit then
    begin
      TDBEdit(Components[i]).ReadOnly := (Value in [omDel,omBrowse]);
      if TDBEdit(Components[i]).ReadOnly then
        TDBEdit(Components[i]).Color := clActiveBorder
      else
        TDBEdit(Components[i]).Color := clWindow;
    end;
    if Components[i] is TDBMemo then
    begin
      if (Components[i].Tag = 0) then
      begin
        TDBMemo(Components[i]).ReadOnly := (Value in [omDel,omBrowse]);
        if TDBMemo(Components[i]).ReadOnly then
          TDBMemo(Components[i]).Color := clActiveBorder
        else
          TDBMemo(Components[i]).Color := clWindow;
      end;
    end;
    if Components[i] is TDBListBox then
    begin
      TDBListBox(Components[i]).ReadOnly := (Value in [omDel,omBrowse]);
      if TDBListBox(Components[i]).ReadOnly then
        TDBListBox(Components[i]).Color := clActiveBorder
      else
        TDBListBox(Components[i]).Color := clWindow;
    end;
    if Components[i] is TDBComboBox then
      TDBComboBox(Components[i]).Enabled := not (Value in [omDel,omBrowse]);
    if Components[i] is TDBCheckBox then
      TDBCheckBox(Components[i]).Enabled := not (Value in [omDel,omBrowse]);
    if Components[i] is TDBRadioGroup then
      TDBRadioGroup(Components[i]).Enabled := not (Value in [omDel,omBrowse]);
    if Components[i] is TDBLookupListBox then
    begin
      TDBLookupListBox(Components[i]).ReadOnly := (Value in [omDel,omBrowse]);
      if TDBLookupListBox(Components[i]).ReadOnly then
        TDBLookupListBox(Components[i]).Color := clActiveBorder
      else
        TDBLookupListBox(Components[i]).Color := clWindow;
    end;
    if Components[i] is TDBLookupComboBox then
      TDBLookupComboBox(Components[i]).Enabled := not (Value in [omDel,omBrowse]);
    if Components[i] is TDBRichEdit then
    begin
      TDBRichEdit(Components[i]).ReadOnly := (Value in [omDel,omBrowse]);
      if TDBRichEdit(Components[i]).ReadOnly then
        TDBRichEdit(Components[i]).Color := clActiveBorder
      else
        TDBRichEdit(Components[i]).Color := clWindow;
    end;
  end;
  InitComponents;
end;

procedure TfrmBaseSingleEdit.btnOKClick(Sender: TObject);
begin
  inherited;
  SaveRecord;
end;

procedure TfrmBaseSingleEdit.SaveRecord;
begin
  if not CheckDataValid then exit;
  try
    DataSet.Connection.BeginTrans;
    DoBeforePost;
    if DataSet.State in [dsInsert, dsEdit] then DataSet.Post;
    AfterPost;
    DataSet.Connection.CommitTrans;
    MsgOk('数据更新成功!');
    if ContinueAppend and (OpMode = omNew) then begin
      DataSet.Append;
      InitComponents;
    end else
      ModalResult := mrOK;
  except
    DataSet.Connection.RollbackTrans;
    MsgOK('保存数据出错!');
  end;
end;

function TfrmBaseSingleEdit.CheckDataValid: Boolean;
begin
  Result := true;
end;

procedure TfrmBaseSingleEdit.DoBeforePost;
begin

end;

procedure TfrmBaseSingleEdit.AfterPost;
begin

end;

procedure TfrmBaseSingleEdit.InitComponents;
begin

end;

end.

⌨️ 快捷键说明

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