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

Вниз

Добавление-удаление фреймов   Найти похожие ветки 

 
Катерина   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
3-94341
Alex Y
2002-04-10 04:35
2002.04.29
SQL запрос


3-94323
vopros
2002-04-09 13:16
2002.04.29
Срочно. Как в DbgridEH, сделать чтобы формат представления числа


1-94398
inko
2002-04-17 18:30
2002.04.29
Выполнение приложения в командной строке...


4-94615
Nigth
2002-02-21 00:24
2002.04.29
Win API


4-94642
Tosov
2002-02-27 02:08
2002.04.29
Запись 64битного числа в реестр