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

Вниз

Добавление компанента по нажатию на баттон!   Найти похожие ветки 

 
ZXZ_RUS ©   (2009-12-28 14:04) [0]

Люди помогите чайнику - самоучке! Нежен код для Дельфи чтоб по нажатию на кнопку на форму добавлялся новый элемент например Shape, а так же код для его удаления! Количество элементво должно быть не ограничено сколько раз нажал столько и добаивлось! Желательно с возможностью задания Left and Top обьекта!  Зарание спасибо!


 
MBo ©   (2009-12-28 15:08) [1]

http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=342


 
Anatoly Podgoretsky ©   (2009-12-28 17:00) [2]

> ZXZ_RUS  (28.12.2009 14:04:00)  [0]

Parent := форма


 
Плохиш ©   (2009-12-28 23:39) [3]

Нежный код - это что-то из сказочного кодинга?


 
Игорь Шевченко ©   (2009-12-29 02:02) [4]

Плохиш ©   (28.12.09 23:39) [3]

Это комплимент. "Нежен код для Delphi..."


 
Andy BitOff ©   (2009-12-29 09:55) [5]


> Плохиш ©   (28.12.09 23:39) [3]

TФорма = class(TForm)
форма: TФорма

Parent := форма

(с)Delphi 2007 ;)


 
Maloj2008   (2009-12-29 21:38) [6]

Как вариант, вот тебе код.


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;


 
Amoeba ©   (2009-12-30 00:44) [7]


> PanelList:TList;

Правильней в данном случае будет использовать не TList, а TObjectList.
Тогда этот код

> while PanelList.Count>0 do
>  begin
>    TPanel(PanelList.Items[0]).Free;
>    PanelList.Delete(0);
>  end;

можно будет выкинуть нафиг.


 
Германн ©   (2009-12-30 01:36) [8]


> Amoeba ©   (30.12.09 00:44) [7]
>
>
> > PanelList:TList;
>
> Правильней в данном случае будет использовать не TList,
> а TObjectList.
>

В смысле сабжа, правильней будет использовать  "встроенные" списки, а не создавать свои "дополнительные".


 
Maloj2008   (2009-12-30 13:23) [9]

Это был лишь пример. Реализаций может быть множество.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1261603824
Юрий
2009-12-24 00:30
2010.03.07
С днем рождения ! 24 декабря 2009 четверг


15-1261503380
xayam
2009-12-22 20:36
2010.03.07
Когда истина зависит от терминологии - часть 2


2-1262510778
VertUS
2010-01-03 12:26
2010.03.07
из Memo2 в Memo1


2-1262704720
ЭлЭрДжи
2010-01-05 18:18
2010.03.07
БД в Delphi (очень важная лаба, помогите пожалуйста)


2-1262118378
Pavel
2009-12-29 23:26
2010.03.07
Ошибка при вызове GetInetFile