大家好,新手问题。请多帮忙 我现在想把dbgrid其中的某个字段实现下拉,下拉的值是另外一个表中的字段的值,就是说我现在的dbgrid连的是数据源a,而下拉的值是要连数据源b,该怎么做呢,还请大家多多指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自定义一个TstringList 将你的字段值存入到TStringList中,再将表格的你要的那一列的 picklist属性设为 TStringList 也可以使用advstringgrid来实现 unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Grids, BaseGrid, AdvGrid, StdCtrls;typeTForm1 = class(TForm)AdvStringGrid1: TAdvStringGrid;Button1: TButton;procedure AdvStringGrid1GetEditorType(Sender: TObject; ACol,ARow: Integer; var AEditor: TEditorType);procedure FormCreate(Sender: TObject);procedure FormClose(Sender: TObject; var Action: TCloseAction);procedure Button1Click(Sender: TObject);private{ Private declarations }FCbo1,FCbo2:TStringList;public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject; ACol,ARow: Integer; var AEditor: TEditorType);varI:Integer;beginwith advstringgrid1 docase acol of1:beginaEditor:=edComboList;ClearComboString;combobox.items.Assign( FCbo1 );end;2:beginaEditor:=edComboList;ClearComboString;combobox.items.Assign( FCbo2 );end;end;end;procedure TForm1.FormCreate(Sender: TObject);beginFCbo1:=TStringList.Create;FCbo2:=TStringList.Create;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginFCbo1.Free;FCbo2.Free;end;procedure TForm1.Button1Click(Sender: TObject);begin//控制item内容FCbo1.Add( '1' );FCbo1.Add( '2' );//控制item内容FCbo2.Add( '10' );FCbo2.Add( '20' );end;end.///你可以通过修改Button1Click内的实现来修改你的combobox内容 奥运...台湾(爱国的请进) 初学者求助...... 小弟编写了一个实时传送信息软件。遇到一个小问题。请高手解答。--附服务端源代码 请问哪里有做向delphi的源代码编辑器的例子? 急!急!谁能帮助我找到这个文件 请各位高手帮忙!!! 怎么控制MessageDlg窗口! 在MDI窗体下,两个normal窗体的关闭问题(初学) 怎么修改记录中某个字段的值? delphi中替换字符的函数是什么? 关于判断未相应程序的解决办法 关于ord函数,将字母转成ASCII为什么通不过,错在何处?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, BaseGrid, AdvGrid, StdCtrls;type
TForm1 = class(TForm)
AdvStringGrid1: TAdvStringGrid;
Button1: TButton;
procedure AdvStringGrid1GetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FCbo1,FCbo2:TStringList;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
var
I:Integer;
begin
with advstringgrid1 do
case acol of
1:begin
aEditor:=edComboList;
ClearComboString;
combobox.items.Assign( FCbo1 );
end;
2:begin
aEditor:=edComboList;
ClearComboString;
combobox.items.Assign( FCbo2 );
end;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FCbo1:=TStringList.Create;
FCbo2:=TStringList.Create;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FCbo1.Free;
FCbo2.Free;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
//控制item内容
FCbo1.Add( '1' );
FCbo1.Add( '2' );
//控制item内容
FCbo2.Add( '10' );
FCbo2.Add( '20' );
end;end.///你可以通过修改Button1Click内的实现来修改你的combobox内容