Массив Edit-компонентов

Материал из DRKB

Массив Edit-компонентов[править | править код]

procedure DoSomethingWithEditControls;
var
  K: Integer;
  EditArray: array[0..99] of Tedit;
begin
  try
    for K := 0 to 99 do
    begin
      EditArray[K] := TEdit.Create(Self);
      EditArray[K].Parent := Self;
      { Устанавливаем необходимые свойства TEdit }
      SetSomeOtherPropertiesOfTEdit;
      Left := 100;
      Top := K * 10;
      { Что-то делаем при перемещении мыши }
      OnMouseMove := WhatToDoWhenMouseIsMoved;
    end;
    { Делаем все что хотим с полученным массивом Edit-компонентов }
    DoWhateverYouWantToDoWithTheseEdits;
  finally
    for K := 0 to 99 do
      EditArray[K].Free;
  end;
end;


Source: http://delphiworld.narod.ru/
ID: 00978



...массив ячеек TEdit будет просто замечательным, но я не могу понять как мне их создавать и делать видимыми.

Допустим, если они имеют имена с Edit1 по Edit 9, то можно попробовать сделать так:

var
  eds: array[1..3, 1..3] of TEdit;
  ix: integer;
  ed: TEdit;
begin
  for ix := 0 to 8 do 
  begin
    ed := FindComponent('Edit' + IntToStr(ix+1)) as TEdit;
    if ed <> nil then 
      eds[ix div 3 + 1, ix mod 3 + 1] := ed;
  end;
end;


Затем, допустим, вам захотелось скопировать текст из строки 1 в строку 2:

for ix := 1 to 3 do
  eds[2, ix].Text := eds[1, ix].Text;


Source: http://delphiworld.narod.ru/
ID: 00979