Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Удаление динамического компонента   Найти похожие ветки 

 
Nad89 ©   (2005-06-09 13:27) [0]

Сразу извиняюсь, если этот вопрос обсуждался 100 раз и т.п... Но объясните мне почему вот это не работает:

var i:integer;
begin
for i:=0 to ComponentCount-1 do
if (Components[i] is TTabSheet) and ((Components[i] as TTabSheet).Caption = "TabSheet1") then
(Components[i] as TTabSheet).Free;


 
Ega23 ©   (2005-06-09 13:29) [1]

Почему не работает???


 
-=XP=- ©   (2005-06-09 13:31) [2]

for i:= ComponentCount-1 downto 0 do


 
Nad89 ©   (2005-06-09 13:31) [3]

Говорит :
List index out of bounds (32)...


 
Nad89 ©   (2005-06-09 13:32) [4]

-=XP=-, Спасибо ! :)


 
Ega23 ©   (2005-06-09 13:34) [5]

while надо использовать в таких случаях.


 
VMcL ©   (2005-06-09 13:40) [6]

>>Ega23 ©   (09.06.05 13:34) [5]

Необязательно. Можно и [2].


 
Ega23 ©   (2005-06-09 13:43) [7]

Можно и так, конечно.
Дело привычки. Я к while привык...


 
Anatoly Podgoretsky ©   (2005-06-09 13:50) [8]

Это работает но только с ошибкой - если найдет, количество элементов списка уменьшится, а количество циклов нет. В [2] указали правильное использование цикла. Только здесь и цикл лишний.


 
-=XP=- ©   (2005-06-09 13:57) [9]

Только здесь и цикл лишний.

Ну как же лишний?

function TComponent.FindComponent(const AName: string): TComponent;
var
 I: Integer;
begin
 if (AName <> "") and (FComponents <> nil) then
   for I := 0 to FComponents.Count - 1 do
   begin
     Result := FComponents[I];
     if SameText(Result.FName, AName) then Exit;
   end;
 Result := nil;
end;


:о)


 
-=XP=- ©   (2005-06-09 13:59) [10]

Да и пользователи программы будут благодарны:

((Components[i] as TTabSheet).Caption = "TabSheet1")

Вряд ли придумаешь более интуитивно понятное название для закладки.

:)



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
3-1116215612
Андрей1
2005-05-16 07:53
2005.06.29
Каскадное обновление


1-1118219077
В л а д и м и р
2005-06-08 12:24
2005.06.29
Перевод курсора в конец текста


1-1118288871
TUser
2005-06-09 07:47
2005.06.29
Глюк консольного компилятора?


6-1112087491
Sapsi
2005-03-29 13:11
2005.06.29
найти все компьютеры в сети


14-1117347749
NikNet
2005-05-29 10:22
2005.06.29
Делаю Joiner вот проблемма вытащить код из программы