unit Udblistbox;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ExtCtrls, DBCtrls, DBTables;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
DBNavigator1: TDBNavigator;
Table1CustNo: TFloatField;
Table1Company: TStringField;
Table1Country: TStringField;
DBListBox1: TDBListBox;
Label1: TLabel;
// procedure Button1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
// procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
//Rect: TRect; State: TOwnerDrawState);
//procedure ListBox1DblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBListBox1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{procedure TForm1.Button1Click(Sender: TObject);
begin
dbgrid1.UpdateAction()
end;}
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
//listbox1.Visible:=true;
end;
{procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
i: Integer; //定义循环变量
begin
for i:=0 to(listBox1.Items.Count-1) do //通过循环对选中的Item进行定位
begin
if listBox1.Selected[i] then //定位后,开始修改
begin
Table1.Edit; //使数据库表处于编辑状态,便于修改
Table1.FieldByName('Country').AsString:=listbox1.Items.Strings[i];
//将在ListBox中选中的内容赋给当前记录的Country字段
Table1.Post; //把修改后的变化存入数据库表
end;
end;
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
i: Integer; //定义循环变量
begin
for i:=0 to(listBox1.Items.Count-1) do //通过循环对选中的Item进行定位
begin
if listBox1.Selected[i] then //定位后,开始修改
begin
Table1.Edit; //使数据库表处于编辑状态,便于修改
Table1.FieldByName('Country').AsString:=listbox1.Items.Strings[i];
//将在ListBox中选中的内容赋给当前记录的Country字段
Table1.Post; //把修改后的变化存入数据库表
end;
end;
end; }
procedure TForm1.FormShow(Sender: TObject);
begin
dblistbox1.Items.Clear;
table1.First;
while not table1.Eof do
begin
dblistbox1.Items.Add(table1.Fields[1].Value);
table1.Next;
end;
end;
procedure TForm1.DBListBox1DblClick(Sender: TObject);
var
i: Integer; //定义循环变量
begin
for i:=0 to(dblistBox1.Items.Count-1) do //通过循环对选中的Item进行定位
begin
if dblistBox1.Selected[i] then //定位后,开始修改
begin
Table1.Edit; //使数据库表处于编辑状态,便于修改
Table1.FieldByName('company').AsString:=dblistbox1.Items.Strings[i];
//将在DBListBox中选中的内容赋给当前记录的company字段
Table1.Post; //把修改后的变化存入数据库表
end;
end;
end;
end.
使用TDBListBox组件
最新推荐文章于 2025-07-19 15:30:35 发布
本文介绍了一个使用 Delphi 实现的简单示例,展示了如何利用 DBListBox 控件与数据库交互,包括显示数据、双击事件处理及数据更新等功能。
2150

被折叠的 条评论
为什么被折叠?



