怎么把列表框中的项移到另一个列表框中?

liyanchun 2002-11-04 09:21:54
我有两个列表框,想实现这样的功能,如果选中几项就通过一个按钮把它移动到另一个列表框中,还有一个按钮能实现全部移动的功能。另外,再把这些选中的项插入到库里。谢谢!一解决,马上给分!
...全文
338 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
scong 2002-11-06
  • 打赏
  • 举报
回复
你可以在把L1中的项添加到L2中时做个循环比较嘛!
发现你编程怎么不自己也思考一下呢?随便说说的
liyanchun 2002-11-06
  • 打赏
  • 举报
回复
还有当listbox1中已有和listbox2中相同的项时,listbox2中项就不能添加到listbox1中,这个应该怎么实现呢?
dyf2001 2002-11-04
  • 打赏
  • 举报
回复
以上实现了,写数据库不是很简单么
jiaclassmate 2002-11-04
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ListBox1.Items.Count - 1 do
begin
if ListBox1.Selected[I] then
ListBox2.Items.Add(ListBox1.Items[I]);
end;
With Query1 do
beign
Sql.Clear;
Sql.Add(format('insert into tablename (aa) values (''%s'')',[ListBox1.Items[i]]));
end;
ListBox1.DeleteSelected;
end;

wanderung 2002-11-04
  • 打赏
  • 举报
回复
倒~~

这位可够得寸进尺的
liyanchun 2002-11-04
  • 打赏
  • 举报
回复
谢谢你,mf78Boy!
楼上的各位朋友:我怎样实现移动的同时,再把这些项再写到对应的数据库中呢?
mf78Boy 2002-11-04
  • 打赏
  • 举报
回复
在OnSelectOneItem()中可以触发Ctrl连选,不行就OnKeyPress().
liyanchun 2002-11-04
  • 打赏
  • 举报
回复
谢谢楼上几位:
我怎么样实现按住Shift键进行连选呢?
vonafter 2002-11-04
  • 打赏
  • 举报
回复
采取一种折中的方法,一个列表框里删除,一个添加

procedure Tfrmcjpz.move(lb1,lb2:tlistbox);
var icount:integer;
begin
icount := lb1.ItemIndex;
if icount>=0 then
begin
lb2.Items.Append(lb1.Items.Strings[icount]);
lb1.Items.Delete(icount);
end;
if lb1.Items.Count>0 then
lb1.ItemIndex := icount;
if listbox4.Count>0 then btnprior.Enabled := false
else btnprior.Enabled := true;
end;
windofsun 2002-11-04
  • 打赏
  • 举报
回复
// for Delphi 7

// 移动被选中项
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ListBox1.Items.Count - 1 do
begin
if ListBox1.Selected[I] then
ListBox2.Items.Add(ListBox1.Items[I]);
end;
ListBox1.DeleteSelected;
end;

// 移动所有项
procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox2.Items.Text := ListBox2.Items.Text + ListBox1.Items.Text;
ListBox1.Items.Clear;
end;
Snakeguo 2002-11-04
  • 打赏
  • 举报
回复
先用Add或Insert将选中的项加入新列表;
再用Delete从旧列表删除;
如果是多项的话就用循环.
ksaiy 2002-11-04
  • 打赏
  • 举报
回复
我还以为是直接拖动呢!先取你选定了哪几项,在第二个列表框中增加,然后把第一个列表框中的删除就行了
winsock2000 2002-11-04
  • 打赏
  • 举报
回复
双击query后,add fields看看能不能解决!
liyanchun 2002-11-04
  • 打赏
  • 举报
回复
to jiaclassmate(jia):
运行时出现List index out of bounds(17)这样的错误。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧