Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизДобавление-удаление фреймов Найти похожие ветки
← →
Катерина (2002-04-15 11:03) [0]Удивительное дело: создаю фреймы, затем по нажитию определенной кнопки добавляю один из них список компонент. По окончании работы, удаляю из компонентов:
var
Form1: TForm1;
theFrame1 : TFrame1;
theFrame2 : TFrame2;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
ShowMessage(IntToStr(ComponentCount));
theFrame1 := TFrame1.Create(Owner);
theFrame2 := TFrame2.Create(Owner);
ShowMessage(IntToStr(ComponentCount));
end;
procedure CloseAll;
var aComp : TComponent;
begin with Form1 do
begin
ShowMessage(IntToStr(ComponentCount));
aComp := FindComponent("Frame1");
if aComp <> NIL then RemoveComponent(aComp);
aComp := FindComponent("Frame2");
if aComp <> NIL then RemoveComponent(aComp);
Update;
ShowMessage(IntToStr(ComponentCount));
end;
procedure Browse1;
begin with Form1 do
begin
CloseAll;
theFrame1.Parent := Self;
theFrame1.Top := 20;
theFrame1.Left := 8;
theFrame1.Width := 841;
theFrame1.Height := 558;
theFrame1.Visible := TRUE;
InsertComponent(theFrame1);
end;
end;
procedure Browse2;
begin with Form1 do
begin
CloseAll;
theFrame2.Parent := aSelf;
theFrame2.Top := 20;
theFrame2.Left := 8;
theFrame2.Width := 841;
theFrame2.Height := 558;
theFrame2.Visible := TRUE;
InsertComponent(theFrame2);
end;
end;
Отладочная печать честно фиксирует кол-во компонентов формы. Но фрейм после удаления остается на форме. Что делать? Заранее спасибо.
← →
Игорь Шевченко (2002-04-15 11:15) [1]День добрый,
У меня такой ощущение, что Frames создаются с Owner = Owner самой формы, так что FindComponent у формы сработать не должен...
То есть, Owner у Frame либо Application, либо кто-то еще, а
Parent - сама форма...
Оно так задумано ?
Может, имелось с виду:
procedure TForm1.FormShow(Sender: TObject);
begin
ShowMessage(IntToStr(ComponentCount));
theFrame1 := TFrame1.Create(Self);
theFrame2 := TFrame2.Create(Self);
ShowMessage(IntToStr(ComponentCount));
end;
?
С уважением,
← →
Катерина (2002-04-15 11:44) [2]Да нет, FindComponenet находит и RemoveComponent удаляет, очем свидетельствует ComponentCount, а дальше не понятно. Сделала, как Вы подсказали - тот же результат.
← →
Игорь Шевченко (2002-04-15 12:21) [3]День добрый,
Глупый вопрос: а зачем так сложно делать? Вы создаете 2 frame, а потом по каким-то условиям вы их либо добавляете в форму, либо удаляете?
Чего в результате этих дествий вы хотите добиться? :-)
С уважением,
← →
Игорь Шевченко (2002-04-15 12:24) [4]День добрый,
А просто Owner"а (и Parent"a) у Frame менять не подходит?
Кстати, там, где вы удаляете Frame из формы, не видно, что присходит с Parent этого Frame...
С уважением,
← →
Катерина (2002-04-15 13:44) [5]Да, действительно, это сложновато. Загрузила все фреймы сразу и по очереди их визуализирую.
← →
Игорь Шевченко (2002-04-15 14:23) [6]День добрый,
Вообще-то визуализация определяется свойством Visible.
Не проще ли будет это свойство использовать? :-)
С уважением,
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c