Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2011, 10:35   #1
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию Значения поля edit

Доброго времени суток!

Начал программировать на Delphi
Такой вопрос: каким образом можно сделать, чтобы editы программа создавала сама в зависимости от цифры которая указана в другом editе. Например, в edit пользователь ввел число 5, следовательно программа должна создать новых 5 editов. Заранее спасибо.
glazik вне форума Ответить с цитированием
Старый 03.03.2011, 10:50   #2
exn
Пользователь
 
Регистрация: 06.02.2011
Сообщений: 51
По умолчанию

в рантайме создавай.
exn вне форума Ответить с цитированием
Старый 03.03.2011, 10:57   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

это называется динамическое создание компонентов
если пройтись поиском то можно найти кучу ответов на вашу тему
Пример создания
Код:
var e:  array [1..5]of TEdit;

for i:=1 to 5 do
    begin
     e[ic]:=TEdit.Create(Form1);
     e[i].Parent:=form1;
     e[i].Width:=...;
     e[i].Top:=...;
     e[i].Left:=...;
    end;
но может лучше для ввода данных использовать стринггрид!!?
SERG1980 вне форума Ответить с цитированием
Старый 03.03.2011, 11:06   #4
_Den_1984
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 54
По умолчанию

действительно, проще создать 5 строк в таблице, чем создавать 5 едитов
_Den_1984 вне форума Ответить с цитированием
Старый 03.03.2011, 11:32   #5
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

да я нуб(((, а если мне нада создать типа 3*3 поле из editов, то что лучше использовать если не сложно с примером.....??
glazik вне форума Ответить с цитированием
Старый 03.03.2011, 11:56   #6
_Den_1984
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 54
По умолчанию

а ты чего вообще делаешь? может как-нибудь по другому организовать ввод данных?может одним эдитом и одной кнопкой но циклом записывать значения эдита в разные переменные полсе каждого нажатия кнопки? не?
_Den_1984 вне форума Ответить с цитированием
Старый 03.03.2011, 12:01   #7
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

задача в зависимости от количества человек создать для каждого определенное количество параметров, которые будут тоже вводиться пользователем с клавиатуры. Например, представь себе журнал. 30 челов напротив каждого оценки по количеству дней, четвертная вычисляется как среднее арифметическое, вот примерно тоже самое...
glazik вне форума Ответить с цитированием
Старый 03.03.2011, 13:10   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Да стринггрид, стринггрид это. Даже не сомнивайтесь.

TStringGrid на закладке Additional
Sibedir вне форума Ответить с цитированием
Старый 03.03.2011, 14:56   #9
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

))))tе спс за совет, очень помогло... это решение))))

Единственный косяк, что внешний вид не очень, но действенно... Стринггридом все получилось как нада, решил вернуться к первоначальной своей задумке... И вот возникла проблема:

Код:
procedure TForm2.Button1Click(Sender: TObject);
var
i,x:integer;
mass:array [1..255] of tedit;
begin
     x:=strtoint(form1.edit1.text);
     for i:=1 to x do
     begin
      mass[i]:=TEdit.Create(Form2);
      mass[i].Parent:=form2;
      mass[i].font.size:=20;
      mass[i].Width:=40;
      mass[i].Top:=100;
      mass[i].Left:=100+i*50;
     end;
     end;
Выдает ошибку is not a valid integer value,
подскажите, пожалуйста, как поправить. Буду очень признателен



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Stilet; 06.03.2011 в 15:52.
glazik вне форума Ответить с цитированием
Старый 03.03.2011, 15:34   #10
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Очень странно вы значение лефт подсчитываете
Код:
mass[i].Left:=100+i*50;
т.е возьмём последний шаг цикла где i=255 100+255*50 итого 12850
и какая же ширина формы при этом дожна быть????????????
хотя бы так вот
Код:
mass[i].Left:=l+((i-1)*(w+z));
где
l - левый край первого едита
w - ширина едита
z - расстояние между концом одного и началом другого эдита
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить значение поля грид на основе значения другого lookUp поля malayka БД в Delphi 0 21.04.2010 19:06
проверка содержимого поля Edit KaimNotark Общие вопросы Delphi 6 16.02.2010 07:45
Уникальность значения поля maks233 Microsoft Office Access 1 13.01.2009 14:14
изменение содержимого поля edit truel Win Api 1 21.04.2008 12:31
Конвертирование из поля Edit в нормальный знак. alikon1 Общие вопросы Delphi 11 27.11.2007 22:53