添加字段和删除字段的问题(100分)

  • 主题发起人 主题发起人 fstao
  • 开始时间 开始时间
F

fstao

Unregistered / Unconfirmed
GUEST, unregistred user!
delph的问题:
假如a.db,其字段和数据为:
a.db
field0 field1 field2 field3
0 a0 b0 c0
1 a1 b1 c1
在form1添加控件Table1,用鼠标双击table1,然后点击右键,选择add all fields。然后在
dbgrid1显示数据:
field0 field1 field2 field3
0 a0 b0 c0
1 a1 b1 c1
我想利用编程的方法,把表a.db的全部字段在form1的ListBox1显示,在Edit1显示DisplyLabel,例如
在ListBox1显示
field0
field1
field2
field3
如果光标在field0时,则Edit1显示field0,这样可以在Edit1里的field0改为其它,例如是改为No。
我想在form1添加Button1和button2,Button1的作用是Add Fields,Button2的作用是Remove Fields。
如果光标指向field3时,按button2时,则把field3删除,则form1的listbox1显示:
field0
field1
field2
那么Dbgrid1显示:
field0 field1 field2
0 a0 b0
1 a1 b1
如果是按form1的button1时,则运行另一个Form2,form2的ListBox1显示:
field3
在form2里添加Button1,其作用是把form2的listbox1的字段添加到form1的listbox1里去。例如把
form2的ListBox1显示的field3添加到form1的listbox1,则form1的listbox1显示:
field0
field1
field2
field3
那么DBgrid1显示:
field0 field1 field2 field3
0 a0 b0 c0
1 a1 b1 c1
我想请教大家,如何实现?不过大家有没有用过Infopower的wwDBgrid1,如果双击wwDBGrid1或它的属性
ControlType,就会弹一个Title为Select Fields窗口。我上面所提到的功能就是类似于这个
Form(Title为Select Fields窗口),虽然我也看了它Source,但还是看不明白,还想请教大家。
 
如:
listbox1.items.clear;
table1.getfieldnames(listbox1.items);
其他功能的你可自行慢慢加入

 
不想物理删除吧.
补充一句
与grid中的column关联一下,动态生成和删除所要的column就行了,没有什么难度吧.
 
呵呵, 太简单了:-)
要sample来mail: cytown@990.net
 
我还有两个问题:
1、如果我用的是infopower的TwwDbgrid,数据显示为:
field0 field1 field2 field3
0 a0 b0 c0
1 a1 b1 c1
如果我要把field3和Field2隐藏,则为:
field0 field1
0 a0
1 a1
那该如何作呢?
2、假如有一table1,数据如下:
table1
no name
1 a
2 b
用Dbgrid1显示数据,如何实现:
当table1.append时,在Dbgrid1的No下填入3,然后按回车键或方向键的<-和->使光标跳到
Name?我以前时按Tab键可以使光标跳到name,现在想改成回车键或方向键来实现,请问如何实现?不要用infopower的wwdbgrid组件。
 
1、
TwwDbgrid.columes[2].visible:=false;
TwwDbgrid.columes[3].visible:=false;
2、
table1.append;
table1.fieldbyname('no').AsString:='3';
至于用回车键代替TAB键的方法,可查阅以前回答过的问题
 
小天,你回答第一个问题是错的,我以前试过的了。谁能帮我解决两个问题?
 
RxDBGrid1.Columns.Items[2].Visible := false;
RxDBGrid1.Columns.Items[3].Visible := false;
我没有TwwDbgrid,但在RxDBGrid上这么做是可以的。
 
第二个问题:
procedure TForm1.RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if(integer(Key) = VK_RETURN) then
begin
Key := chr(0);
if(RxDBGrid1.Col < RxDBGrid1.Columns.Count - 1) then
RxDBGrid1.Col := RxDBGrid1.Col + 1;
end;
end;
 
那再试试
Table1.fieldbyname('filed2').visible:=false;
Table1.fieldbyname('filed3').visible:=false;
再不行的话,再来个绝的:
TwwDbgrid.columes[2].width:=0;
TwwDbgrid.columes[3].width:=0;


 
我倒!!$%%^$&amp;%** field也能visible????!!!!
小天............
dreamtiger的回答应该是对的. 关于return变tab的问题, 以前提过若干次了.
 
VK_RETURN->VK_TAB:
procedure TForm1.RxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if(integer(Key) = VK_RETURN) then Key = chr(VK_TAB);
end;
 
多人接受答案了。
 
后退
顶部