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

Вниз

Как програмно удалить с формы лаблы, кнопки и т.д. ?   Найти похожие ветки 

 
Masa ©   (2002-12-26 14:02) [0]

?


 
Song ©   (2002-12-26 14:07) [1]

Со своей проги или чужой?


 
Dona ©   (2002-12-26 14:08) [2]

Destructor
Object.Free;



 
DOOMin   (2002-12-26 14:11) [3]

А не проще их скрыть? Просто visible=false


 
Masa ©   (2002-12-26 14:14) [4]

Song ©
со своей.
На пример я создаю во время исполнения 10 лаблов, после закрытия формы их надо удалить.


 
Dona ©   (2002-12-26 14:16) [5]

>На пример я создаю во время исполнения 10 лаблов, после закрытия формы их надо удалить.

Скорее перед закрытием


 
Lady D ©   (2002-12-26 14:16) [6]

Они сами удалятся вместе с формой. А вообще FreeAndNil(...);


 
Song ©   (2002-12-26 14:17) [7]

Если они были созданы в design-time, они удалятся сами. Если были созданы в run-time то смотря как были созданы.


 
Masa ©   (2002-12-26 14:22) [8]

Вот так создаються.

procedure TfrmAdd.Execute(btnSet : TheMenu; num : integer);
var
b : array[1..4] of TButton;
i : integer;
begin
for i := 1 to 4 do
begin
b[i] := TButton.Create(self);
b[i].Parent := Self;
b[i].Width := Panel1.Width - 10;
b[i].Height := 25;
b[i].Left := 5;
b[i].Top := i * 25;
b[i].Caption := btnSet[num][i].caption;
b[i].onClick := ButtonClick;
b[i].Tag := StrToInt(IntToStr(num)+IntToStr(i));
if (btnSet[num][i].caption = "") then b[i].Visible := False;
end;
ShowModal;
end;


 
Masa ©   (2002-12-26 14:27) [9]

это кнопки создаються.
лаблы так же.


 
TTCustomDelphiMaster ©   (2002-12-26 14:27) [10]

Они удалятся вместе с формой сами. Но если очень надо, то b[i].Free;


 
Pat ©   (2002-12-26 16:22) [11]

b[i] := TButton.Create(application);
И можно не удалять самому...
З.Ы. Сейчас начнутся разговоры про стиль программирования :-))


 
Masa ©   (2002-12-26 17:05) [12]

Нужно удалить с модальной формы.


 
Masa ©   (2002-12-26 17:10) [13]

Как узнать сколько кнопок на форме всего ?


 
Dona ©   (2002-12-26 17:29) [14]

Интересно, зачем? Ты ведь их сам создавал.

Разве что использовать св-во Form.ComponentCount - кол-во компонентов формы.
Доступ к i компоненту есть через св-во Form.Components[i] (нумерация с 0). Проверить, явл-ся ли этот компонент кнопкой, можно так
if Form1.Components[i] IS TButton then ...


 
han_malign ©   (2002-12-26 18:22) [15]

procedure TfrmAdd.Execute(btnSet : TheMenu; num : integer);
var
b : array[1..4] of TButton;
i : integer;
begin
for i := 1 to 4 do
begin
b[i] := TButton.Create(self);
b[i].Parent := Self;
b[i].Width := Panel1.Width - 10;
b[i].Height := 25;
b[i].Left := 5;
b[i].Top := i * 25;
b[i].Caption := btnSet[num][i].caption;
b[i].onClick := ButtonClick;
b[i].Tag := StrToInt(IntToStr(num)+IntToStr(i));
if (btnSet[num][i].caption = "") then b[i].Visible := False;
end;
ShowModal;
for i := 1 to 4 do b[i].Free;
end;
- только не пойму, зачем их создавать динамически, если состав и размещение постоянные.


 
Namor ©   (2002-12-27 14:55) [16]

Полностью согласен с уважаемым мастером han_malign.
Или так b[i] := nil;
Или так b[i].Destroy;


 
han_malign ©   (2002-12-27 15:16) [17]

b[i] := nil; - не прокатит - в отличие от динамических массивов, открытых строк и интерфейсов, для ссылок на экземляры классов "compiller magic" не проходит.


 
TTCustomDelphiMaster ©   (2002-12-27 15:17) [18]


> b[i] := nil;


Так ни в коем случае


> b[i].Destroy;


А так не рекомендуется



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

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

Наверх




Память: 0.5 MB
Время: 0.021 c
14-25086
han_malign
2002-12-18 16:59
2003.01.09
Нарочно не придумаешь...


1-24900
d_oleg
2002-12-25 12:13
2003.01.09
Balloon hint


1-24975
Rus
2002-12-27 10:10
2003.01.09
Quick Report


1-24862
SaperXL
2002-12-27 22:13
2003.01.09
TMemo


1-24913
Weare
2002-12-23 13:36
2003.01.09
Excel и Delphi