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

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

?? pobject_base.pas

?? 培訓管理系統
?? PAS
字號:
unit pobject_base;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBCtrls, StdCtrls, Buttons, ExtCtrls,Wwquery, Wwdatsrc, ImgList,
  ComCtrls, ToolWin, DBTables, DB, Mask, wwdbedit, Wwdotdot, Wwdbcomb,inifiles;

type
  Tobject_base = class(TForm)
    Dts_Master: TwwDataSource;
    Data_Master: TwwQuery;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    Btn_Append: TToolButton;
    ImageList1: TImageList;
    Btn_Save: TToolButton;
    Btn_modify: TToolButton;
    Btn_Delete: TToolButton;
    Btn_Find: TToolButton;
    Btn_copy: TToolButton;
    Btn_Cancel: TToolButton;
    Btn_Refresh: TToolButton;
    Dbn_master: TDBNavigator;
    Btn_Print: TToolButton;
    Btn_check: TToolButton;
    Btn_audit: TToolButton;
    Btn_end: TToolButton;
    Btn_quit: TToolButton;
    Btn_help: TToolButton;
    Upd_master: TUpdateSQL;
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure EditEnter(Sender: TObject);
    procedure EditExit(Sender:Tobject);
    procedure EditKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Btn_quitClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Btn_AppendClick(Sender: TObject);
    procedure Btn_DeleteClick(Sender: TObject);
    procedure Btn_SaveClick(Sender: TObject);
    procedure Btn_CancelClick(Sender: TObject);
    procedure Btn_FindClick(Sender: TObject);
    procedure Btn_PrintClick(Sender: TObject);
    procedure Btn_auditClick(Sender: TObject);
    procedure Btn_endClick(Sender: TObject);
    procedure Btn_checkClick(Sender: TObject);
    procedure Btn_copyClick(Sender: TObject);
    procedure Btn_modifyClick(Sender: TObject);
    procedure Btn_RefreshClick(Sender: TObject);
    procedure Data_MasterAfterScroll(DataSet: TDataSet);
    procedure Data_MasterBeforeEdit(DataSet: TDataSet);
    procedure Data_MasterAfterOpen(DataSet: TDataSet);
    procedure Btn_helpClick(Sender: TObject);
  private
    { Private declarations }
    inifile:tinifile;   //vmaoedit;20021118
    procedure DisplayHint(Sender :Tobject);
  public
    { Public declarations }

    MAXTABORDER :smallint;
    savedData:boolean;
    BtnTyp:string;
    procedure deletedata;virtual;abstract;
    procedure savedata;virtual;abstract;
    procedure append_button;        //新增狀態的BUTTON
    procedure Edit_button;         //編輯狀態的BUTTON
    procedure norecord_button;     //無記錄狀態
    procedure record_button;      //有記錄狀態
    procedure brow_button;         //瀏覽狀態的BUTTON
  end;

var
  object_base: Tobject_base;

implementation
uses Pdlgloading, main, pdatabse,htmlhlp;
{$R *.dfm}

procedure Tobject_base.FormCreate(Sender: TObject);
var w,h:integer;
begin
//讀窗體配置文件
  if self.BorderStyle=bsSizeToolWin then
  begin
   inifile:=tinifile.Create(extractfilepath(application.exename)+'\ini\form.ini');
   //窗體
   w:=inifile.ReadInteger(self.Name,'width',0);
   if w>0 then self.Width:=w;
   h:=inifile.ReadInteger(self.Name,'height',0);
   if h>0 then self.Height:=h;
   //panel
   w:=inifile.ReadInteger(self.Name,'panleftw',0);
   if w>0 then tpanel(self.FindComponent('panleft')).Width:=w;
   h:=inifile.ReadInteger(self.Name,'panlefth',0);
   if h>0 then tpanel(self.FindComponent('panleft')).Height:=h;
   //在close中寫配置和釋放文件;
  end;

  MAXTABORDER:=30;
  with Dlgloading.progress do  Position:=Position+Step;
  with Dlgloading.Progress do position:=position+step;
end;

procedure Tobject_base.FormActivate(Sender: TObject);
begin
Application.OnHint :=DisplayHint;
end;

procedure Tobject_base.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if btn_save.Enabled then
  if Application.MessageBox('資料沒有存盤,是否退出?', '返回', MB_OKCANCEL + MB_DEFBUTTON1+ MB_ICONWARNING) = IDCANCEL then Abort;
//寫窗體配置文件
  if self.BorderStyle=bsSizeToolWin then
  begin
   //窗體
   inifile.writeInteger(self.Name,'width',self.Width);
   inifile.writeInteger(self.Name,'height',self.Height);
   //panel
   inifile.writeInteger(self.Name,'panleftw',tpanel(self.FindComponent('panleft')).Width);
   inifile.writeInteger(self.Name,'panlefth',tpanel(self.FindComponent('panleft')).Height);
   //在close中寫配置和釋放文件;
   inifile.Free;
  end;

  Application.OnHint :=nil;
  Action:=Cafree;
//  self:=nil;
end;

procedure Tobject_base.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
   key:=#0;
   if ActiveControl <> nil then
   if ActiveControl.TabOrder<MAXTABORDER then
      selectnext(Activecontrol,True,True)
   else
  end;
end;

procedure Tobject_base.DisplayHint(Sender:Tobject);
begin
  mainform.StatusBar1.Panels[1].text:=Application.Hint;
end;

procedure Tobject_base.EditEnter(Sender: TObject);
begin
   TDBEdit(Sender).Color              :=clyellow;
   TwwDBEdit(Sender).Color            :=clyellow;
   TwwDBComboBox(Sender).Color        :=clyellow;
   mainform.StatusBar1.Panels[1].Text := Copy(Hint, Pos('|', Hint) + 1, Length(Hint));
end;

procedure Tobject_base.EditExit(Sender:Tobject);
begin
   TDBEdit(Sender).Color              :=clwindow;
   TwwDBEdit(Sender).Color            :=clwindow;
   TwwDBComboBox(Sender).Color        :=clwindow;
   mainform.StatusBar1.Panels[1].Text := '';
end;

procedure Tobject_base.EditKeyDown(Sender: TObject; var Key: Word;
                                  Shift: TShiftState);
begin
   if Key=VK_ESCAPE then  Key:=0;
   case Key of
      VK_DOWN:
      begin
         Key := 0;
         if ActiveControl<>nil then
         if TWinControl(ActiveControl).TabOrder < MAXTABORDER then
            SelectNext(ActiveControl, True, True);
      end;
      VK_UP:
      begin
         Key := 0;
         if ActiveControl<>nil then         
         if TWinControl(ActiveControl).TabOrder <> 0 then
            SelectNext(ActiveControl, False, True);
      end;
   end;
end;

procedure Tobject_base.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   case Key of
      VK_DOWN:
      begin
         Key := 0;
         if ActiveControl<>nil then         
         if TWinControl(ActiveControl).TabOrder < MAXTABORDER then
            SelectNext(ActiveControl, True, True);
      end;
      VK_UP:
      begin
         Key := 0;
         if ActiveControl<>nil then         
         if TWinControl(ActiveControl).TabOrder <> 0 then
            SelectNext(ActiveControl, False, True);
      end;
   end;
end;

procedure Tobject_base.Btn_quitClick(Sender: TObject);
begin
  close;
end;

procedure Tobject_base.FormShow(Sender: TObject);
begin
   dlgloading.close;
   dlgloading.free;
end;

procedure Tobject_base.Btn_AppendClick(Sender: TObject);
begin
   BtnTyp:='Append';
   mainform.Statusbar1.Panels[0].text:='資料新增';
   Data_Master.Append;
   append_button;
end;

procedure Tobject_base.Btn_DeleteClick(Sender: TObject);
begin
  BtnTyp:='Delete';
  mainform.Statusbar1.Panels[0].text:='資料刪除';
  if not Data_Master.IsEmpty  then
  begin
    if Application.MessageBox('是否確認刪除該記錄?','警告',MB_YESNO or MB_ICONWARNING)=IDYES then
    begin
      Try
        datamoduledb.DatabaseAcct.StartTransaction;
        deletedata;
        data_master.ApplyUpdates;  //提交緩存;清除緩存;
        data_master.CommitUpdates;
        datamoduledb.DatabaseAcct.Commit;
        BtnTyp:='';
        if data_master.IsEmpty then norecord_button
         else brow_button;
      except
        datamoduledb.DatabaseAcct.Rollback;
        data_master.CancelUpdates;
        if data_master.IsEmpty then norecord_button
         else brow_button;              
      end;
    end;
  end;
end;

procedure Tobject_base.Btn_SaveClick(Sender: TObject);
begin
  mainform.StatusBar1.Panels[0].Text:='存盤';
  Screen.Cursor := crHourglass;
  try
    datamoduledb.DatabaseAcct.StartTransaction;
    savedata;
    data_master.ApplyUpdates;  //提交緩存;清除緩存;
    data_master.CommitUpdates;
    datamoduledb.DatabaseAcct.Commit;
    BtnTyp:='';
    brow_button;
    //Data_MasterAfterScroll(Data_master); //用來刷新按鈕
  except
    Screen.Cursor := crDefault;
//    data_master.CancelUpdates;  出錯不因該回滾當前記錄!而且在有主明細的情況下是錯誤的!
    datamoduledb.DatabaseAcct.Rollback;
  end;
  Screen.Cursor := crDefault;
end;

procedure Tobject_base.Btn_CancelClick(Sender: TObject);
begin
  mainform.StatusBar1.Panels[0].Text:='放棄所有異動';
  Data_Master.CancelUpdates;
  BtnTyp:='Abort';
  if data_master.IsEmpty then norecord_button
  else  brow_button;
  dbn_master.Enabled:=true;
end;

procedure Tobject_base.Btn_FindClick(Sender: TObject);
begin
  BtnTyp:='Find';
  mainform.Statusbar1.Panels[0].text:='資料查詢';
end;

procedure Tobject_base.Btn_PrintClick(Sender: TObject);
begin
  BtnTyp:='Print';
  mainform.Statusbar1.Panels[0].text:='資料列印';
end;

procedure Tobject_base.Btn_auditClick(Sender: TObject);
begin
   BtnTyp:='Audit';
   mainform.Statusbar1.Panels[0].text:='核準';
end;

procedure Tobject_base.Btn_endClick(Sender: TObject);
begin
  BtnTyp:='End';
  mainform.Statusbar1.Panels[0].text:='結案';
end;

procedure Tobject_base.Btn_checkClick(Sender: TObject);
begin
  BtnTyp:='Check';
  mainform.Statusbar1.Panels[0].text:='計算';
end;

procedure Tobject_base.Btn_copyClick(Sender: TObject);
begin
   BtnTyp:='Copy';
   mainform.Statusbar1.Panels[0].text:='復制';
end;

procedure Tobject_base.Btn_modifyClick(Sender: TObject);
begin
   BtnTyp:='Modify';
   mainform.Statusbar1.Panels[0].text:='修改';
   Data_Master.Edit;
   Append_button;
end;

procedure Tobject_base.Btn_RefreshClick(Sender: TObject);
begin
  BtnTyp:='Refresh';
  mainform.Statusbar1.Panels[0].text:='刷新';
  try
    Data_Master.Close;
    Data_Master.Open;
  except
  end;
end;

procedure Tobject_base.append_button;        //新增狀態的BUTTON
begin
  Btn_append.Enabled:=False;
  Btn_Save.Enabled:=True;
  Btn_Modify.Enabled:=False;
  Btn_delete.Enabled:=False;
  Btn_Find.Enabled:=False;
  Btn_copy.Enabled:=False;
  Btn_cancel.Enabled:=True;
  Btn_print.Enabled:=False;
  Btn_Refresh.Enabled:=False;
  Btn_check.Enabled:=False;
  Btn_audit.Enabled:=False;
  Btn_end.Enabled:=False;
  dbn_master.Enabled:=false;
end;

procedure Tobject_base.norecord_button; //無記錄狀態
begin
  if pu_qx='A' then Btn_append.Enabled:=True else btn_append.Enabled:=false;
  Btn_Save.Enabled:=False;
  Btn_delete.Enabled:=False;
  Btn_Modify.Enabled:=False;
  Btn_cancel.Enabled:=False;
  Btn_print.Enabled:=False;
  Btn_Find.Enabled:=True;
  Btn_copy.Enabled:=False;
  Btn_Refresh.Enabled:=False;
  Btn_check.Enabled:=False;
  Btn_audit.Enabled:=False;
  Btn_end.Enabled:=False;
end;

procedure Tobject_base.record_button;      //有記錄
begin
  if pu_qx='A' then Btn_append.Enabled:=True else btn_append.Enabled:=false;
  if pu_qx='A' then Btn_copy.Enabled:=True else btn_copy.Enabled:=false;
  if pu_qx='A' then Btn_delete.Enabled:=true else btn_delete.Enabled:=false;
  Btn_Cancel.Enabled:=false; //有記錄的時候不能還原!
  if pu_qx='A' then Btn_Modify.Enabled:=true else btn_modify.Enabled:=false;
  Btn_print.Enabled:=True;

  Btn_check.Caption:='計算';
  if pu_qx='A' then Btn_check.Enabled:=true else btn_check.Enabled:=false;
  Btn_audit.Caption:='核準';
  if pu_qx='A' then Btn_audit.Enabled:=true else btn_audit.Enabled:=false;
  Btn_end.Caption:='結案';
  if pu_qx='A' then Btn_end.Enabled:=true else btn_end.Enabled:=false;
  dbn_master.Enabled:=True;
end;

procedure Tobject_base.edit_button;
begin
  if data_master.isempty and (btntyp<>'Append') then abort;
  Append_button;
end;

procedure Tobject_base.Data_MasterAfterScroll(DataSet: TDataSet);
begin
  if BtnTyp='Append' then append_button  //如果新增
  else
  begin
    if data_master.IsEmpty then  norecord_button  //如果無記錄
    else record_button;
  end;
end;

procedure Tobject_base.Data_MasterBeforeEdit(DataSet: TDataSet);
begin
  edit_button;
end;

procedure Tobject_base.Data_MasterAfterOpen(DataSet: TDataSet);
begin
  //如果一打開為空,也要執行一遍Data_MasterAfterScroll 設定BUTTON狀態
  if data_master.IsEmpty  then  norecord_button
  else brow_button;
end;

procedure Tobject_base.Btn_helpClick(Sender: TObject);
begin
  htmlhelp(self.Handle,pchar(extractfilepath(application.ExeName)+'\help\uesoft_help.chm ::/'+self.name+'.htm'),HH_DISPLAY_TOPIC,0);
end;

procedure Tobject_base.brow_button;
begin
    if pu_qx='A' then Btn_append.Enabled:=True else btn_append.Enabled:=false;
    Btn_Save.Enabled:=False;
    if pu_qx='A' then Btn_delete.Enabled:=True else btn_append.Enabled:=false;
    if pu_qx='A' then Btn_Modify.Enabled:=True else btn_append.Enabled:=false;
    Btn_cancel.Enabled:=False;
    Btn_print.Enabled:=True;
    Btn_Find.Enabled:=True;
    if pu_qx='A' then Btn_copy.Enabled:=True else btn_copy.Enabled:=false;
    Btn_Refresh.Enabled:=true;
    if pu_qx='A' then Btn_check.Enabled:=True else btn_check.Enabled:=false;
    if pu_qx='A' then Btn_audit.Enabled:=True else btn_audit.Enabled:=false;
    if pu_qx='A' then Btn_end.Enabled:=True else btn_end.Enabled:=false;
    dbn_master.Enabled:=True;    
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利一区二区三区在线视频| 99精品视频一区二区| 狠狠色丁香婷综合久久| 国产成人免费视频一区| 欧美在线免费观看亚洲| 久久综合九色综合97婷婷女人| 中文字幕一区二区三区四区不卡 | 麻豆精品在线观看| 成人午夜视频在线| 欧美性三三影院| 日本一二三四高清不卡| 日韩影院在线观看| 色综合天天综合网天天狠天天| 制服丝袜成人动漫| 中文字幕一区二区不卡| 蜜臀va亚洲va欧美va天堂| 不卡视频免费播放| 久久人人97超碰com| 日韩国产精品大片| 日本高清无吗v一区| 国产色婷婷亚洲99精品小说| 午夜激情久久久| 91麻豆国产自产在线观看| 久久久99精品免费观看| 性欧美大战久久久久久久久| 成人福利视频网站| 欧美韩国日本综合| 国产精品亚洲专一区二区三区| 欧美一二三四区在线| 亚洲第一在线综合网站| 国产人妖乱国产精品人妖| 国产一区在线不卡| 精品美女一区二区三区| 精品亚洲成a人| 日韩一级欧美一级| 日韩一区欧美二区| 精品区一区二区| 韩国成人在线视频| 久久先锋影音av鲁色资源| 精品一区二区日韩| 久久精品在线免费观看| 99久久免费国产| 夜夜精品浪潮av一区二区三区| 欧美亚洲精品一区| 亚洲bdsm女犯bdsm网站| 日韩一区二区三区免费观看 | 成人黄色小视频| 1区2区3区精品视频| 91豆麻精品91久久久久久| 日本中文字幕一区| 日韩欧美一级精品久久| 成人一区在线看| 视频一区视频二区中文字幕| 91麻豆精品国产| 国产麻豆视频精品| 一区二区成人在线| 国产午夜亚洲精品不卡| 一本大道综合伊人精品热热| 亚洲成人动漫在线观看| 国产女人aaa级久久久级| 欧美亚洲尤物久久| 国产乱人伦偷精品视频免下载| 亚洲精品视频在线| 久久久电影一区二区三区| 欧美视频在线播放| 久久成人免费网站| 亚洲sss视频在线视频| 国产精品免费久久久久| 欧美日韩精品高清| 99在线热播精品免费| 天天综合色天天| 亚洲天堂精品视频| 欧美一级视频精品观看| 91亚洲资源网| 国产精品自在欧美一区| 天堂蜜桃一区二区三区| 一区二区激情小说| 国产精品久久久久三级| 26uuu国产一区二区三区| 欧美日本国产视频| 在线观看视频一区二区 | 欧美专区在线观看一区| 色综合久久中文综合久久牛| 国产精品一级二级三级| 蓝色福利精品导航| 亚洲第一主播视频| 亚洲第一成年网| 日日夜夜免费精品| 亚洲成人免费在线观看| 亚洲国产精品久久一线不卡| 亚洲一区国产视频| 亚洲国产成人av| 偷窥少妇高潮呻吟av久久免费| 亚洲亚洲人成综合网络| 日本在线不卡一区| 免费成人在线影院| 国产在线精品不卡| 成人一区在线观看| 91麻豆123| 欧美日韩精品高清| 26uuu国产一区二区三区| 久久久亚洲午夜电影| 国产精品久久久久久久蜜臀| 亚洲国产视频网站| 久久av老司机精品网站导航| 国产成人午夜视频| 日本精品视频一区二区| 欧美一区二区人人喊爽| 国产日韩高清在线| 亚洲一区欧美一区| 国产精品原创巨作av| 色狠狠桃花综合| 日韩视频一区在线观看| 中文字幕不卡在线播放| 无码av免费一区二区三区试看| 黄色日韩网站视频| 欧美吻胸吃奶大尺度电影| 欧美白人最猛性xxxxx69交| 国产精品美女久久福利网站| 亚洲综合色噜噜狠狠| 国精产品一区一区三区mba桃花 | 精品亚洲免费视频| 欧美性生活久久| 国产精品久久久久久久久搜平片| 亚洲成av人综合在线观看| 国产乱人伦偷精品视频不卡| 欧美日韩国产精品自在自线| 国产精品黄色在线观看| 国产酒店精品激情| 欧美精选一区二区| 亚洲精品国产品国语在线app| 久久成人免费网| 日韩欧美卡一卡二| 午夜伊人狠狠久久| 在线观看一区二区视频| 国产欧美综合在线| 国产乱码精品一区二区三区忘忧草| 欧美日韩国产一级片| 亚洲电影一区二区| 日本大香伊一区二区三区| 国产免费观看久久| 成人动漫精品一区二区| 国产精品区一区二区三区| 国产精品综合在线视频| 欧美激情在线看| 成人h动漫精品一区二| 中文字幕精品—区二区四季| 国产.欧美.日韩| 中文字幕精品在线不卡| a在线欧美一区| 亚洲精品视频在线观看网站| 日本高清成人免费播放| 偷窥国产亚洲免费视频| 日韩一区二区三区在线| 免费日本视频一区| 精品国产一区二区三区av性色| 免费欧美高清视频| 欧美精品一区二区三区蜜桃| 紧缚奴在线一区二区三区| 欧美xxxx老人做受| 国产美女精品在线| 欧美tickling网站挠脚心| 九九久久精品视频| 国产精品久久久久一区二区三区 | 亚洲国产aⅴ天堂久久| 91精品国产aⅴ一区二区| 免费在线观看一区二区三区| 欧美极品xxx| 欧美年轻男男videosbes| 日韩av电影天堂| 中文字幕不卡在线播放| 在线不卡免费av| 99在线视频精品| 毛片基地黄久久久久久天堂| 欧美精品一区二区久久久| 色综合激情久久| 国内精品伊人久久久久av影院 | 国产美女精品在线| 亚洲不卡av一区二区三区| 国产欧美一区二区精品秋霞影院 | 免费高清不卡av| 夜夜亚洲天天久久| 国产喷白浆一区二区三区| 欧美巨大另类极品videosbest| 国产成人综合视频| 日本麻豆一区二区三区视频| 亚洲欧美日韩系列| 久久男人中文字幕资源站| 日韩一二三四区| 欧美日韩二区三区| 91蝌蚪国产九色| 国产精品一区二区久久不卡 | 亚洲精品一线二线三线| 欧美一区二区三区日韩| 在线亚洲一区二区| 在线视频欧美区| 99麻豆久久久国产精品免费优播| 国产精品一色哟哟哟| 国产在线视频一区二区| 久久99精品一区二区三区|