亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Delphi呼叫告警系統(tǒng)監(jiān)控面板的動(dòng)態(tài)實(shí)現(xiàn)

        2013-12-31 00:00:00徐紹江

        摘 要:本文介紹了用動(dòng)態(tài)創(chuàng)建MPI(Multi-Page Interface)的方法實(shí)現(xiàn)多業(yè)務(wù)窗口,用動(dòng)態(tài)創(chuàng)建自定義DBCtrlGrid組件的方法實(shí)現(xiàn)呼叫告警監(jiān)控面板。

        關(guān)鍵詞:Dephi7 動(dòng)態(tài);MPI;DBCtrlGrid

        中圖分類號(hào):X924.3

        多標(biāo)簽頁(yè)、窗格式監(jiān)控面板比較直觀和方便,可以用在多種監(jiān)控系統(tǒng)上。

        呼叫告警系統(tǒng)監(jiān)控面板,通過權(quán)限控制動(dòng)態(tài)創(chuàng)建一定數(shù)量的標(biāo)簽頁(yè)(一般不再關(guān)閉),然后將各個(gè)房間(也可以是各個(gè)監(jiān)控點(diǎn))的資料和狀態(tài)在窗格中顯示出來,后臺(tái)定時(shí)掃描數(shù)據(jù)庫(kù),如有告警或者異常狀態(tài)則背景用紅色表示,用來提醒、處理告警,本文嘗試用福利院(醫(yī)院)呼叫告警系統(tǒng)的一個(gè)監(jiān)控模塊來介紹用動(dòng)態(tài)創(chuàng)建MPI的方法實(shí)現(xiàn)多業(yè)務(wù)窗口,并用動(dòng)態(tài)創(chuàng)建自定義DBCtrlGrid組件的方法實(shí)現(xiàn)呼叫告警監(jiān)控面板。

        1 自定義控件類

        1.1 自定義DBCtrlGrid控件類,在繼承TDBCtrlGrid控件的基礎(chǔ)上,增加了數(shù)據(jù)源、數(shù)據(jù)集、圖像類,和動(dòng)態(tài)感知控件以及定時(shí)器。用來定時(shí)掃描后臺(tái)Oracle 數(shù)據(jù)庫(kù)中房間的狀態(tài),顯示在自定義DBCtrlGrid中,自定義DBCtrlGrid控件類中對(duì)基類的構(gòu)造函數(shù)進(jìn)行的重載,以方便傳遞動(dòng)態(tài)SQL參數(shù),用來實(shí)現(xiàn)不同院名數(shù)據(jù)的獲取。

        //自定義TDBCtrlGrid控件,很重要要用自定義控件的panel屬性;

        TMDBG=class(TDBCtrlGrid)

        ds:TDataSource;//數(shù)據(jù)源

        orq: TOraQuery; //連接Oracle數(shù)據(jù)庫(kù)

        img:TImage;//顯示小人圖標(biāo)

        name:TDBText ;//顯示人名

        room:TDBText;//顯示房間號(hào)

        tm:TTimer;//定時(shí)器

        private

        v_sql:string;//SQL語句

        public

        //構(gòu)造函數(shù)重載 增加初始化參數(shù),Str_Sql是SQL語句,ASession是ORACLE連接session

        constructor Create(Aowner:TComponent;Str_Sql :string;ASession :TOraSession);overload;

        destructor Destroy();override;//覆蓋析構(gòu)函數(shù),主要用做控件對(duì)象的釋放

        procedure MyPaintPanel(DBCtrlGrid: TDBCtrlGrid;Index: Integer);//重繪Panel顏色

        procedure Mytimer(Sender: TObject);//定時(shí)器自定義過程

        end;

        MyPaintPanel過程重新實(shí)現(xiàn)了TDBCtrlGrid的OnPaintPanel事件,Mytimer過程重新實(shí)現(xiàn)Ttimber的Ontimer事件。

        1.2 自定義TtabSheet用于動(dòng)態(tài)創(chuàng)建頁(yè)面,嵌于TpageControl中

        TMYTabSheet = class(TTabSheet)//自定義 TTabSheet

        DbCtrlGrid:TMDBG;//自定義TMDBG類

        Public

        //構(gòu)造函數(shù)重載

        constructor Create(Aowner:TComponent;Str_Sql :string;ASession :TOraSession);overload;

        destructor destroy();override;//析構(gòu)函數(shù)覆蓋

        end;

        2 編碼實(shí)現(xiàn)

        動(dòng)態(tài)創(chuàng)建MYTabSheet和MYDBCtrlGrid控件,將MYDBCtrlGrid嵌入MYTabSheet,然后再將MYTabSheet賦給PageControl控件,形成一個(gè)標(biāo)簽業(yè)務(wù)界面。

        TMDBG構(gòu)造函數(shù),初始化成員。

        constructor TMDBG.create(Aowner: TComponent; Str_Sql: string;

        ASession: TOraSession);

        begin

        inherited create(Aowner);//繼承

        v_sql:=Str_Sql;

        ds:=TDataSource.Create(self);//此處self 是TMDBG,TMDBG控制該對(duì)//象的生存周期

        orq:= TOraQuery.Create(self);

        img:=TImage.Create(self);

        name:=TDBText.Create(self) ;

        room:=TDBText.Create(self) ;

        orq.Session:=ASession;//本例子使用了ODAC控件,此處需要連接OraSession控件

        ds.DataSet:= orq;

        self.DataSource:=ds;// TMDBG的數(shù)據(jù)源

        name.DataSource:=ds;//數(shù)據(jù)源

        name.Parent:=Self.Panel;//重要Parent必須是Self.Panel才能每個(gè)窗格內(nèi)都顯示出來

        name.DataField:='elder_name';//數(shù)據(jù)源中的字段,老人人名

        name.Transparent:=true;//設(shè)置背景透明

        room.DataSource:=ds;

        room.Parent:=Self.Panel;

        room.DataField:='ELDER_ROOM_ID';//數(shù)據(jù)源中房間號(hào)

        room.Font.Size:=12;//設(shè)置為12號(hào)字體

        room.Font.Style:=[fsBold];//加粗

        img.Parent:=self.Panel;//重要,Parent必須是Self.Panel才能每個(gè)窗格內(nèi)都顯示出來否則//只可能顯示出一個(gè)圖像

        orq.SQL.Clear;

        orq.SQL.Text:=v_sql;//傳遞動(dòng)態(tài)SQL語句

        orq.Prepared:=true;

        orq.Open;//打開查詢數(shù)據(jù)集

        tm:=TTimer.Create(Self);

        tm.Interval:=5000;//掃描間隔時(shí)間

        Self.OnPaintPanel:=MyPaintPanel;//TDBCtrlGrid的OnPaintPanel事件實(shí)現(xiàn)過程重新實(shí)現(xiàn)

        tm.OnTimer:=Mytimer; // Ttimer的OnTimer事件實(shí)現(xiàn)過程重新實(shí)現(xiàn)

        tm.Enabled:=true;

        end;

        3 結(jié)束語

        通過本文,可實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建MPI界面和基于TDBCtrlGrid控件的監(jiān)控窗格,經(jīng)過進(jìn)一步改進(jìn)該監(jiān)控界面還能用于程控交換監(jiān)控、設(shè)備監(jiān)控、以及視頻監(jiān)控等系統(tǒng)。本例子在Delphi7和WinXP環(huán)境下通過。

        參考文獻(xiàn):

        [1]劉藝.Delphi面向?qū)ο缶幊趟枷隱M].北京:機(jī)械工業(yè)出版社,2004.

        国产大屁股白浆一区二区三区| 国产熟女高潮视频| 秒播无码国产在线观看| 国产爆乳美女娇喘呻吟久久| 亚洲va欧美va| 日韩av一区二区三区四区av| 亚洲青青草视频在线播放| 侵犯了美丽丰满人妻中文字幕| 穿着白丝啪啪的av网站| 和黑人邻居中文字幕在线 | 一区二区三区在线蜜桃| av网址在线一区二区| 噜噜中文字幕一区二区| 亚洲av无码专区在线观看下载 | 久久国产精品懂色av| 蜜桃视频羞羞在线观看| 丰满人妻被两个按摩师| 久久精品国产亚洲一区二区| 亚洲熟女av中文字幕网站| 草青青视频手机免费观看| 乱子轮熟睡1区| 真人二十三式性视频(动)| 亚洲av中文无码乱人伦在线咪咕| 91九色视频在线国产| 色欲综合一区二区三区| 国产尤物精品福利视频| 在线视频中文字幕乱人伦| 少妇被爽到自拍高潮在线观看| 国产自产二区三区精品| 国产精品无码久久久久成人影院| 亚洲乱码日产精品bd在线观看 | 国产精品一区二区三区不卡| 日本黑人乱偷人妻在线播放| 亚洲欧美日韩在线不卡| 99久久精品国产一区二区蜜芽 | 色狠狠色狠狠综合天天| 亚洲av成人无码网天堂| 亚洲福利天堂网福利在线观看| 久久久精品少妇—二区| 少妇伦子伦精品无吗| 国产成人亚洲不卡在线观看|