Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Вниз

Работа с большим количеством TEdit 


Viatcheslav   (2002-04-10 08:29) [0]

При вводе большого количества данных в поля TEDIT (TEdit1, TEdit2,....TEdit50) хотелось бы в дальнейшем работать с ними как с массивом. Подскажите, как это сделать. Спасибо!



Song   (2002-04-10 08:33) [1]

Var array [1..50] of TEdit;



Song   (2002-04-10 08:33) [2]

Var Arr:array [1..50] of TEdit;



Chepel   (2002-04-10 09:18) [3]

Менее эффективная, но более "ленивая" функция.

Использование:
Edit(N).Text := ...
Edit(N).Enabled := ...
и тд...

Недостатки:
1) работает правильно только если имена ( .Name) эдитов следуют в порядке (Edit1, Edit2, ..., EditN)
2) работает тока если Edit"ы лежат на одном папе (в данном случае - это форма)
3) медленная ( при больших N ~1000(???) )
4) может выбивать экзепшин, если использовать как
Edit(N).Text := "Something"; при неправильном N

Достоинства:
1) Не надо присваивать массив
2) Не надо менять код (см. 4) если меняется кол-во Edit"ов


function TForm1.Edit(Index: Integer): TEdit;
var
i, cnt: Integer;
C: TControl;
CtrlName: string;
begin
cnt := ControlCount - 1;
CtrlName := "Edit"+IntToStr(Index);
for i:=0 to cnt do
begin
C := Controls[i];
if CompareText(C.Name, CtrlName) = 0 then
begin
Result := C as TEdit;
Exit;
end;
end;

Result := nil;
end;



Song   (2002-04-10 09:34) [4]

2Chepel (10.04.02 09:18)
Ваша функция не нужна. Для этого в Дельфи уже есть процедура FindComponent




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.027 c
3-69666           Sewix                 2002-03-28 20:21  2002.04.22  
Поиск по Paradox


14-69985          Fellomena             2002-03-14 13:04  2002.04.22  
VFortran & MultiThreads Applications


6-69953           Dmitriy_0             2002-01-29 16:24  2002.04.22  
Как организовать собственный SMTP сервер ?


4-70066           Denis K. aKa Burjuy   2002-02-16 19:50  2002.04.22  
Работа с консолью


3-69669           kserg@ukr.net         2002-04-03 12:17  2002.04.22  
ADOQuery- как правильно работать с параметриз.запросом