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

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

Помогите, please, разобраться с TEdit [D5, Win2k]


Codec ©   (2002-10-30 18:57:00) 

Доброго времени суток, Мастера!
Похоже меня переклинило, но не могу сообразить, выручайте, пожалуйста!

Проблема в следующем: имеется 10 Edit"ов (класс TEdit): Edit1,Edit2,...Edit10.
Как можно (если можно вообще) организовать запись значений из них в цикле вроде:

for i:=1 to 10 do Edit[i].Text := A[i];
"Edit[i].Text" - глупость, конечно, и работать не будет, но я думаю, смысл того, что я хочу сделать понятен.

Заранее СПАСИБО!!!


Codec   (2002-10-30 22:49:00) [1]


> k ©

СПАСИБО БОЛЬШОЕ !!!Если что, и я помогу, чем смогу!
:-)


k   (2002-10-30 19:21:00) [2]

а можно как МВо предложил

function GiveMyEdit(num:integer):TEdit;
var EditName:string;
begin
EditName := "Edit" + inttostr(num);
Result := findcomponent(EditName) as TEdit;
end;


то есть для номера 1 вернет Edit1 и т.п.
это упрощенный вариант


k   (2002-10-30 19:11:00) [3]

вместо Edit1,Edit2,...Edit10 объявляй массив:
Edits:array[1..10] of TEdit;

а дальше динамическое создание/уничтожение...

создание:
procedure CreateEdits;
var i :integer;
begin
for i:=1 to 10 do
begin
Edits[i]:= TEdit.Create(Self);
Edits[i].Parent := Self;
Edits[i].Visible := true;
//размеры, стили, положение
//события можно так обработать
Edits[i].OnChange := MyProc;
//где MyProc объявляешь как procedure MyProc(Sender:TObject);
end;
end;


ан-но все остальное... уничтожение,
принцип ясен, надеюсь


MBo   (2002-10-30 19:06:00) [4]

findcomponent, inttostr, is, as


Наверх

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