Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1262180202
RWolf
2009-12-30 16:36
2010.03.07
DBGrid + скролл


15-1261389087
AntonioBanderas
2009-12-21 12:51
2010.03.07
Компонент "Линия"


2-1261983766
Who_is_you?
2009-12-28 10:02
2010.03.07
Как сделать проверки через каждые 20 микросекунд?


9-1183152132
ElectriC
2007-06-30 01:22
2010.03.07
Мобильные игры


2-1262773465
NewZ
2010-01-06 13:24
2010.03.07
Рабочий стол Windows.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский