Небольшие упрощения в LightPT и TeacherControlPlugin.cs - теперь только при открытии щелчком по pas-файлу

This commit is contained in:
Mikhalkovich Stanislav 2023-07-11 19:54:15 +03:00
parent 1d28d5030b
commit 2a3a77d0f4
6 changed files with 33 additions and 24 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "9";
public const string Build = "0";
public const string Revision = "3307";
public const string Revision = "3308";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=9
%REVISION%=3307
%COREVERSION%=0
%REVISION%=3308
%MINOR%=9
%MAJOR%=3

View file

@ -1 +1 @@
3.9.0.3307
3.9.0.3308

View file

@ -1 +1 @@
!define VERSION '3.9.0.3307'
!define VERSION '3.9.0.3308'

View file

@ -199,16 +199,17 @@ namespace VisualPascalABCPlugins
// InitItems(MenuItems, ToolBarItems);
//else // это мехмат
// SSM 20/06/22 Решил включить плагин в инсталлят и показывать кнопки только если есть lightpt.dat в текущем или auth.dat в корне сетевого
// SSM 20/06/22 Решил включить плагин в инсталлят и показывать кнопки только если есть lightpt.dat в текущем
// или auth.dat в корне сетевого - убрал это 11.07.23 - только если при запуске lightpt.dat в текущем!!!
{
if (IsLightPTInWorkingDirectiry()) // если lightpt.dat существует в текущем
InitItems(MenuItems, ToolBarItems);
else
/*else
{
var AuthFileFullName = FullAuthNameFromNETDisk();
if (AuthFileFullName != "") // если auth.dat существует в корне сетевого диска
InitItems(MenuItems, ToolBarItems);
}
}*/
}
}
@ -235,6 +236,7 @@ namespace VisualPascalABCPlugins
{
// Попытка автоматического входа
// AuthFileFullName для мехмата был запомнен в GetGUI
// SSM 11/07/23 - нет, AuthFileFullName для мехмата отдельно теперь не перевычисляется для простоты!!!
// Нет - только на мехмате. Заполнить если дома!!!
// Думаю, здесь всё надо перевычислить. Начать с текущего, потом на уровень выше и потом в корень сетевого диска
@ -242,10 +244,10 @@ namespace VisualPascalABCPlugins
var AuthFileFullName = "";
if (IsLightPTInWorkingDirectiry()) // Только если lightPT.dat в текущем, ищем auth.dat в текущем или выше
AuthFileFullName = FullAuthNameFromWorkingDirOrParent();
if (AuthFileFullName == "" && IsMechmath)
/*if (AuthFileFullName == "" && IsMechmath)
{
AuthFileFullName = FullAuthNameFromNETDisk();
}
}*/
if (AuthFileFullName != "")
{
@ -272,18 +274,19 @@ namespace VisualPascalABCPlugins
private void ChangeArgsBeforeRunHandler(ref string args)
{
args += " " + loginForm.Authorized.ToString();
var FileName = Workbench.ServiceContainer.DocumentService.CurrentCodeFileDocument.FileName;
// Ладно - это текст
var text = Workbench.VisualEnvironmentCompiler.StandartCompiler.GetSourceFileText(FileName);
//text = System.Text.RegularExpressions.Regex.Replace(text, "\"", "\\\"");
if (text.Length > 5000)
text = text.Substring(0, 5000);
text = text.Replace("\\\"", "\\ \"");
text = text.Replace("\"", "\\\"");
//text = System.Text.RegularExpressions.Regex.Unescape(text);
args += " " + "\""+ text + "\"";
//args += " HelloBye23";
if (Item == null) // если нет кнопок с человечком, то в глобальную базу писаться не будет в принципе!
return;
args += " " + loginForm.Authorized.ToString();
if (loginForm.Authorized) // Параметр Текст программы добавляется только если зарегистрирован
{
var FileName = Workbench.ServiceContainer.DocumentService.CurrentCodeFileDocument.FileName;
var text = Workbench.VisualEnvironmentCompiler.StandartCompiler.GetSourceFileText(FileName);
if (text.Length > 5000)
text = text.Substring(0, 5000);
text = text.Replace("\\\"", "\\ \"");
text = text.Replace("\"", "\\\"");
args += " " + "\"" + text + "\"";
}
}
}
}

View file

@ -2159,12 +2159,18 @@ procedure WriteInfoToDatabases(LessonName,TaskName,TaskPlatform: string; TaskRes
begin
try
System.IO.File.AppendAllText('db.txt', $'{LessonName} {TaskName} {dateTime.Now.ToString(''u'')} {TaskResult.ToString} {AdditionalInfo}' + #10);
var auth := FindAuthDat();
except
on e: Exception do
ColoredMessage('Ошибка записи в файл db.txt. Обратитесь к преподавателю',MsgColorGray);
end;
// Разделили ошибки записи в локальную и глобальную базу
try
var auth := FindAuthDat(); // файл авторизации ищется либо в текущей папке либо в папке на уровень выше
var args := System.Environment.GetCommandLineArgs;
if (auth <> '') and (args.Length >= 3) and (args[2].ToLower = 'true') then
begin
var text := '';
if TaskResult <> InitialTask then
if (TaskResult <> InitialTask) and (args.Length >= 4) then
text := args[3];
// Есть проблема паузы при плохой сети
WriteInfoToRemoteDatabase(auth,LessonName,TaskName,TaskPlatform,TaskResult.ToString, text, AdditionalInfo);