Форум: "Начинающим";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
ВнизДобавление компанента по нажатию на баттон! Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c