Помощь новичкам

Эффективнее - не значит быстрее

@Admin, помогите, пожалуйста, у меня проблема с интерфейсом среды. В общем, я поставил себе тёмное оформление на Windows 10, и во всех остальных программах цвета тоже поменялись. Но только в “PascalABC.net” цвета шрифтов еле различимы. Скажите, можно ли как-то принудительно заставить среду использовать стандартные цвета .NET Framework? Хотя бы фон формы? А то вот так вообще никак невозможно(

Попробуйте в файле PascalABCNET.xshd поменять какие-то цвета. Другого способа я не знаю

Есть какой то способ загружать TFF файл так как с экселем ранее нашли? System.Drawing.Font работает только с битмапами а мне нужны массивы байтов и доступ к каждому параметру загруженному из файла.

Ну хотя бы так)

Есть ли способ чтоб директива {$define} работала не только на 1 модуль? К примеру удобно было бы в начале программы написать {$define DEBAG} и для финального релиза убирать $. В случае когда DEBAG определено - вставлять во всю программу плохо оптимизированный код в котором легко искать ошибки, а если не определено - ставить максимально оптимизированный код. Когда модулей полтора десятка - в каждом убирать $ отдельно как то не очень удобно.

Есть ли возможность делать лямбды с var параметрами? Я не смог найти способ, компилятор ругается на var среди параметров.

Нет. А как Вы потом собирались это использовать?

  var p1:procedure(var a:integer);
  p1 := (var a) -> begin a += 1 end;

Как в режиме программирования на C# использовать библиотеку System.Windows.Forms?

Понятно. Ну, нельзя

А добавить такую фичу никак? Есть что то мешающее реализовать?

Ну да, в C# такое возможно:

    delegate void DD(ref int x);
    ...
    (ref int x) => { x += 1; };

Добавить такое… Ну, непросто я думаю. Напишите в Issue

procedure p(a: byte);
begin
  writeln(1);
end;

procedure p(a: function: byte);
begin
  writeln(2);
end;

function f1: byte := 0;

begin
  
end.

Есть ли тут способ вызвать p(a: function: byte) для f1? Я имею в виду на прямую, ведь p(()->f1) должно работать медленнее.

P.S. p(()->f1) не работает… Это ошибка?

p(f1)

1 лайк

Приоритет отдаётся не функции а возвращаемому значению, как и должно, и вызывается p1(a :byte). Вы бы сами для начала проверили…

Нет, такого способа не существует

Подскажите пожалуйста, то что System.IO.BinaryReader и System.IO.BinaryWriter читают и записывают все всё задом на перёд это ошибка или у этого есть какая то причина? На msdn ничего вроде про это не сказано.

К примеру:

begin
  var wr := new System.IO.BinaryWriter(System.IO.File.Create('test'));
  wr.Write(cardinal($89ABCDEF));
  wr.Close;
end.

Открывает в HexEditor-е и видим что байты записало в обратном порядке: image

Я вообще знаю это давно и думал что так принято записывать данные, но к примеру в .tff файлах(шрифты) - данные записаны в правильном порядке и BinaryReader читает белиберду.

Так данные хранятся в памяти

1 лайк