tarray delphi



Delphi tarray

Автор Макс задал вопрос в разделе Другие языки и технологии

Delphi как сделать так, чтоб результатом функции был двумерный массив и получил лучший ответ

Ответ от Илья Павлов[гуру]
Для начала создадим новый тип данных:

type
TArray2x = array of array of Integer;

Теперь напишем функцию:

function GetArray2x: TArray2x;
begin
...
end;

Но следует обратить внимание на то, что здесь объявлен динамический двумерный массив. Это значит, что перед его использованием необходимо выделить память под N строк и для каждой строки отдельно выделить память. Строго говоря, можно таким образом создать массив непрямоугольной формы.

Вот пример функции, возвращающей п/у массив 3 х 3:

function Get3x3: TArray2x;
var
A: TArray2x;
begin
SetLength(A, 3); // Выделяем память под 3 строки
// Создаем каждую строку
SetLength(A[0], 3);
SetLength(A[1], 3);
SetLength(A[2], 3);
// Возвращаем
Result := A;
end;

После использования динамического массива, память из-под него необходимо освободить:

// Порядок такой: сначала каждую строку, потом их массив
SetLength(A[0], 0);
SetLength(A[1], 0);
SetLength(A[2], 0);
SetLength(A, 0);

===========================
Если мы заранее знаем размерность двумерного массива, то принцип будет такой:

Вводим новый тип данных:

type TArray2x = array[0..2, 0..2] of Integer;

И создаем функцию:

function GetArray2x: TArray2x;
var
A: TArray2x;
begin
// В этом случае никакую память выделять не нужно, можно сразу обращаться к элементам
A[0, 0] := 15;
A[1, 2] := -25;
...
Result := A;
end;

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Delphi как сделать так, чтоб результатом функции был двумерный массив

Delphi!? Edit1.text, как сделать событие после ввода, тобишь после нажатия <enter>! (паясню в скринах)?
Нужно добавить обработчик события OnKeyDown для TEdit и прописать в него примерно следующий код:
подробнее...

Подскажите как правильно в delphi 7 подсказки Hints
в Hint - пишеш текст подсказки
ShowHint - нужно установить в True чтобы подсказка отображалась
подробнее...
спросили в Таймеры
Как сделать таймер на Delphi?
добавил таймер (TTimer) на форму поставил свойство интервал 1000 млсек Enable=false
отдельно в
подробнее...

Delphi, компонент Chart, пояснение внутри
Вставь
Series1.Repaint

ну или

Application.ProcessMessages

Ну, а
подробнее...
спросили в Таймеры
Таймер в Delphi
В чем проблема?
в обработчике одной кнопки пишешь
Timer1.Enabled := True;
в
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в User ba east User delphi
Delphi, как пользоваться функцией InputBox?
Так как написано в стандартной справке.
А справка писана не для Пушкина, а для тебя.
подробнее...
спросили в Delphi
Как в Delphi сделать всплывающие окно?
У компонентов в delphi есть свойство hint туда писать и будет всплывать подсказка

не
подробнее...
спросили в Lines
Вопрос по Delphi 7. Класс TStringList.
Доброго времени суток.

Что-то странное вы говорите. Прям сейчас проверил, все работает.
подробнее...
спросили в Shadrinsk
delphi string and boolean
var P: boolean;
    st: string;
begin
   ...подробнее...
спросили в Borland Delphi
как заполнить StringGrid вручную? delphi
Есть такое свойство goEditing (точно для Delphi, в Borland должно быть что-то похожее) отвечает за
подробнее...

Как сделать бесконечный цикл в delphi ?
Выбирай:
while true do тело_цикла;
--
repeat
тело+цикла
until false;
подробнее...

Как в Delphi 7 сделать перенос на следующую строку??
WordWrap (перенос по словам) – давнишнее свойство многих компонентов, имеющих отображаемые
подробнее...

Проверка Edit в Delphi
Доброго времени суток.

Трудно не зная тонкостей задачи дать вменяемый ответ. Попробую в
подробнее...
спросили в Delphi Leucoraja
treeview в Delphi очень сложно, помогите
Да вообщем-то не особо сложно. Набросал на Lazarus, соотв. что-то похожее должно работать в
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*