Физически эти настройки хранятся в файле “PascalABCNET.ini” в рабочей папке по-умолчанию (C:\PABCWork.NET). Лично у меня галочка снята, настройки сохраняются, exe-файлы после компиляции остаются.
Проверьте права доступа к этой папке, возможно у процесса PascalABCNET.exe нет прав на изменение этого файла. Попробуйте запустить Паскаль от имени администратора и снимите галочку. Проверьте, не удаляется ли (кем-нибудь) файл настроек.
Нашёл файл в рабочей папке, которую задал при установке.
Сейчас он обновляется, и все настройки сохраняются.
Возможно, проблема в том, что эта папка на разных компьютерах лежит как бы на разных дисках - G и H.
Диск, конечно, один и тот же, а буквы разные.
Проверю ещё и на втором компьютере…
Вот пишется у меня программа, в которой надо учитывать некорректный ввод данных с помощью Assert, но окошко, появляющееся для того, чтобы оповестить об этом самом некорректном вводе, находится подо всеми другими открытыми окнами, и получается, что его просто не видно…
begin
var a, b : integer;
writeln('Введите a и b');
read(a, b);
Assert((a > 0) and (b > 0), 'Числа должны быть положительны!');
Assert(a >= b);
while a >= b do
a := a - b;
writeln(a);
end.
Здравствуйте!
Дело в том, что при написании программ я сталкиваюсь с такой проблемой: при нажатии комбинации Ctrl+Shift+F нижний комментарий пропадает. Пример ниже:
{проверка работы}
begin
var a := ReadInteger();
Writeln(a - 1);
end.
{если набрать комбинацию ctrl+shift+f, то данный комментарий исчезнет}
не знаю Ошибка это или нет (прошу пояснить) … замечено что при попытке сделать аналог оператора с# using
uses
system.IO;
procedure Save2File(fn: string);
begin
var fs: Stream := new System.IO.FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
try
fs.WriteByte(0);
finally
if fs <> nil then
fs.Dispose; //IDisposable
end;
end;
begin
Save2File('test');
end.
при просмотре с помощью ILSpy видим следующий код:
public static void Save2File(string fn)
{
Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
try
{
stream.WriteByte(0);
bool flag = true;
throw new Exception();
}
catch (Exception)
{
if (stream != null)
{
stream.Dispose();
}
bool flag;
if (!flag)
{
throw;
}
}
}
хотя вроде должно было получиться:
public static void Save2File(string fn)
{
Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
try
{
stream.WriteByte(0);
}
finally
{
if (stream != null)
{
stream.Dispose();
}
}
}
или в идеале
public static void Save2File(string fn)
{
using (Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read))
{
stream.WriteByte(0);
}
}
uses System.Collections;
type
Base = class
procedure VirtProc; virtual; begin end;
end;
Base2 = class(Base)
procedure VirtProc; override; begin writeln('Derived'); end;
end;
AbsBase = abstract class
procedure VirtProc; virtual; begin end;
end;
AbsBase2 = class(AbsBase)
procedure VirtProc; override; begin writeln('Derived'); end; //Ошибка компиляции:Нет метода для переопределения
end;
begin
end.