Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизУдаление динамического компонента Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c