控件listbox,该怎么解决
控件listbox
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
cbb1: TComboBoxEx;
lst1: TListBox;
btn1: TButton;
procedure FormCreate(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure cbb1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses Unit2 ;
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer ;
begin
with DataModule2 do
begin
qry1.Close ;
qry1.SQL.Clear;
qry1.SQL.Add('select * from 信息表');
qry1.Open;
end;
begin
for i:=0to(DataModule2.qry1.FieldCount-1)do
cbb1.Items.Add(DataModule2.qry1.Fields[i].FieldName);
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.cbb1Change(Sender: TObject);
begin
lst1.Items.Add(cbb1.Text);
cbb1.Items.Delete(cbb1.ItemIndex);
end;
end.
运行没问题点击cbb1下拉菜单时 提示见图,将cbb1.Items.Delete(cbb1.ItemIndex);删除后点击cbb1下拉列表框中内容在lst1中显示每个字段的两条,上图
------解决方案--------------------
------解决方案--------------------
越界了,找出那个就行
------解决方案--------------------
delete用downto
------解决方案--------------------
越界。。虽然我不知道为什么。。
------解决方案--------------------
最简单的方法就是:
把你的下拉框由TComboboxEx改为普通的下拉框TCombobox就可以了,代码不用变
TComboboxEx的Items属性并不是一个TStrings类,而是TComboBoxExStrings类
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
cbb1: TComboBoxEx;
lst1: TListBox;
btn1: TButton;
procedure FormCreate(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure cbb1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses Unit2 ;
procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer ;
begin
with DataModule2 do
begin
qry1.Close ;
qry1.SQL.Clear;
qry1.SQL.Add('select * from 信息表');
qry1.Open;
end;
begin
for i:=0to(DataModule2.qry1.FieldCount-1)do
cbb1.Items.Add(DataModule2.qry1.Fields[i].FieldName);
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.cbb1Change(Sender: TObject);
begin
lst1.Items.Add(cbb1.Text);
cbb1.Items.Delete(cbb1.ItemIndex);
end;
end.
运行没问题点击cbb1下拉菜单时 提示见图,将cbb1.Items.Delete(cbb1.ItemIndex);删除后点击cbb1下拉列表框中内容在lst1中显示每个字段的两条,上图
------解决方案--------------------
procedure TForm1.cbb1Change(Sender: TObject);
begin
lst1.Items.Add(cbb1.Text);
if cbb1.ItemIndex > -1 then
cbb1.Items.Delete(cbb1.ItemIndex);
end;
------解决方案--------------------
越界了,找出那个就行
------解决方案--------------------
delete用downto
------解决方案--------------------
越界。。虽然我不知道为什么。。
------解决方案--------------------
最简单的方法就是:
把你的下拉框由TComboboxEx改为普通的下拉框TCombobox就可以了,代码不用变
TComboboxEx的Items属性并不是一个TStrings类,而是TComboBoxExStrings类