亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? comedit.pas

?? IT業進銷存管理系統源代碼Delphi
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit ComEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
	StdCtrls, Buttons, Mask, DBCtrls, ExtCtrls, DB, DBClient, Common, Variants;

type
	TfrmComEdit = class(TForm)
		Bevel1: TBevel;
    btnInsert: TBitBtn;
    btnOk: TBitBtn;
    btnCancel: TBitBtn;
		Label1: TLabel;
    DBEdit1: TDBEdit;
    DBNavigator1: TDBNavigator;
    procedure FormShow(Sender: TObject);virtual;
    procedure btnInsertClick(Sender: TObject);virtual;
		procedure btnOkClick(Sender: TObject);virtual;
		procedure btnCancelClick(Sender: TObject);virtual;
		procedure FormKeyDown(Sender: TObject; var Key: Word;
			Shift: TShiftState);virtual;
		procedure FormClose(Sender: TObject; var Action: TCloseAction);virtual;
		procedure dsOnNewRecord(DataSet: TDataSet);virtual;
		procedure dsAfterInsert(DataSet: TDataSet);virtual;
		procedure dsBeforeEdit(DataSet: TDataSet);virtual;
		procedure dsBeforePost(DataSet: TDataSet);virtual;
		procedure dsAfterPost(DataSet: TDataSet);virtual;
		procedure dsBeforeScroll(DataSet: TDataSet);virtual;
		procedure dsAfterScroll(DataSet: TDataSet);virtual;
    procedure dsAfterApplyUpdates(Sender: TObject;
      var OwnerData: OleVariant);virtual;
		procedure sDataChange(Sender: TObject; Field: TField);virtual;
		procedure DBNavigator1BeforeAction(Sender: TObject;
			Button: TNavigateBtn);virtual;
    procedure MyAfterApplyUpdates;virtual;
    function OldValue(FileName: string): Variant;virtual;
	private
		{ Private declarations }
		cdsEve: cdsEventsArray;
		IsActive: boolean;
  public
    { Public declarations }
    strState: string;
    dsEdits: TClientDataSet;
    strKeyFields: string;
    blnSetID: boolean;
    dsNew: TDataSource;
    arrEdits: Variant;
	end;

var
  frmComEdit: TfrmComEdit;

implementation

uses Main, Dm, Select, SetDate, SetCal;

{$R *.DFM}

//Form.Show
procedure TfrmComEdit.FormShow(Sender: TObject);
var
  i: integer;
  dsOld: TDataSource;
begin
  screen.Cursor := crHourGlass;
  self.Top := frmMain.Top + frmMain.Height - self.Height - 4;
  self.left := frmMain.Width - self.Width - 8;
  dsOld := DBEdit1.DataSource;
  if dsNew = nil then
    dsNew := dsOld;
  for i := 0 to ComponentCount - 1 do
  begin
    if (Components[i] is TEdit) then
    begin
  		if (TEdit(self.Components[i]).ReadOnly) or not (TEdit(self.Components[i]).Enabled) then
      begin
				TEdit(self.Components[i]).Color := cl3DLight;
				TEdit(self.Components[i]).TabStop := False;
      end;
    end else
    if (Components[i] is TDBEdit) then
    begin
      if (TDBEdit(Components[i]).DataSource = nil) or
         (TDBEdit(Components[i]).DataSource = dsOld) then
        TDBEdit(self.Components[i]).DataSource := dsNew;
  		if (TDBEdit(self.Components[i]).ReadOnly) or not (TDBEdit(self.Components[i]).Enabled) then
      begin
				TDBEdit(self.Components[i]).Color := cl3DLight;
				TDBEdit(self.Components[i]).TabStop := False;
      end;
    end else
    if (Components[i] is TDBText) then
    begin
      if (TDBText(Components[i]).DataSource = nil) or
         (TDBText(Components[i]).DataSource = dsOld) then
        TDBText(self.Components[i]).DataSource := dsNew;
    end else
    if (Components[i] is TDBComboBox) then
    begin
      if (TDBComboBox(Components[i]).DataSource = nil) or
         (TDBComboBox(Components[i]).DataSource = dsOld) then
        TDBComboBox(self.Components[i]).DataSource := dsNew;
    end else
    if (Components[i] is TDBRadioGroup) then
    begin
      with TDBRadioGroup(Components[i]) do
        ItemIndex := Values.IndexOf(Field.AsString);
    end;
  end;
  dsEdits := TClientdataset(DBEdit1.DataSource.DataSet);
  IsActive := false;
  if not ( dsEdits.Active ) then
    dsEdits.Open
  else
    IsActive := true;
 	arrEdits := VarArrayCreate([0, dsEdits.FieldCount - 1], varVariant);
  if strKeyFields = null then
    strKeyFields := ''
  else
    strKeyFields := UpperCase(strKeyFields);
  if strKeyFields <> '' then
    strKeyFields := strKeyFields + ';';
  if (strState = 'A') or (strState = 'I') then
  begin
    if Self.Caption <> Self.Name then
      self.Caption := self.Caption + '資料增加'
    else
      self.Caption := '資料增加';
    self.btnInsert.Visible := True;
		self.DBNavigator1.Visible := False;
    if strState = 'A' then
      dsEdits.Append
    else
			dsEdits.Insert;
    frmMain.ilsSub.GetIcon(3, self.Icon);
	end else
	begin
    if Self.Caption <> Self.Name then
      self.Caption := self.Caption + '資料修改'
    else
      self.Caption := '資料修改';
		self.btnInsert.Visible := False;
		DBNavigator1.DataSource := DBEdit1.DataSource;
		self.DBNavigator1.Visible := True;
		frmMain.ilsSub.GetIcon(4, self.Icon);
	end;
	cdsEve := SaveCDSEvents(dsEdits);
	dsEdits.OnNewRecord := dsOnNewRecord;
	dsEdits.AfterInsert := dsAfterInsert;
	dsEdits.BeforeEdit := dsBeforeEdit;
	dsEdits.BeforePost := dsBeforePost;
	dsEdits.AfterPost := dsAfterPost;
	dsEdits.BeforeScroll := dsBeforeScroll;
	dsEdits.AfterScroll := dsAfterScroll;
	dsEdits.AfterApplyUpdates := dsAfterApplyUpdates;
	DBEdit1.DataSource.OnDataChange := sDataChange;
	if (strState = 'A') or (strState = 'I') then
		dsOnNewRecord(dsEdits);
  if DBEdit1.Visible then
    DBEdit1.SetFocus;
  screen.Cursor := crDefault;
end;

//Form.Close
procedure TfrmComEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
	if IsActive then
		dsEdits.Open;
	RestoreCDSEvents(dsEdits, cdsEve);
	DBEdit1.DataSource.OnDataChange := nil;
end;

//btnInsert.Click
procedure TfrmComEdit.btnInsertClick(Sender: TObject);
begin
  screen.Cursor := crHourGlass;
  try
    if dsEdits.State in [dsInsert, dsEdit] then
      dsEdits.Post;
    if dsEdits.ChangeCount > 0 Then
      if dsEdits.ApplyUpdates(0) > 0 then
        Abort;
    MyAfterApplyUpdates;
    if strState = 'A' then
      dsEdits.Append
    else
      dsEdits.Insert;
  finally
    screen.Cursor := crDefault;
    if DBEdit1.Visible then
      DBEdit1.SetFocus;
  end;
end;

//btnOk.Click
procedure TfrmComEdit.btnOkClick(Sender: TObject);
begin
  screen.Cursor := crHourGlass;
  try
    if dsEdits.State in [dsInsert,dsEdit] then
      dsEdits.Post;
    if dsEdits.ChangeCount > 0 Then
      if dsEdits.ApplyUpdates(0) > 0 then
        Abort;
    MyAfterApplyUpdates;
  finally
    screen.Cursor := crDefault;
  end;
  ModalResult := Mrok;
  Close;
end;

//btnCancel.Click
procedure TfrmComEdit.btnCancelClick(Sender: TObject);
begin
  dsEdits.Cancel;
  if dsEdits.ChangeCount > 0 then
    dsEdits.CancelUpdates;
  Close;
end;

//Form.KeyDown
procedure TfrmComEdit.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  intTop, intLeft: integer;
begin
  case Key of
    VK_RETURN:
      begin
        if Shift = [ssShift] then
          Perform(WM_NEXTDLGCTL, 1, 0)
        else
          Perform(WM_NEXTDLGCTL, 0, 0);
      end;
    VK_F4, VK_DOWN:
      if (Key = VK_F4) or ((Key = VK_DOWN) and (Shift = [ssAlt])) then
        if screen.ActiveControl is TDBEdit then
        begin
          if Assigned(TDBEdit(screen.ActiveControl).OnDblClick) then
            TDBEdit(screen.ActiveControl).Perform(WM_LBUTTONDBLCLK, 0, 0)
          else if TDBEdit(screen.ActiveControl).Field is TStringField then
          begin
            frmSelect.DataSet := TDBEdit(screen.ActiveControl).DataSource.DataSet;
            frmSelect.FieldName := TDBEdit(screen.ActiveControl).DataField;
            frmSelect.ShowModal;
          end
          else if TDBEdit(screen.ActiveControl).Field is TDateTimeField then
          begin
            intTop := screen.ActiveControl.ClientOrigin.y + screen.ActiveControl.Height;
            if intTop + frmSetDate.Height > screen.Height then
              intTop := screen.ActiveControl.ClientOrigin.y - frmSetDate.Height - 2;
            intLeft := screen.ActiveControl.ClientOrigin.x - 2;
            if intLeft + frmSetDate.Width > screen.Width then
              intLeft := screen.Width - frmSetDate.Width - 2;
            frmSetDate.Top := intTop;
            frmSetDate.Left := intLeft;
            frmSetDate.DataSet := TDBEdit(screen.ActiveControl).DataSource.DataSet;
            frmSetDate.FieldName := TDBEdit(screen.ActiveControl).DataField;
            frmSetDate.CurDate := TDBEdit(screen.ActiveControl).Field.AsDateTime;
            frmSetDate.ShowModal;
          end
          else if TDBEdit(screen.ActiveControl).Field is TNumericField then
          begin
            intTop := screen.ActiveControl.ClientOrigin.y + screen.ActiveControl.Height;
            if intTop + frmSetCal.Height > screen.Height then
              intTop := screen.ActiveControl.ClientOrigin.y - frmSetCal.Height - 2;
            intLeft := screen.ActiveControl.ClientOrigin.x - 2;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩经典一区二区| 欧美性生活影院| 精品一区二区三区影院在线午夜| 亚洲国产成人av好男人在线观看| 亚洲视频在线一区二区| 日韩美女视频一区二区 | 国产精品入口麻豆九色| 久久蜜桃av一区精品变态类天堂 | 免费成人在线视频观看| 日韩二区三区四区| 免费在线观看一区| 久草精品在线观看| 国产麻豆精品在线观看| 国产精品亚洲成人| 成人av在线资源网| 色婷婷av一区二区| 精品视频在线看| 日韩一区二区免费电影| 欧美成人激情免费网| 久久精品无码一区二区三区| 老司机精品视频在线| 久久国产精品72免费观看| 国产中文字幕精品| 成人a区在线观看| 一本久久a久久免费精品不卡| 欧美性一二三区| 日韩精品一区二区三区蜜臀| 久久久国产一区二区三区四区小说| 欧美韩日一区二区三区| 亚洲欧美激情在线| 免费一区二区视频| 国产成人啪免费观看软件| 91女神在线视频| 91精品国产综合久久国产大片| 2020国产成人综合网| 中文字幕高清一区| 性感美女久久精品| 国产传媒一区在线| 在线精品视频免费观看| 日韩欧美亚洲一区二区| 欧美韩国一区二区| 亚洲图片欧美一区| 国产精品123区| 精品视频在线免费看| 久久久久国产精品厨房| 玉足女爽爽91| 国内精品国产成人国产三级粉色| www.成人网.com| 亚洲.国产.中文慕字在线| 精品一区二区免费视频| 91麻豆自制传媒国产之光| 日韩视频在线一区二区| 亚洲人成人一区二区在线观看| 奇米一区二区三区| 91美女片黄在线观看91美女| 精品免费一区二区三区| 亚洲精品亚洲人成人网在线播放| 久久99精品国产.久久久久久| 色网综合在线观看| 久久九九久久九九| 午夜精彩视频在线观看不卡| 成人教育av在线| 日韩亚洲欧美综合| 亚洲在线中文字幕| 成人一区在线看| 精品乱码亚洲一区二区不卡| 一区二区三区在线影院| 国产成人av电影在线观看| 欧美精品久久一区二区三区| 综合色天天鬼久久鬼色| 国产美女精品在线| 91精品国产麻豆| 亚洲已满18点击进入久久| 成人av网站在线观看| 精品国产sm最大网站免费看| 天天影视色香欲综合网老头| 91麻豆免费看| 国产精品久久久久久久久久久免费看| 欧美日韩久久一区| 自拍偷拍国产精品| 大桥未久av一区二区三区中文| 日韩视频国产视频| 午夜亚洲福利老司机| 色94色欧美sute亚洲线路二| 国产精品传媒在线| 东方aⅴ免费观看久久av| 日韩免费一区二区| 日韩国产精品大片| 欧美日韩精品一区二区三区| 亚洲伦理在线免费看| 95精品视频在线| 国产精品久久久久久久岛一牛影视| 国产福利精品一区二区| 精品成人免费观看| 久久99热这里只有精品| 日韩一区二区电影网| 欧美aaa在线| 91精品国产福利在线观看| 亚洲va欧美va人人爽| 欧美在线三级电影| 亚洲一区二区偷拍精品| 欧美亚洲国产一区二区三区va| 一区二区久久久久久| 91福利视频久久久久| 夜夜嗨av一区二区三区网页| 色拍拍在线精品视频8848| 一区二区三区四区av| 欧美在线观看视频一区二区 | 高清不卡在线观看av| 国产日韩精品一区二区三区| 国产91精品入口| 国产精品欧美一区二区三区| 成人福利视频在线看| 综合av第一页| 在线观看av一区二区| 性做久久久久久免费观看欧美| 欧美日韩中文国产| 日本欧美一区二区| 精品国产一二三| 丰满白嫩尤物一区二区| 亚洲手机成人高清视频| 欧洲精品视频在线观看| 午夜一区二区三区在线观看| 欧美一级日韩一级| 国产精品69毛片高清亚洲| 国产精品视频免费| 色94色欧美sute亚洲线路一久| 亚洲影院理伦片| 欧美电影免费提供在线观看| 国产成人午夜精品5599| 亚洲人成7777| 欧美电影一区二区三区| 韩国av一区二区三区在线观看| 久久国产福利国产秒拍| 久久久久久亚洲综合| av一区二区三区在线| 亚洲国产乱码最新视频| 精品国产一区二区三区久久久蜜月| 国产一区不卡精品| 亚洲色图第一区| 日韩一区二区视频| 成人动漫视频在线| 亚洲成人免费在线| 国产色一区二区| 91久久香蕉国产日韩欧美9色| 美国毛片一区二区三区| 国产精品视频你懂的| 欧美日韩大陆一区二区| 国产精品一区在线| 一区二区三区中文在线| 精品福利视频一区二区三区| 91啪亚洲精品| 国产真实乱子伦精品视频| 亚洲男人天堂av网| 26uuu精品一区二区在线观看| 91片在线免费观看| 国产在线精品一区二区夜色| 亚洲精品菠萝久久久久久久| 26uuu亚洲婷婷狠狠天堂| 91成人国产精品| 国产精品一级片在线观看| 午夜在线电影亚洲一区| 国产精品国产三级国产普通话99| 欧美日韩成人高清| 白白色亚洲国产精品| 老司机精品视频线观看86| 玉米视频成人免费看| 久久久久久夜精品精品免费| 在线91免费看| 一本大道综合伊人精品热热| 国产精品乡下勾搭老头1| 日韩精品五月天| 亚洲另类春色校园小说| 国产嫩草影院久久久久| 欧美一二三区精品| 欧美性色黄大片| 成av人片一区二区| 国产最新精品免费| 喷水一区二区三区| 亚洲成人精品影院| 亚洲免费成人av| 国产精品乱码一区二三区小蝌蚪| 精品人在线二区三区| 欧美巨大另类极品videosbest | 日韩福利电影在线观看| 亚洲欧美日韩小说| 国产精品视频看| 国产欧美一区二区三区鸳鸯浴 | 成人av资源网站| 国产露脸91国语对白| 欧美日韩卡一卡二| 99久久综合精品| 成人夜色视频网站在线观看| 国内外成人在线| 久久精品噜噜噜成人88aⅴ| 亚洲va韩国va欧美va| 亚洲地区一二三色| 亚洲影视在线播放| 亚洲一区二区3| 亚洲国产成人精品视频|