Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавление компанента по нажатию на баттон! [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо