Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.06.2014, 15:34
'Zanuda' 'Zanuda' вне форума
Прохожий
 
Регистрация: 01.04.2014
Сообщения: 17
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Двумерный массив из Edit-ов

Здравствуйте, пытаюсь создать двумерный массив из Edit-ов, рядом с которым будет Lable, в которые будут вноситься значения a[i,j] (i,j=1..n, n вводится с клавиатуры). При этом если i не равно j, то в лэйбл вводится 2a[i,j]. Короче говоря, нужно заполнить значения в формуле . И потом, эти значения из эдитов занести в массив a[i,j]. но пока почему-то не все "а" создаются.
Скорее всего я не правильно описал процедуру создания компонентов, но по-другому я не придумал((( Может подскажите как это сделать?

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 Lab: Array of array of TLabel;
 Ed: Array of array of TEdit;
 n,i,j: Integer;
begin
  n:=strtoint(edtkp.text);
  SetLength(Lab, n+1,n+1);
  SetLength(Ed, n+1,n+1);
  for i := 0 to n-1 do
  begin
  j:=0;
  while j<=n-1 do
    begin
      Lab[i,j] := TLabel.Create(Self);
      Lab[i,j].Parent := Self;
      Lab[i,j].Left := 10;
      Lab[i,j].Top := i*30+250;
      Lab[i,j].Caption := 'a'+IntToStr(i+1)+IntToStr(j+1)+'=';
      Ed[i,j] := TEdit.Create(Self);
      Ed[i,j].Parent := Self;
      Ed[i,j].Left := 150;
      Ed[i,j].Top := i*30+250;
      Ed[i,j].Text := '';
      Inc(j);
    end;
    end;
end;

Последний раз редактировалось 'Zanuda', 01.06.2014 в 15:53.
Ответить с цитированием
  #2  
Старый 02.06.2014, 01:38
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Zanuda
Здравствуйте, пытаюсь создать двумерный массив из Edit-ов, рядом с которым будет Lable, в которые будут вноситься значения a[i,j] (i,j=1..n, n вводится с клавиатуры). При этом если i не равно j, то в лэйбл вводится 2a[i,j]. Короче говоря, нужно заполнить значения в формуле . И потом, эти значения из эдитов занести в массив a[i,j]. но пока почему-то не все "а" создаются.
Создаваться то они создаются, вот только накладываются друг на друга, так как у всех Label-ов координата Left равна 10, а у всех Edit-ов координата Left равна 150.
Так как координата Top привязана к переменной цикла i, то координата Left должна быть привязана к переменной j, т.е. как-то так:
Код:
.....
      Lab[i,j].Left := 10 + j * 300;
.....
      Ed[i,j].Left := 150 + j * 300;
.....
И ещё обрати внимание, что на вкладке Additional палитры компонентов есть компонента TLabeledEdit, которая уже является Label-ом и Edit-ом "в одном флаконе".
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter