Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.035 c
6-1074946940
ASTARD
2004-01-24 15:22
2004.04.04
По поводу ФТП!!!???


4-1075222949
mntek
2004-01-27 20:02
2004.04.04
tray icon - восстановление после краха explorer a


7-1074178573
проблематик
2004-01-15 17:56
2004.04.04
ListView


14-1078725422
Мазут Береговой
2004-03-08 08:57
2004.04.04
Присоединяюсь к Игорю Шевченко... и подарок...


3-1078214709
Laymer
2004-03-02 11:05
2004.04.04
Memo - поле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский