Ошибки PascalABC.NET

Во-первых, не mono-full, а mono-complete. А во-вторых: у меня он не стоит, чтобы на засорять десятками ненужных пакетов накопитель. Стоит то, что необходимо.

1 лайк

Оказалось, что ещё каких-то сборок не хватало, но не смог понять каких, пришлось поставить mono-complete всё же. У меня просто ноут, ssd небольшой, мне жалко сотню мегабайт под это дело. Ну да ладно…

Сотня мегабайт сегодня это ничто.

Заработал Assert в WDE

1 лайк

Здравствуйте. Некорректно работает генерация реализации элемента управления в конструкторе форм двойным кликом по элементу в случае, когда в конце раздела implementation (перед новосгенерировавшейся процедурой) оказывается коротко определенная функция (например, function Sqr3(x: integer) := xxx; ). Процедура генерируется перед символом “;” в конце коротко сгенерированной функции и это приводит к ошибке компиляции. Выглядит это так:

function Sqr3(x: integer) := xxx

procedure Form1.button1_Click(sender: Object; e: EventArgs); begin

end;;

После завершающей операторной скобки сгенерированной процедуры оказывается два символа “;”.

1 лайк

Не работает переименование переменных в кортежах. Например:

var
  a, b: integer;

begin
  a := 1;
  b := 2;
  (a, b) := (b, a);
end.

При попытке переименовать переменную “а” в “c”(правой кнопкой по переменной, переименовать) получится следующее:

var
   c, b: integer;

begin
  c := 1;
  b := 2;
  (a, b) := (b, a); //!
end.
1 лайк

Пишет, что Нельзя преобразовать тип string к LinkedListNode в строке b := a.first;

var
  a: System.Collections.Generic.Linkedlist<string>;
  b: System.Collections.Generic.Linkedlistnode<string>;
 
begin
  a := new System.Collections.Generic.LinkedList<string>;
  a.AddFirst ('a');
  b := a.first;
end.

тут скорее всего с intellisense проблема, который неправильно тип a.first показывает:

var
  a: System.Collections.Generic.Linkedlist<string>;

begin
  a := new System.Collections.Generic.LinkedList<string>;
  a.AddFirst ('a');
  writeln(a.First.GetType);
end.

в результате выводится: System.String

Ошибка в модуле Robot.

PascalABCCompiler.Core v3.1.0.1267 (10.07.2016), debug version Runtime version: 4.0.30319.42000 OS version: Microsoft Windows NT 6.2.9200.0 Processor count: 4 WorkingSet: 105712 kb

uses Robot;
begin
  Task('a1');
end.

Текст ошибки

Ошибка времени выполнения: System.Reflection.TargetParameterCountException: Несоответствие числа параметров. Стек: в System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) в System.Windows.Forms.Control.Invoke(Delegate method, Object[] args) в RobotField_implementation______.RobotField_implementation______.__InitModule() в RobotField.RobotField.InitModule() в Robot.Robot.InitModule() в RBa1.Program.$Init() в RBa1.Program.Main()

Версия 3.1. Windows XP. Стояла версия 2.2, потом написал игру у друга на компе, у него версия 3.1 стояла. Скопировал у него установщик, у него всё компилилось, а себе поставил–этот же файл не компилится. Ругается на random: Сначала “невозможно явно привести тип integer к system.Random”, потом пишет "Неизвестное имя: random". Скачал последнюю сборку с сайта- проблема осталась. Переустановил- всё равно ругается. Что делать?

Код приведите

Весь или только тот, который приводит к ошибке?

Лучше минимальный код, приводящий к ошибке.

Желательно проверить еще чтобы в начале файла не было написано uses System;

когда я нажимаю Ctrl+Space у меня вылазят только зарезервированые слова, нажал я между begin end. в главном модуле программы… не удобно так работать, оно понимает, к примеру, system только если я нажму точку, но если я напишу sys и ктрл+пробел оно не дополнит

Странно, после компиляции Kaspersky во всю кричит на программу, якобы в ней обнаружено HEUR:Trojan.Win32.Generic обновился до новой сборки, Kaspersky на время утих, а после пары изменений в коде, снова начал ругаться. Заранее говорю, код - ни разу не вирус.

А какая версия операционной системы?

И - попробуйте компилировать по Shift-F9 - тогда кричит или нет?

win 10. когда запускаю через f9 и Shift-F9 не кричит совсем, даже если в процессе работы программы пну на проверку данного файла, а если нажать “компилировать” тогда он начинает ругаться.

А попробуйте включить-отключить в опциях компиляции флажки Генерировать отладочную информацию и Ускорять запуск из-под оболочки и напишите поведение во всех комбинациях случаев.

Как Вы понимаете, вируса в сгенерированном средствами компилятора exeшнике просто физически не может быть. Разве что на машине вирус, и он сразу цепляется ко всем exeшникам (это крайне сомнительно)

[quote=“Admin, post:337, topic:126, full:true”]Разве что на машине вирус, и он сразу цепляется ко всем exeшникам (это крайне сомнительно) [/quote]

Это точно нет, машина у меня чистая, 24/7 работает и через ночь на проверку встает. Сейчас попробую разные комбинации и отпишусь.

Вот и нашлась проблема, без флага Генерировать отладочную информацию, касперский уже не считает эту программу вирусом. Остальные флаги никак не влияют на поведение касперского. Спасибо за помощь. С=