当前位置:  技术问答>java相关

帮我哦,如何在程序运行时动态添加下拉列表框中的数据(在dbgrid里用)?

    来源: 互联网  发布时间:2015-01-02

    本文导语:    我想用dbgrid直接进行输入或修改,表名为employee,字段为code(number类型),birthday(date类型),title(varchar2类型)。   我想在点击dbgrid里code字段时,可以出现下拉框或列表框来显示原先数据表中有的内容以供选择,...

  我想用dbgrid直接进行输入或修改,表名为employee,字段为code(number类型),birthday(date类型),title(varchar2类型)。
  我想在点击dbgrid里code字段时,可以出现下拉框或列表框来显示原先数据表中有的内容以供选择,点击birthday字段时可以弹出类似datetimepicker的控件来选择日期。如何做到呢,请详细一些(包括语句和一些属性的设置)。
  

|
动态添加下拉列表框中的数据:
dbgrid1.columns[i].picklist.clear;
with table1 do
begin
  first;
  while not eof do
  begin
    dbgrid1.columns[i].picklist.add(table1.fieldbyname('field').asstring);
    next;
  end;
end;
你使用的是query吧:
  query.requestlive:=true;
  如果没有设置只读属性应该是可以新增的。
至于datetimepicker;
  可以添加一个datetimepicker控件,再通过dbgrid.drawccolumncell事件把datetimepicker画上去。

|
给一个日期对话框例子:

//Form 的Text源码

object DateDlg: TDateDlg
  Left = 271
  Top = 159
  BorderStyle = bsNone
  Caption = '时间选择'
  ClientHeight = 184
  ClientWidth = 271
  Color = clBtnFace
  Font.Charset = GB2312_CHARSET
  Font.Color = clWindowText
  Font.Height = -12
  Font.Name = '宋体'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 12
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 271
    Height = 184
    Align = alClient
    BevelInner = bvRaised
    Caption = 'Panel1'
    TabOrder = 0
    object MonthCalendar1: TMonthCalendar
      Left = 2
      Top = 2
      Width = 267
      Height = 143
      Align = alTop
      Date = 36988.7495943287
      TabOrder = 0
    end
    object BitBtn1: TBitBtn
      Left = 120
      Top = 152
      Width = 65
      Height = 25
      Caption = '确认'
      TabOrder = 1
      Kind = bkOK
    end
    object BitBtn2: TBitBtn
      Left = 192
      Top = 152
      Width = 65
      Height = 25
      Caption = '取消'
      TabOrder = 2
      Kind = bkCancel
    end
  end
end


//单元源码
unit DateSet;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Spin, Grids, Calendar, ComCtrls, ExtCtrls;

type
  TDateDlg = class(TForm)
    Panel1: TPanel;
    MonthCalendar1: TMonthCalendar;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    function GetDate: TDateTime;
    procedure SetDate(aDate: TDateTime);
  private
    { Private declarations }
  public
    { Public declarations }
    property Date: TDateTime read GetDate write SetDate;
  end;

var
  DateDlg: TDateDlg;

implementation

{$R *.DFM}

function TDateDlg.GetDate: TDateTime;
begin
  Result := MonthCalendar1.Date;
end;

procedure TDateDlg.SetDate(aDate: TDateTime);
begin
  MonthCalendar1.Date := aDate;
end;

end.


|
1、Form上放四个元件,Table1(or Query1),Table2(or Query2),DataSource1,DBGrid1。
Table1和Table2的TableName=employee;
DataSource1.DataSet=Table2;
DBGrid1.DataSource=DataSource1.
2、打开Table1字段编辑器,增加要显示的字段后,新增一Lookup字段:
Name=CODE1;Type=Integer;Field Type=Lookup;DataSet=Table2;Key Fields=CODE;Lookup Fields=CODE;Result Field=CODE。
3、编辑DBGrid1.Columns属性,增加要显示的字段,包括CODE和CODE1,birthday字段的ButtonStyle=cbsEllipsis;
4、响应DBGrid1.OnEditButtonClick事件,在其中调用你编写的日期选择对话框,将日期值赋给birthday字段。
  运行之,新增代码在CODE字段,选择原表已有代码点击CODE1的下拉框,点击birthday的按钮,弹出时间选择对话框。


    
 
 

您可能感兴趣的文章:

  • Unix下如何在编程程序时给程序添加上版本信息?
  • 在linux上怎么编写一个模块来提供某个中断的中断处理程序呢?而且有哪些中断可以自己添加中断处理程序呢?
  • 把程序添加到启动项
  • 如何查找后门文件(附件有添加后门的程序)
  • 怎么在jbuilder中添加断点调试程序呀?
  • UNIX下如何添加自启动程序?
  • 硬盘安装的红帽子9.0,没有光盘,怎么在添加新程序
  • 求助 程序中添加互斥锁代码后编译怎么通不过 ?
  • 我是硬盘安装的red hat 之后怎么才能添加linux自带光盘里的程序啊
  • gtk程序中怎么添加一个循环事件?
  • 如何在linux中如何添加应用程序使其在内核启动后自动运行??
  • JB7中怎么添加servlet程序
  • 为什么crontab添加的程序没法运行呢?
  • redhat7.3下原来没安装TELNET组件,怎么安装?类似WIN里的添加删除程序
  • 请问为什么我的添加/删除程序里面看不到光盘里面的内容阿
  • misc类型的驱动程序怎么添加设备文件?也是用mknod么?
  • 请问怎样为应用程序添加一个端口?
  • linux下如何添加USB的ADSL驱动程序??
  • linux下如何添加驱动程序??
  • 我用的是硬盘ISO文件按装的RH9.0,怎么再添加应用程序呀?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • SecureCRT上运行一个JAVA程序,该程序类似一个在WINDOWS下一直运行的CMD窗口的东西,SecureCRT关掉后,JAVA还会继续运行吗?
  • windows下cmd命令提示符下让程序后台运行命令
  • telnet到主机去运行一个我编的程序,退出telnet时那个程序也不运行了,这是怎么回事?按程序逻辑它应该一直运行下去的。
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • 在JB7中默认的情况下会为程序生成一个包,程序在JB7中可以正常运行,可是在JDK中却无法运行
  • 我用C在UNIX下写程序,生产文本,如何能让我的程序并行运行,好加快运行速度,举例说明。
  • 怎样在客户端(win2k svr)vc程序里使hp-ux服务器中的c程序运行,另外如何获得其运行结果?
  • 在LIUNIX中,在运行程序中,运行什么命令可以出现类似DOS的界面...谢谢.
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?
  • 程序在windows下用visual运行正常,如何才能在linux下运行??
  • linux编写一个脚本判断程序是否在运行,如果没运行就重启这个软件。
  • 请问linux下查看某个程序的运行界面的程序是什么?
  • jbuilder下写的javabean与jsp程序正常运行,如何转到weblogic或其他的服务器上运行???
  • 运行程序后程序报错说操作不允许
  • ubuntu下用gcc编译的程序要怎样运行,为何运行不了?
  • 关闭putty(SSH程序)后如何让程序还在redhat上运行?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3