Ошибки PascalABC.NET


#902

там нет ошибки. для метода с вложенными процедурами генерируется специальный метод $p1$4.p1 с параметром, в котором передается запись активации. этот метод вызывается из p1. и чтобы при отладке по F7 пропускался этот вызов, в сорсконтекст test.t1.p1 и помещается магическая константа 16777215. Эта константа используется отладчиком .NET. так что закрывайте issue.


#903

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


#904

нет.


#905

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


#906

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


#907

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


#908
{$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); это доступ не из того потока.


#909

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

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


#910

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


#911

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


#912

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


#913
Print('2*2=',5);

#914

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.


#915

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

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


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

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

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


#917

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


#918

Да. Мы знаем


#919

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


#921

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


#922

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