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