Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизДинамический массив Найти похожие ветки
← →
Nonamik (2004-03-19 08:35) [0]Доброе утро.
Хотелось бы уточнить вот какой вопрос:
при объявлении в процедуре динамического массива, напримерprocedure proc;
var arr: array of TColor;
begin
SetLength(arr, 3);
...
end;
нужно ли освобождать память в хвосте процедуры или нет и если да, то каким способом лучше? В справке дан пример без освобождения, но хочеться уточнить.
да, и вот еще один:
Перебор компонентов на форме следующим образом, будет выдавать всегда одинаковую последовательность (при постоянном количестве компонентов) или нет?var i: byte;
...
for i := 0 to Form1.ComponentCount - 1 do
ShowMessage(Form1.Components[i].Name);
...
Спасибо.
← →
MBo © (2004-03-19 08:38) [1]1. Не надо (если массив состоит из простых статических данных)
2. Да
← →
Вованчик © (2004-03-19 08:44) [2]
> MBo © (19.03.04 08:38) [1]
спасибо
← →
Вованчик © (2004-03-19 08:45) [3]... пардон ни туда написал
← →
Тимохов © (2004-03-19 10:41) [4]Можно добавить?
> 1. Не надо (если массив состоит из простых статических данных)
1. Не дано (если массив состоит из простых статических данных и динамических, за которые отвечает сама дельфи (длинные строки, дин. массивы, интерфейсы))
← →
Goida © (2004-03-19 10:44) [5]
> 1. Не надо (если массив состоит из простых статических данных)
Но лучше все-таки обозначить освобождение. Чтобы было видно, что он больше не будет использоваться. Это нужно нашим потомкам.
← →
Тимохов © (2004-03-19 10:53) [6]
> Goida © (19.03.04 10:44) [5]
следуя вашей логике в конце процедур надо также и строки приравнивать пустой строке и интерфейсам nil присваивать.
← →
Goida © (2004-03-19 11:00) [7]
> Тимохов
Нет, строки не составные объекты, а интерфейсам, да
← →
Goida © (2004-03-19 11:03) [8]Да, можно делать и так как вы говорите, только коментировать все происходящее. Это даже лучше, гораздо лучше...
← →
Тимохов © (2004-03-19 11:04) [9]
> Нет, строки не составные объекты, а интерфейсам, да
Что значит не составные?
Те же динамические объекты, что и дин. массивы, память для которых автоматически выделяется тем же allocmem. Единство на лицо, имхо.
← →
Goida © (2004-03-19 11:12) [10]Я говорю не о реализации, а о человеческом факторе.
← →
Тимохов © (2004-03-19 11:22) [11]
> Goida © (19.03.04 11:12) [10]
есть ощущение, что вы сейчас пишете(раньше писали) на другом языке, например, на си.
избыточность - дело вкуса, сам иногда лишнего пишу для наглядности...
← →
афвуд © (2004-03-19 12:36) [12]
> Перебор компонентов на форме следующим образом, будет выдавать
> всегда одинаковую последовательность (при постоянном количестве
> компонентов) или нет?
>
> var i: byte;
> ...
> for i := 0 to Form1.ComponentCount - 1 do
> ShowMessage(Form1.Components[i].Name);
Ну не всегда. Если ты не делаешь всяких там Form1.RemoveComponent(Form1.Components[0]); :)), то всё будет хорошо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.025 c