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

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

Как создать компонент Edit динамически?


WFS ©   (2007-11-04 19:24:00) 

собсна вопрос в теме


Leonid Troyanovsky   (2007-11-06 13:24:00) [1]


> Галинка ©   (06.11.07 12:39) [13]

> И вообще, когда надо большое количество однозначных эдитов,
> может сразу StringGrid взять

Сразу DrawGrid.

--
Regards, LVT.


Ega23   (2007-11-06 13:00:00) [2]


> Лучше использовать Controls или Components, ни к чему плодить
> сущности.


Кроме динамически создаваемых Эдитов могут быть и созданные в Design-time на данном контроле.
А Tag всего один...  :)


Галинка   (2007-11-06 12:39:00) [3]

Да понятно, что лучше. Но можно. Если автор пока категориями массивов оперирует.

И вообще, когда надо большое количество однозначных эдитов, может сразу StringGrid взять, и не мучиться?


Anatoly Podgoretsky   (2007-11-05 08:53:00) [4]

Лучше использовать Controls или Components, ни к чему плодить сущности.


Amoeba   (2007-11-05 02:10:00) [5]

Лучше использовать не массив, а TObjectList.


Галинка   (2007-11-04 21:51:00) [6]

WFS   (04.11.07 20:02) [7]

а в чем проблема? если параллельно будет существовать массив этих вновь созданных едитов, то можно и так.

var
MyEdits: array of TEdit;
i : integer;
curEdit : TEdit;

begin
 for i:=0 to 1000 do
  begin
   curEdit := TEdit.Create(Form1);
   SetLength(MyEdits, i+1);
   MyEdits[i] := TEdit.Create(Form1);
     with MyEdits[i] do
       begin
         Parent := Form1;
         Left = 10;
         Top := 10 + 25*i;
         Text = IntToStr(i);
       end;
  end;
end;


WFS   (2007-11-04 20:14:00) [7]

Ладно, спасибо:)


Efir   (2007-11-04 20:10:00) [8]

Можно так:

var
 i:integer;
 Edit:TComponent;
begin
 for i:=1 to 5 do begin
   Edit:=FindComponent('Edit'+IntToStr(i));
   if Edit is TEdit then
     TEdit(Edit).Text:='12345';
 end;
end;


WFS   (2007-11-04 20:02:00) [9]

Ну а как?
Он же не понимает Edit[i].text :)


Efir   (2007-11-04 19:59:00) [10]

Конечно можно.


WFS   (2007-11-04 19:55:00) [11]

Тогда такой вопрос.
Если имеются много эдитов с номерами от 1 до 1000, то можно свойству Text каждого эдита в цикле присвоить значение?


Efir   (2007-11-04 19:36:00) [12]

Родителя, я так понимаю в твоём случае это будет форма.

MyEdit:=TEdit.Create(Form1);
MyEdit.Parent:=Form1;


Anatoly Podgoretsky   (2007-11-04 19:35:00) [13]

> WFS  (04.11.2007 19:33:02)  [2]

F1


WFS   (2007-11-04 19:33:00) [14]

Какой параметр следует указать в скобках
TEdit.Create(?)


Anatoly Podgoretsky   (2007-11-04 19:25:00) [15]

> WFS  (04.11.2007 19:24:00)  [0]

Компоненты создаются с помощью Create


Наверх

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