delphi中的循环语句的使用(100分)

  • 主题发起人 主题发起人 renzhongguo
  • 开始时间 开始时间
R

renzhongguo

Unregistered / Unconfirmed
GUEST, unregistred user!
请问vb中的for each .. in.. next语句在delphi中如何实现
 
先声明一个集合变量
用条件语句配合循环语句
你看行吗
 
能不能讲的详细一点,给个例子最好啦。
 
vb:
dim Layer1 as Layer
dim Layers1 as Layers
for each Layer1 in Layers1
Layer1...
...
next
delphi:
for i:=Layers1.count downto 1 do
begin
if Layer1=Layers.Item(i) then ...
end;
其中Layers 是 Layer的集。这是一个GIS寻找图层的例子。
 
procedure TForm1.Button10Click(Sender: TObject);
var
TmpFtr:Feature;
TmpFtrs:Features;
i:Integer;
j:integer;
begin
For i := 1 To Map1.Layers.Count do
begin
TmpFtrs := Map1.Layers.Search('单位名称 like '+'"%'+Trim(TxtFtrName.Text)+'%"','');
for j:=tmpftrs.count downto 1 do
begin
if tmpftr=tmpftrs.Item[j] then
begin
........
end;
end;
end;
end;
上面的语句有什么问题吗,为什么tmpftr总是nil值。
 
多了两个end
procedure TForm1.Button10Click(Sender: TObject);
var
TmpFtr:Feature;
TmpFtrs:Features;
i:Integer;
j:integer;
begin
For i := 1 To Map1.Layers.Count do
begin
TmpFtrs := Map1.Layers.Search('单位名称 like '+'"%'+Trim(TxtFtrName.Text)+'%"','');
end;
for j:=tmpftrs.count downto 1 do
begin
if tmpftr=tmpftrs.Item[j] then
begin
........
end;
end;
end;
 
本身循环语句没问题。
如果tmpftrs总是nil值的话是你的 TmpFtrs := Map1.Layers.Search('单位名称 like '+'"%'+Trim(TxtFtrName.Text)+'%"','');搜寻条件不对或图层根本没这个字段内容的问题。
 
后退
顶部