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;
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;
в
подробнее...
Delphi!? Как разбить строку на строки (внутри подробней)?
Разбиение на слова:
i := 1;
j := 1;
flag := false;
For i := 1 to
подробнее...
Delphi, как пользоваться функцией InputBox?
Так как написано в стандартной справке.
А справка писана не для Пушкина, а для тебя.
подробнее...
Как в Delphi сделать всплывающие окно?
У компонентов в delphi есть свойство hint туда писать и будет всплывать подсказка
не
подробнее...
Вопрос по Delphi 7. Класс TStringList.
Доброго времени суток.
Что-то странное вы говорите. Прям сейчас проверил, все работает.
подробнее...
как заполнить StringGrid вручную? delphi
Есть такое свойство goEditing (точно для Delphi, в Borland должно быть что-то похожее) отвечает за
подробнее...
Как сделать бесконечный цикл в delphi ?
Выбирай:
while true do тело_цикла;
--
repeat
тело+цикла
until false;
подробнее...
Как в Delphi 7 сделать перенос на следующую строку??
WordWrap (перенос по словам) – давнишнее свойство многих компонентов, имеющих отображаемые
подробнее...
Проверка Edit в Delphi
Доброго времени суток.
Трудно не зная тонкостей задачи дать вменяемый ответ. Попробую в
подробнее...
treeview в Delphi очень сложно, помогите
Да вообщем-то не особо сложно. Набросал на Lazarus, соотв. что-то похожее должно работать в
подробнее...