Ошибки PascalABC.NET

А когда вы делаете комит на гитхабе - исправление сразу загружается на в установщик или его надо ещё перекомпилировать каждый раз? Ошибка с record(interface) всё ещё есть.

нет.

Я же говорю, вы в любой момент с фичей можете добавить ещё 1 баг такого типа, и тогда в большой программе отследить его будет очень сложно из за переставляющегося курсора и текстбокса. Это тот случай когда основная ошибка это что то практически бессмертное.

Мы просим не писать два Issue на одну ошибку.

А где 2 то? Я прошу поставить условие чтоб если имя файла не определено - курсор не переставляло.

{$reference System.Windows.Forms.dll}
{$reference System.Drawing.dll}

uses System.Drawing;

var
  MF: System.Windows.Forms.Form;

procedure Drawing;
begin
  while not MF.Created do Sleep(10);
  var gr := Graphics.FromHwnd(MF.Handle);
end;

begin
  MF := new System.Windows.Forms.Form;
  MF.Bounds := new Rectangle(50,50,500,500);
  (new System.Threading.Thread(Drawing)).Start;
  System.Windows.Forms.Application.Run(MF);
end.

В режиме Shift+F9 эта программа запускается нормально, а через F9 пишет что var gr := Graphics.FromHwnd(MF.Handle); это доступ не из того потока.

Ну не пишите Вы такое в ошибки. Это ваши ошибки - не Паскаля.

Доступ к окну и элементам управления может осуществляться только из того потока, который их создал. Посмотрите исходные коды FormsABC например

Я указываю на ошибку в том что программа по разному ведёт себя в Shift+F9 и просто F9. Почему если это работать не должно запускается с Shift+F9? Кроме всего прочего у меня довольно долго не мало программ работали так, то есть получается не только сделать переменную Graphics но и спокойно рисовать, или, к примеру, менять размеры окна из совершенно любого потока.

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

Если она не правильная - должно выдавать ошибку, а ошибки нет!

Print('2*2=',5);
2 лайка

begin var a := ArrRandomInteger(20, 0, 2); var b := a.AdjacentGroup; b.Println; foreach var i in b do begin Write('['); i.Print(','); Print(']'); var x := i.Sum() //убираем эту строку все работает правильно end; end.

Это ошибка в компиляторе. Её вызывает обращение к AdjacentGroup.

begin
  var a := ArrRandom(20, 0, 2);
  Writeln(a.AdjacentGroup);
end.

// PascalABC.NET 3.3, сборка 1559 от 01.11.2017

begin
  var a := ArrRandom(20, 0, 2);
  Writeln(a.AdjacentGroup)
end.

@Admin: С новой версией компилятор по-прежнему падает

В сборке 1561 от 02.11.2017 по-прежнему падает.

Да. Мы знаем

В сборке 1562 от 02.11.2017 нормально работает

Здравствуйте! Когда появится возможность создания пространств имён?

1 лайк

И да, когда появится, хотелось бы сразу и пример, чтобы понимать, как его создавать.

procedure p1(b: byte);
type
  t1 = record
    procedure wr := writeln(b);
  end;
begin
end;

begin
end.

Неизвестное имя 'b' Это ошибка?