Замечания и предложения

какого типа элемент?

Это если объявить Functions : array [0…10] of array of string;

То там где присвоения не было по идее должны быть массив нулевой длинны. А на деле отладчик пишет что там nil Но исполнение самой программы таки правильно - это у меня ошибка в коде оказалась. Если ставить проверку Length(Functions[j])>0 - то нормально отрабатывает. Вот как я себе представляю оргазизацию дин. массив в Delphi - http://4.bp.blogspot.com/-jilcCFolsYc/T2j2b-L1QWI/AAAAAAAAARk/ynvgzGDDPjE/s1600/Dynamic-Array-In-Memory.png При ней nil быть не может даже для нулевого числа элементов.

Вот реализация Length:

function Length(a: &Array): integer;
begin
  if a = nil then
    Result := 0
  else Result := a.Length;
end;

Насчёт той диаграммы по ссылке - я не понял что она означает. Но в .Net у всех ссылочных типов значение по умолчанию - nil.

В паскале есть всего несколько типов реализованных по особому. К примеру типизированные файлы - это ссылочные типы, но паскаль всегда инициализирует их сам, поэтому они не могут быть nil. И это только ради совместимости со старыми паскалями.

Но массив - это стандартный .Net -овский тип. Если у него значение поумолчанию будет не nil - это сломает совместимость с .Net .

Это больше звучит как будто это будет выдавать ошибку:

begin
  var a: array[1..2] of array of byte;
  writeln(a[1]);
end.

Это выводит nil. Но, на сколько я понял, вы имеете в виду этот случай:

begin
  var a: array[1..2] of array of byte;
  writeln(a[1][0]);
end.

Но, даже если бы массив всегда инициализировался массивом с 0 элеметов - это всё равно выдало бы ошибку, потому что тут индекс выходит за границы.

Статический массив динамических массивов? Ммм, это что-то новенькое :smile:

[quote=“Sun_Serega, post:1044, topic:143”] Насчёт той диаграммы по ссылке - я не понял что она означает. [/quote] - это как в дельфи динамический массив объявляется в памяти. 1-й элемент , сколько раз на него сослались. 2-й элемент - длинна массива. 3-й и последующий(имеют объявленный типа) - это уже собственно элементы массива.

[quote=“Sun_Serega, post:1044, topic:143”] Но, даже если бы массив всегда инициализировался массивом с 0 элеметов - это всё равно выдало бы ошибку. [/quote] -да, в моём случае точно бы выдало. Я попробую какой-нибудь тестовый пример создать , может действительно по исполнению это всегда будет эквивалентно.

1 лайк

Недавно на форуме обсуждали возможность установки значка на исполняемый файл, генерируемый компилятором PABC.NET. Это оказалось достаточно простой манипуляцией, но проводить её каждый раз при обновлении очень неудобно. Я хотел бы предложить разработчикам добавить такую возможность непосредственно в компилятор. Оформить это можно директивой вида {$AppIcon 'Icon.ico'}, либо параметром в настройках компилятора.

2 лайка

Считаю необходимым провести голосование.

Каким образом реализовать установку значка на генерируемый исполнимый файл?

  • Директивой
  • Отдельным параметром в настройках компилятора
  • Против данной возможности

0 голосов

Есть ещё вариант “Мне всё равно”. За него проголосовал 1 человек.

Если у кого будут другие предложения - готов добавить.

Вот мне оно все равно, ибо как значок мне не нужен, в обучении он не нужен тоже. “Против” буду только если это станет автоматическим навязчивым сервисом, т.е. потребуется что-то делать, чтобы отказаться. А такого в голосовании нет.

Предполагается, что это будет опциональным. По умолчанию - отключенным.

Ну будет - и будет…Не будет - не будет. Мне все равно тогда.

Т.е. добавить в голосование строчку “мне всё равно”?

Лучше всегда добавлять.

1 лайк

Если Вас интересует учесть там мой голос - да. А так - я высказался уже.

Это уже чёрный юмор будет.

Ну тогда пусть будет :smile:

А, облом. Нельзя изменить параметры опроса.

Я буду там присутствовать незримо)))

Уже зримо, но анонимно)

В студии можно выбирать в настройках проекта такое, но глобальная настройка компилятора для любого открытого в IDE проекта - это точно не то что надо.

В то же время, не всегда компиляция происходит из IDE, а про аргументы командной строки компилятора нигде не написано. Поэтому для возможности авто-компиляции - если делать то в первую очередь директивой.

1 лайк

Функционал был удален из-за лицензионных ограничений. Таскать с собой проприетарную майкрософтовскую хреновину времен динозавров, генерирующую .res файл нехорошо.

1 лайк

Если будет бесплатная “хреновина” на паскале, которая генерирует .res файл с иконкой - вы добавите такую директиву?