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


#1043

Это если объявить 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 быть не может даже для нулевого числа элементов.


#1044

Вот реализация 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 элеметов - это всё равно выдало бы ошибку, потому что тут индекс выходит за границы.


#1045

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


#1046

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

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


#1047

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


#1048

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

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

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

0 голосов

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

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


#1049

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


#1050

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


#1051

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


#1052

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


#1053

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


#1054

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


#1055

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

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


#1056

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


#1057

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


#1058

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


#1059

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

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


#1060

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


#1061

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


#1062

да