Як створити компонент Edit динамічно

власне питання в темі

Компоненти створюються за допомогою Create

Який параметр слід вказати у дужках TEdit.Create(?)

Батьку, я так розумію у твоєму випадку це буде форма.

Тоді таке питання. Якщо є багато едітів з номерами від 1 до 1000, то можна властивості Text кожного едіту в циклі присвоїти значення?

А як? Він же не розуміє Edit[i].text :)

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 (04.11.07 20:02) [7]

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

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

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

Найкраще використовувати не масив, а TObjectList.

Краще використовувати Controls або Components, ні до чого плодити сутності.

І взагалі, коли треба велику кількість однозначних едітів, може відразу StringGrid взяти, і не мучитися?

> Краще використовувати Controls або Components, ні до чого плодити > сутності.

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

> І взагалі, коли потрібна велика кількість однозначних едітів, > може відразу StringGrid взяти Одразу DrawGrid.