亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

在Delphi的DBGrid中插入其他可視組件

2019-11-18 18:52:44
字體:
來源:轉載
供稿:網友
Delphi提供了功能強大的 DBGrid組件,以方便進行數據庫應用程序設計。但是如果我們僅僅利用DBGrid組件,每一個獲得焦點(Grid)只是一個簡單的文本編輯框,不方便用戶輸入數據。Delphi也提供了一些其他數據組件來方便用戶輸入,比如DBComboBox,DBCheckBox等組件,但這些組件卻沒有DBGrid功能強大。Delphi能不能象Visual FoxPRo那樣讓DBGrid中獲得焦點網格可以是其它可視數據組件以方便用戶呢?其實我們可以通過在DBGrid中插入其他可視組件來實現這一點。

Delphi對DBGrid處理的內部機制,就是在網格上浮動一個組件――DBEdit組件。你輸入數據的網格其實是浮動DBEdit組件,其他未獲得焦點地方不過是圖像罷了。所以,在DBGrid中插入其他可視組件就是在網格上浮動一個可視組件。因此任何組件,包括從簡單的DbCheckBox到復雜的對話框,都可以在DBGrid中插入。下面就是一個如何在DBGrid中插入DBComboBox組件的步驟,采用同樣的辦法可以插入其他組件。

1、 在Delphi 4.0中新建一個項目。

2、 分別拖動的Data access組件板上DataSource、Table,Data Controls組件板上DBGrid,DBComboBox四個組件到Form1上。

3、 設置各個組件的屬性如下:

rcf1對象 屬性 設定植
Form1 Caption  '在DBGrid中插入SpinEdit組件示例'
DataSource1 DataSet Table1
Table1 DatabaseName DBDEMOS
  TableName 'teacher.DBF'
  Active True
DBGrid1 DataSource DataSource1
DBComboBox1 DataField SEX
  DataSource DataSource1
  Visible False
  Strings Items.    '男'| '女'



意:我在這里用了Teacher.dbf,那是反映教職工的性別,只能是“男”或者是“女”。

4、 DrawDataCell事件是繪制單元格,當獲得焦點網格所對應的字段與組合框所對應的字段一致時,移動組合框到獲得焦點的網格上,并且
使組合框可視,從而達到在DBGrid指定列上顯示DBComboBox的功能。設置DBGrid1的OnDrawDataCell事件如下:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
  if (gdFocused in State) then
  begin
    if (Field.FieldName = DBComboBox1.DataField ) then
    begin
      DBComboBox1.Left := Rect.Left + DBGrid1.Left;
      DBComboBox1.Top := Rect.Top + DBGrid1.top;
      DBComboBox1.Width := Rect.Right - Rect.Left;
      DBComboBox1.Height := Rect.Bottom - Rect.Top;
      DBComboBox1.Visible := True;
   end;
 end;
end;

5、 DBGrid指定單元格未獲得焦點時不顯示DBComboBox,設置DBGrid1的OnColExit事件如下:
procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
  If DBGrid1.SelectedField.FieldName = DBComboBox1.DataField then
  begin
    DBComboBox1.Visible := false;
  end;
end;

6、 當DBGrid指定列獲得焦點時DrawDataCell事件只是繪制單元格,并顯示DBComboBox,但是DBComboBox并沒有獲得焦點,數據的輸入還是在單元格上進行。在DBGrid1的KeyPress事件中調用SendMessage這個 Windows API函數將數據輸入傳輸到DBComboBox上,從而達到在DBComboBox上進行數據輸入。因此還要設置KeyPress事件如下:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if (key < > chr(9)) then
  begin
    if (DBGrid1.SelectedField.FieldName  =DBComboBox1.DataField) then
    begin
       DBComboBox1.SetFocus;
       SendMessage(DBComboBox1.Handle, WM_Char, Word(Key), 0);
    end;
  end;
end;

程序在中文Windows 98,Delphi 4.015 下調試通過。希望本文能使你可以更加方便快捷的開發數據庫應用程序。

上一篇:如何將界面代碼和功能代碼分離(基于Delphi/VCL)

下一篇:用DELPHI編制Windows95下的鉤子函數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一区第一页| 亚洲国产精品久久久久秋霞不卡| 4p变态网欧美系列| 亚洲欧美激情四射在线日| 亚洲美女免费精品视频在线观看| 亚洲va男人天堂| 亚洲护士老师的毛茸茸最新章节| 亚洲国产婷婷香蕉久久久久久| 黑人与娇小精品av专区| 亚洲美女www午夜| 性欧美xxxx视频在线观看| 国产盗摄xxxx视频xxx69| 国产亚洲精品日韩| 欧美一级大片在线观看| 精品少妇一区二区30p| 成人97在线观看视频| 成人乱色短篇合集| 欧美性猛交视频| 中文字幕一区电影| 亚洲欧美国产日韩中文字幕| 欧美大片在线看免费观看| 国产一区二区三区在线| 中文字幕久久精品| 亚洲一区二区三区乱码aⅴ| 亚洲精品suv精品一区二区| 91chinesevideo永久地址| 美女久久久久久久久久久| 亚洲欧美国产精品专区久久| 亚洲男女自偷自拍图片另类| 日韩av免费在线观看| 国产精品99久久久久久久久| 亚洲免费伊人电影在线观看av| 国产www精品| 日韩在线观看av| 欧美人在线观看| 精品国产老师黑色丝袜高跟鞋| 久久精品欧美视频| 久久久久亚洲精品成人网小说| 亚洲欧美日韩精品| 国内精品久久久久影院 日本资源| 日本高清+成人网在线观看| 国产做受69高潮| 欧美性xxxxx极品| 少妇av一区二区三区| 福利二区91精品bt7086| 日韩在线www| 91久久精品美女| 欧美日韩高清在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 深夜福利一区二区| 热久久美女精品天天吊色| 久久综合国产精品台湾中文娱乐网| 国产精品黄页免费高清在线观看| 日韩经典中文字幕在线观看| 91亚洲va在线va天堂va国| 成人亚洲欧美一区二区三区| 久久久久久综合网天天| 成人黄色免费在线观看| 亚洲欧美激情四射在线日| 欧美又大又硬又粗bbbbb| 日韩欧美国产高清91| 欧美午夜视频一区二区| 亚洲国产另类久久精品| 激情亚洲一区二区三区四区| 久久免费成人精品视频| 欧美富婆性猛交| 中文字幕日韩在线播放| 亚洲va欧美va在线观看| 国产成人精品视频| 91av视频在线免费观看| 91色视频在线导航| 欧美第一黄网免费网站| 亚洲欧美成人一区二区在线电影| 国产精品大陆在线观看| 久久成人18免费网站| 亚洲欧洲美洲在线综合| 91av在线视频观看| 亚洲免费一在线| 欧美激情一区二区三区在线视频观看| 97成人精品视频在线观看| 亚洲精品98久久久久久中文字幕| 在线亚洲国产精品网| 欧美华人在线视频| 久久久国产精彩视频美女艺术照福利| 国产精品一区二区久久国产| 日韩最新中文字幕电影免费看| 欧美日韩免费观看中文| 国产欧美婷婷中文| 九九热99久久久国产盗摄| 日韩免费观看在线观看| 欧美性感美女h网站在线观看免费| 一区二区三区国产视频| 国产精品久久久久久网站| 38少妇精品导航| 欧美小视频在线| 久久精品国产96久久久香蕉| 91精品成人久久| 91亚洲国产成人精品性色| 日韩av中文字幕在线播放| 色综合久综合久久综合久鬼88| 色偷偷av一区二区三区乱| 欧美性猛交xxxxx水多| 91亚洲va在线va天堂va国| 国产99在线|中文| 亚洲2020天天堂在线观看| 午夜精品国产精品大乳美女| 日韩在线观看免费| 精品久久久香蕉免费精品视频| 欧美激情亚洲视频| 伊人久久久久久久久久久| 亚洲日韩中文字幕| 69国产精品成人在线播放| 欧美精品一区二区免费| 在线精品高清中文字幕| 亚洲欧美日韩久久久久久| 日本不卡视频在线播放| 一本色道久久综合亚洲精品小说| 日韩av电影中文字幕| 精品久久中文字幕久久av| 国产亚洲美女久久| 高清日韩电视剧大全免费播放在线观看| 久久天天躁狠狠躁老女人| 欧美视频中文在线看| 欧美日韩在线看| 国产精品久久久久久久一区探花| 国产拍精品一二三| 久久久91精品国产| 久久久精品日本| 美女999久久久精品视频| 亚洲天堂成人在线| 欧美中文在线字幕| 国产91免费看片| 国产91精品在线播放| 亚洲区免费影片| 日韩精品有码在线观看| 日韩欧美国产骚| 国产精品成熟老女人| 成人有码视频在线播放| 欧美激情欧美激情在线五月| 欧美极度另类性三渗透| 久久久影视精品| 亚洲欧美成人在线| 日本精品久久久久久久| 亚洲国产小视频在线观看| 2018日韩中文字幕| 精品视频中文字幕| 欧美国产日产韩国视频| 在线日韩日本国产亚洲| 亚洲欧美国产一区二区三区| 国产精品99久久久久久久久久久久| 精品国产精品自拍| 日韩精品在线观看网站| 日韩中文字幕精品视频| 清纯唯美日韩制服另类| 欧美一区二区影院| 国产精品96久久久久久| 色妞色视频一区二区三区四区| 中文字幕不卡在线视频极品| 精品一区二区三区三区| 在线观看日韩欧美| 国产精品1区2区在线观看| 日韩欧美国产中文字幕| 国产在线视频一区| 欧美情侣性视频|