如下:const
qustring:='datamodule1.query1.fieldbyname('ab').asstring';
我想在stringlist里添加上面那个常量,实际是要添加'ab'字段的值。
即 strlst.add(qustring)添加的是字段'ab'的值。
qustring:='datamodule1.query1.fieldbyname('ab').asstring';
我想在stringlist里添加上面那个常量,实际是要添加'ab'字段的值。
即 strlst.add(qustring)添加的是字段'ab'的值。
var
strlst,strlstfield:Tstringlist;
i,j:integer;
tempqueryfields:string;
begin
strlst:=tstringlist.Create;
strlstfield:=tstringlist.Create;
strlst.Add(stringreplace(selectedfields,',',' ',[rfReplaceAll]));
strlstfield.Add(selectedfields);
strlstfield.Delimiter:=',';
strlstfield.DelimitedText:=selectedfields;
for i:=0 to strlstfield.Count-1 do
begin
tempqueryfields:=tempqueryfields+datamodule1.ADOQuerydata.fieldbyname(strlstfield.Strings[i]).AsString+#9;
end;
for j:=0 to datamodule1.ADOQuerydata.RecordCount-1 do
begin
strlst.Add(tempqueryfields);
datamodule1.ADOQuerydata.Next;
end;
我想让这个tempqueryfields变量在上一个循环取到值后再到下一个循环里作为变量再次添加到strlst里。
procedure TFormMain.BitBtn2Click(Sender: TObject);
var
strlst,strlstfield:Tstringlist;
i,j:integer;
{$J+}
const
tempqueryfields: string = '';
{$J-}
begin
....
end;///////
这样你给了这个值后,在下次用回这个常量时就是上一次操作的值了..
///////////////////////
或者用全局的变量也行啊...
var
strlst,strlstfield:Tstringlist;
i,j:integer;
tempqueryfields:string;
begin
strlst:=tstringlist.Create;
strlstfield:=tstringlist.Create;
strlst.Add(stringreplace(selectedfields,',',' ',[rfReplaceAll]));
strlstfield.Add(selectedfields);
strlstfield.Delimiter:=',';
strlstfield.DelimitedText:=selectedfields;
for i:=0 to strlstfield.Count-1 do
begin
tempqueryfields:=tempqueryfields+'datamodule1.ADOQuerydata.fieldbyname('''+strlstfield.Strings[i]+''').AsString'+#9;
end;
for j:=0 to datamodule1.ADOQuerydata.RecordCount-1 do
begin
strlst.Add(tempqueryfields);
datamodule1.ADOQuerydata.Next;
end;
但是我上面那样出来的结果则是:strlst.add('datamodule1.ADOQuerydata.fieldbyname(strlstfield.Strings[‘fieldname’]).AsString');
它把这一句当一个字符串了。