![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление компанента по нажатию на баттон! [D7, WinXP]
ZXZ_RUS © (2009-12-28 14:04:00)Люди помогите чайнику - самоучке! Нежен код для Дельфи чтоб по нажатию на кнопку на форму добавлялся новый элемент например Shape, а так же код для его удаления! Количество элементво должно быть не ограничено сколько раз нажал столько и добаивлось! Желательно с возможностью задания Left and Top обьекта! Зарание спасибо!
Maloj2008 (2009-12-30 13:23:00) [1]Это был лишь пример. Реализаций может быть множество.
Германн (2009-12-30 01:36:00) [2]
> Amoeba © (30.12.09 00:44) [7]
>
>
> > PanelList:TList;
>
> Правильней в данном случае будет использовать не TList,
> а TObjectList.
>
В смысле сабжа, правильней будет использовать "встроенные" списки, а не создавать свои "дополнительные".
Amoeba (2009-12-30 00:44:00) [3]
> PanelList:TList;
Правильней в данном случае будет использовать не TList, а TObjectList.
Тогда этот код
> while PanelList.Count>0 do
> begin
> TPanel(PanelList.Items[0]).Free;
> PanelList.Delete(0);
> end;
можно будет выкинуть нафиг.
Maloj2008 (2009-12-29 21:38:00) [4]Как вариант, вот тебе код.
var
PanelList:TList;
...
procedure TForm1.Button1Click(Sender: TObject);
var
MyPanel:TPanel;
begin
MyPanel:=TPanel.Create(Self); //Создаем копонент
MyPanel.Align:=alTop; //Устанавливаем у него выравнивание
MyPanel.Parent:=Self; //Указываем где он должен находится
PanelList.Add(MyPanel); //Добавляем компонент в список
//Доступ можно получить еще так
TPanel(PanelList.Items[PanelList.Count-1]).Caption:='Новая панель';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
MyPanel:TPanel;
begin
//Еще один вариант доступа к созданному компоненту
MyPanel:=TPanel(PanelList.Items[PanelList.Count-1]);
MyPanel.Free; //Уничтожаем последнюю панель
PanelList.Delete(PanelList.Count-1); //Уничтожаем указатель на компонент в списке
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Уничтожаем все созданные нами панели
while PanelList.Count>0 do
begin
TPanel(PanelList.Items[0]).Free;
PanelList.Delete(0);
end;
PanelList.Free; //Уничтожаем список
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
PanelList:=TList.Create;
end;
Andy BitOff (2009-12-29 09:55:00) [5]
> Плохиш © (28.12.09 23:39) [3]
TФорма = class(TForm)
форма: TФорма
Parent := форма
(с)Delphi 2007 ;)
Игорь Шевченко (2009-12-29 02:02:00) [6]Плохиш © (28.12.09 23:39) [3]
Это комплимент. "Нежен код для Delphi..."
Плохиш (2009-12-28 23:39:00) [7]Нежный код - это что-то из сказочного кодинга?
Anatoly Podgoretsky (2009-12-28 17:00:00) [8]> ZXZ_RUS (28.12.2009 14:04:00) [0]
Parent := форма
MBo (2009-12-28 15:08:00) [9]http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=342