急急急急急急,求助数据复制的方法 ( 积分: 10 )

  • 主题发起人 主题发起人 zpselect
  • 开始时间 开始时间
Z

zpselect

Unregistered / Unconfirmed
GUEST, unregistred user!
现有我要将一笔记录复制起来,然后粘贴到Edit中
记录如下(举例,其实有二十多个字段):
id name sex adrrees
001 tom 男 fffff
002 kine 女 ggggg
003 priy 男 hhhhh
将选中数据集第2笔记录时,将其复制到 Edit中
Edit1.text:=kine,
edit2.text:=男.
edit3:=002
edit4:=gggg
注意:Edit的值的顺序和数据字段的顺序不一样,现在这是这个问题,没法确认Edit与
字段对应的值
 
可用tedit的tag属性
for i:=0 to Form1.ComponentCount-1
if (Components.ClassName='TEdit') and (TEdit(Components).Tag=i)
TEdit(Components).Text:=Fields.AsString;
 
谢谢,领悟出来了!
 
Edit1.text:=DataSet.fieldbyname('name').asstring;
edit2.text:=DataSet.fieldbyname('sex').asstring;
edit3:=DataSet.fieldbyname('id').asstring;
edit4:=DataSet.fieldbyname('adrrees').asstring;
 
再问一个问题,现在我想将32个省份用集合表示,然后再将集合中的所有值加到Combobox中
如:广东省,湖南省,渐江省,上海市等等,
我用枚举定义的话,出错,不能有字符
type
aa=('广东省','湖南省','渐江省','上海市');
这样做不行的!
 
枚举不能用中文
 
有什么方法可以实现这样的功能?
 
如果你非要用枚举的话,这样做
type
Tsf=(s01,s02...,s32);
var
a:TSf;
case a of
s01:Result:='广东省';
.
.
.
s32:Result:='XX省';
end;
 
TO:清新空气,
谢谢你的回复,我现在将我的实意表达出来,
原本我打算利用集合的方式将32个省份表示出来,然后循环所集合每一个值将其加载到
ComboBox中或都DBGrid中,经测试语法通不过,现在我用文本格式的将三十个省份保存起来,但是有二个问题(以前没有用过读取TXT文件),想请教于'清新空气':
文本文件的名称为:Test.txt 内容为下:
代码 名称
01 广东省
02 湖南省
03 渐江省
.... ....
要求如下:
1:在Combobox中只显示 省份名称
2:在DBGrid中显示代码和名称
请问如何做?
procedure TForm1.Button1Click(Sender: TObject);
var
strList: tstringList; i: Integer;
begin
strList := tstringList.create;
strList.Loadfromfile('C:/Documents and Settings/Administrator/桌面/test.txt');
for i := 0 to strList.Count - 1 do
Combobox1.Items.Add(strList.strings);
strList.free;
end;
 
你的省份以后想在外部修改?
本人觉得没必要用文件保存起来;建议:
可以做个函数如下:
procedure SetComboList(ACombobox:TCombobox);
var
StrList:TStringList;
begin
StrList:=TStringList.Create;
try
StrList.add('xx省');
.....
ACombobox.Items.Assign(StrList);
finally
StrList.Free;
end;
end;
想显示代码的话就用
function GetRocordStr(Aindex:Integer):String;
var
Astr,ResultStr:String;
begin
Astr:='0'+IntTostr(AIndex+1);
ResultStr:=Copy(Astr,length(Astr-2),2);
Result:=ResultStr;
end;
取得代码的时候就直接用GetRocordStr(Combobox1.ItemIndex);
随手写的;
 
procedure SetComboList(ACombobox:TCombobox);
var
StrList:TStringList;
begin
StrList:=TStringList.Create;
try
StrList.add('xx省');
.....
ACombobox.Items.Assign(StrList);
finally
StrList.Free;
end;
end;
StrList.add('xx省');
这个地方不是要加32次?
如果那样子的话,我就没有必要问什么了,
我直接静态加到Combobox中不就可以了!
 
我现将TXT文件的内容改变这样:
01 -- 广东省
02 -- 湖南省
03 --上海市
我想用符号:'--'做为分隔符,即以此作为换行符,加到List中,
如果这样能实现的话,那以后就好办了!
 
我已经做出来了!
 
要不要分隔符都无所谓,只是个形式;主要是根据自己的需要来做;
 
我不知道你要这个代码干什么用,如果你想存储的话,用xml也行,不用解析(判断字符串);
 
TO:清新空气,
省份列表
01--北京
02--上海



职称表
01--作业员
02 资讯部
03--业务员
04--财务员
05--其它职业

学历
01--文盲
02--小学
03--初中
04--中专
05--高中
06--大专
07--本科
08--研究生
09--搏斗
10其它

市场职位
0--无
1--跟单员
2--业务员
3--营销经理
4--开发副总

性别
0--男
1--女

政治面貌
0--无
1--团员
2--党员


民族列表
01--汉族
02--回族
03--藏族
04--壮族
05--瑶族
06--彝族
07--阿昌族
08--白族
09--布依族
10--傣族
11--侗族
12--土家族
13--独龙族
14--仡佬族
15--哈尼族
16--基诺族
17--景颇族
18--拉祜族
19--黎族
20--傈僳族
21--珞巴族
22--毛南族
23--门巴族
24--苗族
25--仫佬族
26--纳西族
27--怒族
28--普米族
29--羌族
30--畲族
31--水族
32--维吾尔族
33--哈萨克族
34--塔塔尔族
35--满族
36--蒙古族
37--土族
38--东乡族
39--撒拉族
40--保安族
41--鄂伦春族
42--鄂温克族
43--达斡尔族
44--赫哲族
45--乌兹别克族
46--柯尔克孜族
47--锡伯族
48--裕固族
49--朝鲜族
50--布朗族
51--德昂族
52--佤族
53--塔吉克族
54--俄罗斯族
55--高山族
56--京族
这是一个TXT文件,我的意思是根据要求将其中一的内容显示出来
如:
政治面貌
0--无
1--团员
2--党员

将1和团员分开加载到ComboBox中,我已经实现!
但是我要这么做:
如:我想将‘职称表’
01--作业员
02 资讯部
03--业务员
04--财务员
05--其它职业
中的内容加到Combobox中其它的内容都不要!这也就相当是一张混合表啊!
我写了一段代码,但是还达不到我想要的功能!望改之!

procedure TForm1.Button1Click(Sender: TObject);
var s, s2: string;
var
strList: tstringList; i: Integer;
begin
strList := tstringList.create;
strList.Loadfromfile('C:/Documents and Settings/Administrator/桌面/test.txt');
for i := 0 to strList.Count - 1 do
begin
S := trim(strList.strings);
if (S = '职称表') then
S := strList.strings[i + 1]
else trim(strList.strings);
Combobox1.Items.Add(copy(S, pos('--', S) + 2, Length(S)));
if S = '学历' then
begin
StrList.Free;
Exit;
end;
end;
strList.Free;
end;
 
后退
顶部