А когда вы делаете комит на гитхабе - исправление сразу загружается на в установщик или его надо ещё перекомпилировать каждый раз? Ошибка с 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);
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 нормально работает
Здравствуйте! Когда появится возможность создания пространств имён?
И да, когда появится, хотелось бы сразу и пример, чтобы понимать, как его создавать.
procedure p1(b: byte);
type
t1 = record
procedure wr := writeln(b);
end;
begin
end;
begin
end.
Неизвестное имя 'b'
Это ошибка?