小于50个mdi子窗口,每个自窗口可能重名,可能不重名,把不重名的提到一个string数组,如下:
//找第一个自窗口
nMax:=-1;
for i:=0 to 50 do
begin
if (WatchChild[i]<>nil) then
begin
sDif[0]:=WatchChild[i].Caption;
nMax:=0;
break;
end;
end;
if nMax<0 then
exit;
//把不同名的放到sDif数组
for i:=0 to 50 do
begin
if WatchChild[i]<>nil then
begin
//下面错了!!!!!!!
if not (WatchChild[i].Caption in [sDif[0]..sDif[50]]) then
begin
nMax := nMax + 1;
sDif[nMax]:= WatchChild[i].Caption;
end;
end;
end;
我该怎么解决。WatchChild[i].Caption 是中文的,有其他方法吗?
//找第一个自窗口
nMax:=-1;
for i:=0 to 50 do
begin
if (WatchChild[i]<>nil) then
begin
sDif[0]:=WatchChild[i].Caption;
nMax:=0;
break;
end;
end;
if nMax<0 then
exit;
//把不同名的放到sDif数组
for i:=0 to 50 do
begin
if WatchChild[i]<>nil then
begin
//下面错了!!!!!!!
if not (WatchChild[i].Caption in [sDif[0]..sDif[50]]) then
begin
nMax := nMax + 1;
sDif[nMax]:= WatchChild[i].Caption;
end;
end;
end;
我该怎么解决。WatchChild[i].Caption 是中文的,有其他方法吗?
找到就Add進去!然後, 你的想找重復的, 就
indexOf 就可解決你的
>>我该怎么解决。WatchChild[i].Caption 是中文的,有其他方法吗?
for i:=0 to 50 do
begin
if WatchChild[i]<>nil then
begin
for j:=0 to nMax do
if WatchChild[i].Caption=sDif[j] then
begin
has:=true;
break;
end;
if not has then
begin
nMax := nMax + 1;
sDif[nMax]:= WatchChild[i].Caption;
end;
end;
end;
end;