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

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

Динамическое создание компонента [D6, 2000, XP]


Fostr ©   (2006-10-26 15:59:00) 

Здравствуйте, уважаемые!

Есть задача, согласно которой при создании формы, на последней должно появиться некоторое количество TEdit-ов. Это количество может быть разным и определяется в момент создания этой формы по результату работы другой процедуры.

Подскажите пожалуйста, как это реализуется? (Или направьте на соответствующую документацию).


Ketmar   (2006-10-26 16:23:00) [1]

>[8] Elen(c) 26-Oct-2006, 16:17
>А-а ясно. Это пример создания компонентов на форме...
ага. остальное оставлено для тренировки мозга. тем более, что автор, похоже, вполне адекватный.


Elen   (2006-10-26 16:17:00) [2]


> Ketmar

А-а ясно. Это пример создания компонентов на форме... Чето подумалось что имеется ввиду для Это количество может быть разным и определяется в момент создания этой формы по результату работы другой процедуры.


Ketmar   (2006-10-26 16:15:00) [3]

>[5] Elen(c) 26-Oct-2006, 16:10
>причем тут InputBox(), InputQuery()?
при том, что в их исходных текстах делается как раз то, что надо автору. если ты заметила -- я сказал, в каком файле искать исходник для самообразования. и какие именно процедуры/функции читать.


Anatoly Podgoretsky   (2006-10-26 16:14:00) [4]

Создание любых компонент, а не только TEdit делается с помощью конструктора Create, с последующей установкой нужных свойств, никакой магии, тоже происходит и при бросании компонента на форму, вызывается конструктор.


Elen   (2006-10-26 16:10:00) [5]


> Fostr

Например так :
var f:integer;
begin
//********* FOR ******************
setlength(arr,100);
for f :=0  to Length(arr)-1  do
begin
  arr[f]:=TEdit.Create(form1);
  arr[f].Top:=10*f;
  arr[f].Left:=10*f;
  arr[f].Width:=10;   arr[f].Height:=10;
  arr[f].Parent:=form1;
  arr[f].Visible:=true;
end;
//******* END FOR ****************



> Ketmar

причем тут InputBox(), InputQuery()?


Fostr   (2006-10-26 16:05:00) [6]

Мерси.


Shirson   (2006-10-26 16:04:00) [7]

var edit:tedit;

procedure TForm1.Button1Click(Sender: TObject);
var a:integer;
begin
 for a:=0 to 10 do
 begin
  edit:=Tedit.Create(Form1);
  edit.Top:=random(400);
  edit.Left:=random(400);
  edit.Parent:=form1;
 end;
end;


Направление понятно?


Сергей М.   (2006-10-26 16:04:00) [8]

Примерно так:

for i:=0 то некоторое количество - 1 do
 with TEdit.Create(форма-владелец) do begin
   ..
   Parent := форма-владелец;
   ..
 end;


Ketmar   (2006-10-26 16:02:00) [9]

"создание контролов в runtime". исходник Dialogs.pas, опять же -- InputBox(), InputQuery()...


Наверх

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