Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Вопросик по Delphi

Приветствую всех.
Еще один глупый вопрос.
Допустим есть несколько Edit'ов, в которые вносятся какие-то значения.
Например:
var
a:array[1..10]of double;
begin
a[1]:=StrToFloat(Edit1.Text);
a[2]:=StrToFloat(Edit2.Text);
a[3]:=StrToFloat(Edit3.Text);
..............
a[10]:=StrToFloat(Edit10.Text);

Необходимо сделать так, чтобы не присваивать каждой переменной массива
соответственный Edit, а чтобы они вносились сами, без их прописывания.
Ну не знаю что-то вроде этого a[n]:=StrToFloat(Edit[n].Text);(строчка
написана просто так из головы)
Вообще возможно так сделать? Просто покороче бы надо.

Ответить   Sat, 13 Mar 2004 18:02:04 +0300 (#102154)

 

Ответы:

Hello Alapin,

Saturday, March 13, 2004, 5:02:04 PM, you wrote:

Возможно, конечно!
var
P :TWinControl;
i,j :Integer;
begin
P := Edit1.Parent;
j := 1;
for i := 0 to P.ControlCount - 1 do
if P.Controls[i] is TEdit then
begin
a[j] := StrToFloat((P.Controls[i] as TEdit).Text);
Inc(j);
end;
end;

Ответить   Вадим Шешунов Sun, 14 Mar 2004 00:03:05 +0200 (#102327)

 

Здарова, Alapin!

13 марта 2004 г., суббота, 20:02:04 (GMT+05:00), ты намылил:

Кусок кода моей проги. Подсказка: Sender - лишнее.
Главное - FindComponent.

for i := 1 to number do
if Sender = FindComponent('Edit' + IntToStr(i)) then
begin
mod_[i] := tmp_mod;
key_e[i] := tmp_key;
end;

--
Никогда больше не буду говорить афоризмами. Да, кстати, запишите мою последнюю
фразу

Ответить   Томилов Александр Sun, 14 Mar 2004 00:51:51 +0500 (#102384)

 

Здрям!
Предложенные ранее варианты обладают одним недостатком, они предпологают что
надо использовать ВСЕ TEdit а если тока с 5 по 18 ? Логичнее будет создать
эти элэменты динамически.
for i:=x to n do begin
editx:=TEdit.create(form1);
editx.name:='edit'+strtoint(i);
end;

С уважением monah
janal***@n*****.ru
Номер выпуска : 2592
Возраст листа : 174 (дней)
Количество подписчиков : 377
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/102450
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sun, 14 Mar 2004 09:55:13 +0600 (#102450)

 

Здарова, monah!

14 марта 2004 г., воскресенье, 08:55:13 (GMT+05:00), ты намылил:

Ну ты, monah, загнул! Что ж это при каждой записи в массив создавать
Editы, а когда в них значения попадут? При создании что ли?
И вообще, FindComponent не обладает недостатком "использования всех
TEdit", просто мне лень было писать подробный код.
Кстати, monah, что такое "editx" в твоем коде? Если один и тот же
Edit, то как ты в из него будешь добывать РАЗНЫЕ значения в массив?

procedure TForm1.Button1Click(Sender: TObject);
var a: array[1..10]of double;
i: integer;
begin
for i := 3 to 7 do
a[i] := StrToFloat(
(FindComponent('Edit' + IntToStr(i)) as TEdit
).Text);
end;

--
Никогда больше не буду говорить афоризмами. Да, кстати, запишите мою последнюю
фразу

Ответить   Томилов Александр Sun, 14 Mar 2004 14:25:34 +0500 (#102851)

 

Привет!
editx - буфер для создания элемента. потом ему присваивается уникальное имя
и т.д. Мне тоже было лень писать весь код, тока идею оформил.

С уважением monah
e-mail : janal***@n*****.ru
сайт : http:\\janalex.narod.ru
--
Номер выпуска : 2603
Возраст листа : 175 (дней)
Количество подписчиков : 376
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/103163
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 15 Mar 2004 08:25:06 +0600 (#103163)

 

Тема: Вопросик по Delphi

Очено просто: для всех Edit'ов определяется (выбирается) один обработчик событий,
а там распознается, кто обратился вот так:
if (Sender as TComponent).Name = 'Edit1'
then
Edit1.Text := Edit1.Text + '1'
.....

Ответить   Mon, 15 Mar 2004 09:48:01 +0300 (#103090)

 

событий,

Тут лучше использовать св-во tag, в нем хранить уникальный номер и его
проверять

С уважением monah
e-mail : janal***@n*****.ru
сайт : http:\\janalex.narod.ru
--
Номер выпуска : 2604
Возраст листа : 175 (дней)
Количество подписчиков : 376
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/103197
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 15 Mar 2004 15:40:08 +0600 (#103197)

 

Здравствуйте.

А зачем тебе хранить одну и туже информацию в двух местах?

Ответить   Болюба Георгий Mon, 15 Mar 2004 10:04:21 +0300 (#103095)

 

Привет Болюба,

Monday, March 15, 2004,в 10:04:21 AM, вы писали:

Здраствуйте.

Надо после этого загнать все в StringGrid, так как нужна таблица, и
там произвести с данными некоторые действия.
Но проблема уже решена с помощью "Томилова Александра: asteroid_co***@m*****.ru"
Спасибо всем тем, кто помогал.

Ответить   Mon, 15 Mar 2004 14:57:58 +0300 (#103554)