Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Трехмерный массив


Автор: koder 29.1.2006, 01:04
Как создать и вывести в виде таблицы?

Автор: Fighter 29.1.2006, 02:49
Трехмерный массив по идее обычной таблицей ты не выведешь!!!

Автор: koder 29.1.2006, 09:47
Это по твоей идеи! А по сущности можно вывести.. Получатся прямоугольные таблицы !

Автор: Zero 29.1.2006, 19:21
Цитата(koder @ 29.1.2006, 02:04 Найти цитируемый пост)

Как создать

Код

...
var
  a:array of array of array of integer;  
  i,j:integer;
...
procedure ...
begin
....
  SetLength(a,3);  //создание "столбцов" массива. Их будет 3 штуки (ширена массива)
  for i:=0 to 2 do
  begin
    SetLength(a[i],2);  //создание количества строк массива (высота массива)
    for j:=0 to 1 do
      SetLength(a[i,j],4);  //создания цепочки, для каждого элемента матрицы (длина/глубина массива)
  end;
....
end;

Далее обращение к нему бедет, как к обычному статическому но только начиная от нулевого элемента.
Пример:
Код

...
for i:=0 to 2 do
  for j:=0 to 1 do
    for k:=0 to 3 do
      a[i,j,k]:= random(90);
...
Цитата(koder @ 29.1.2006, 02:04 Найти цитируемый пост)

вывести в виде таблицы

Всё зависит от того, какой компоненты будешь использовать в качестве таблиц.

Автор: mvdr 29.1.2006, 19:59
koderhttp://forum.vingrad.ru/index.php?showtopic=48731&st=0&#entry384553

Автор: SoWa 29.1.2006, 20:08
Вывести одной таблицей- никак. Можно выводить слоями.
Иди по ондному слою j и выводи таблицы mas[j, n,m]

Автор: Pakshin A. S. 29.1.2006, 20:30
По поводу создания:
SetLength(mass, ml1, ml2, ml3); и без всяких циклов...

А вот вывод послойно массива через F1BOOK на мой взгляд не очень-то хорошо...
Проще:
Ставим обычный StringGrid для текущего слоя и вешаем, к примеру обычный ScrollBar, установив за Max к примеру ml1 (т. е. индекс слоя - первый индекс в массиве). В SctrollBar'e есть соответсвующее событие OnChange, куда впишнем примерно следующее:
Код

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
 ShowMass(StringGrid1, ScrollBar1.Position) // Процедура вывода слоя массива в StringGrid
end;


Если сделать динамическое создание создание этих ScrollBar, то мы сможем спокойно выводить n-мерные массивы...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)