![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое создание компонента [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()...