Linux kchmviewer вызывается

This commit is contained in:
Mikhalkovich Stanislav 2023-01-11 17:57:09 +03:00
parent de9a369e22
commit 5bc3e7b60e
20 changed files with 9028 additions and 16 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "8";
public const string Build = "3";
public const string Revision = "3222";
public const string Revision = "3225";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%COREVERSION%=3
%REVISION%=3222
%MINOR%=8
%REVISION%=3225
%COREVERSION%=3
%MAJOR%=3

View file

@ -0,0 +1,54 @@
var dict := new SortedDictionary<string,List<string>>;
function DictToItems: string;
begin
var sb := new StringBuilder;
foreach var kv in dict do
begin
sb.AppendLine('<LI> <OBJECT type="text/sitemap">');
sb.AppendLine($' <param name="Name" value="{kv.Key}">');
foreach var v in kv.Value do
sb.AppendLine($' <param name="Local" value="{v}">');
sb.AppendLine('</OBJECT>');
end;
Result := sb.ToString;
end;
begin
var tt := ReadAllText('Table of Contents New.hhc');
var filesmatch := tt.Matches('<param name="Local" value="([\w\\\. ]*)">');
foreach var fmatch in filesmatch do
begin
var fname := fmatch.Groups[1].Value;
//Println(fname);
var txt := ReadAllText('.\'+fname);
var mm := txt.Matches('<param name="Keyword" value="([\w\\\. ]*)">');
foreach var m in mm do
begin
var keyword := m.Groups[1];
var s := keyword.ToString.Trim;
if s.Length > 0 then
begin
if s not in dict then
dict[s] := new List<string>;
dict[s].Add(fname)
end;
end;
end;
//dict.PrintLines;
var s :=
'<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">'+NewLine+
'<HTML>'+NewLine+
'<HEAD>'+NewLine+
'<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'+NewLine+
'<!-- Sitemap 1.0 -->'+NewLine+
'</HEAD><BODY>'+NewLine+
'<UL>'+NewLine+
DictToItems +
'</UL>'+NewLine+
'</BODY></HTML>'
;
WriteAllText('Index.hhk',s);
end.

View file

@ -4,6 +4,6 @@ cd DocGenForStandardUnits
!GenDocWPFObjects.exe
!GenDocGraph3D.exe
cd ..
"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" PascalABCNET.hhp
"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" PascalABCNETNew.hhp
copy PascalABCNET.chm ..\bin\PascalABCNET.chm
copy PascalABCNET.chm ..\Release\PascalABCNET.chm

7247
PABCNetHelp/Index.hhk Normal file

File diff suppressed because it is too large Load diff

View file

@ -44,7 +44,7 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает True если целое не делится на указанное значение</td></tr>
<tr><td><code><b>function</b> Range(Self: integer): <b>sequence </b> <b>of</b> integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает последовательность чисел от 1 до данного</td></tr>
<tr><td><code><b>function</b> Sqr(Self: integer): integer;</code>
<tr><td><code><b>function</b> Sqr(Self: integer): int64;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает квадрат числа</td></tr>
<tr><td><code><b>function</b> Sqrt(Self: integer): real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает квадратный корень числа</td></tr>

View file

@ -102,7 +102,7 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Нумерует последовательность с единицы</td></tr>
<tr><td><code><b>function</b> Numerate&lt;T&gt;(Self: <b>sequence </b> <b>of</b> T; from: integer): <b>sequence </b> <b>of</b> (integer, T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Нумерует последовательность с номера from</td></tr>
<tr><td><code><b>function</b> Nwise&lt;T&gt;(Self: <b>sequence </b> <b>of</b> T; n: integer):<b>sequence </b> <b>of</b> <b>array</b> <b>of</b> T;</code>
<tr><td><code><b>function</b> Nwise&lt;T&gt;(Self: <b>sequence </b> <b>of</b> T; n: integer): <b>sequence </b> <b>of</b> <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Превращает последовательность в последовательность n-ок соседних элементов</td></tr>
<tr><td><code><b>function</b> Order&lt;T&gt;(Self: <b>sequence </b> <b>of</b> T): <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Возвращает отсортированную по возрастанию последовательность</td></tr>

View file

@ -49,6 +49,8 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ââîäèò çíà÷åíèÿ a,b,... èç ôàéëà f</td></tr>
<tr><td><code><b>function</b> ReadBigInteger: BigInteger;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò çíà÷åíèå òèïà BigInteger, ââåäåííîå ñ êëàâèàòóðû</td></tr>
<tr><td><code><b>function</b> ReadBigInteger(prompt: string): BigInteger;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò ïðèãëàøåíèå ê ââîäó è âîçâðàùàåò çíà÷åíèå òèïà BigInteger, ââåäåííîå ñ êëàâèàòóðû</td></tr>
<tr><td><code><b>function</b> ReadBoolean: boolean;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò çíà÷åíèå òèïà boolean, ââåäåííîå ñ êëàâèàòóðû</td></tr>
<tr><td><code><b>function</b> ReadBoolean(prompt: string): boolean;</code>
@ -107,6 +109,8 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ââîäèò çíà÷åíèÿ a,b,... èç òåêñòîâîãî ôàéëà f è îñóùåñòâëÿåò ïåðåõîä íà ñëåäóþùóþ ñòðîêó</td></tr>
<tr><td><code><b>function</b> ReadlnBigInteger: BigInteger;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò çíà÷åíèå òèïà BigInteger, ââåäåííîå ñ êëàâèàòóðû, è ïåðåõîäèò íà ñëåäóþùóþ ñòðîêó ââîäà</td></tr>
<tr><td><code><b>function</b> ReadlnBigInteger(prompt: string): BigInteger;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîäèò ïðèãëàøåíèå ê ââîäó è âîçâðàùàåò çíà÷åíèå òèïà BigInteger, ââåäåííîå ñ êëàâèàòóðû,è îñóùåñòâëÿåò ïåðåõîä íà ñëåäóþùóþ ñòðîêó ââîäà</td></tr>
<tr><td><code><b>function</b> ReadlnBoolean: boolean;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò çíà÷åíèå òèïà boolean, ââåäåííîå ñ êëàâèàòóðû, è ïåðåõîäèò íà ñëåäóþùóþ ñòðîêó ââîäà</td></tr>
<tr><td><code><b>function</b> ReadlnBoolean(prompt: string): boolean;</code>

View file

@ -13,7 +13,7 @@
<param name="Keyword" value="Then">
<param name="Keyword" value="WhenCompleted"></object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="StyleSheet" href="../../../default.css">
</HEAD><body><H1>Graph3D: êëàññ AnimationBase</H1>Áàçîâûé êëàññ àíèìàöèè 3D-îáúåêòîâ.
</HEAD><body><H1>Graph3D: êëàññ AnimationBase</H1>Áàçîâûé êëàññ àíèìàöèè 3D-îáúåêòîâ. Áàçîâûé êëàññ - <code>Object</code>.
<table border=0 cellpadding=5><tr><td></td></tr><tr><td class="secttitle"><font style="font-size: 11pt">Ìåòîäû êëàññà AnimationBase</font></td></tr>
<tr><tr><td><code><b>function</b> AccelerationRatio(acceleration: real; deceleration: real := 0): AnimationBase; <b>virtual</b>;</code>

View file

@ -7,6 +7,7 @@
<param name="Keyword" value="OnMouseDown">
<param name="Keyword" value="OnMouseMove">
<param name="Keyword" value="OnMouseUp">
<param name="Keyword" value="OnMouseWheel">
<param name="Keyword" value="OnResize"></object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="StyleSheet" href="../../../default.css">
</HEAD><body><H1>Ñîáûòèÿ ìîäóëÿ GraphWPF</H1>
@ -16,6 +17,8 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ñîáûòèå îòæàòèÿ êíîïêè ìûøè. (x,y) - êîîðäèíàòû êóðñîðà ìûøè â ìîìåíò íàñòóïëåíèÿ ñîáûòèÿ, mousebutton = 1, åñëè îòæàòà ëåâàÿ êíîïêà ìûøè, è 2, åñëè îòæàòà ïðàâàÿ êíîïêà ìûøè</td></tr>
<tr><td><code>OnMouseMove: <b>procedure</b>(x, y: real; mousebutton: integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ñîáûòèå ïåðåìåùåíèÿ ìûøè. (x,y) - êîîðäèíàòû êóðñîðà ìûøè â ìîìåíò íàñòóïëåíèÿ ñîáûòèÿ, mousebutton = 0, åñëè êíîïêà ìûøè íå íàæàòà, 1, åñëè íàæàòà ëåâàÿ êíîïêà ìûøè, è 2, åñëè íàæàòà ïðàâàÿ êíîïêà ìûøè</td></tr>
<tr><td><code>OnMouseWheel: <b>procedure</b>(delta: real);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ñîáûòèå ïðîêðóòêè êîë¸ñèêà ìûøè. delta - âåëè÷èíà ïðîêðóòêè: delta &gt; 0 - îò ïîëüçîâàòåëÿ, delta &lt; 0 - ê ïîëüçîâàòåëþ</td></tr>
<tr><td><code>OnKeyDown: <b>procedure</b>(k: Key);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ñîáûòèå íàæàòèÿ êëàâèøè</td></tr>
<tr><td><code>OnKeyUp: <b>procedure</b>(k: Key);</code>

View file

@ -0,0 +1,14 @@
[OPTIONS]
Auto Index=Yes
Compatibility=1.1 or later
Compiled file=PascalABCNET.chm
Contents file=Table of Contents New.hhc
Default Font=Arial,9,0
Default topic=Common\main.html
Display compile progress=No
Index file=Index.hhk
Language=0x419 Ðóññêèé (Ðîññèÿ)
[INFOTYPES]

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
3.8.3.3222
3.8.3.3225

View file

@ -1 +1 @@
!define VERSION '3.8.3.3222'
!define VERSION '3.8.3.3225'

View file

@ -1161,7 +1161,7 @@ type
//>> Graph3D: класс AnimationBase # Graph3D AnimationBase class
// -----------------------------------------------------
/// Базовый класс анимации 3D-объектов
AnimationBase = class
AnimationBase = class(Object)
private
Element: Object3D;
Seconds: real;

View file

@ -576,6 +576,8 @@ namespace PascalABCCompiler.TreeRealization
break;
}
// Тут можно проверить на ковариантность
// еще где то надо проверять, что IEnumerable<Derived> -> IEnumerable<Base>, но здесь base_class предполагает,
// что это - класс, и рассматривает все его интерфейсы, упуская ситуацию, когда base_class - это и есть интерфейс
else if (interf is compiled_generic_instance_type_node cgitn && base_class is compiled_generic_instance_type_node bcgitn)
{
if (cgitn.original_generic != null && cgitn.original_generic == bcgitn.original_generic)

View file

@ -208,14 +208,16 @@ namespace VisualPascalABC
}
else*/
{
Help.ShowHelp(null, HelpFileName, HelpNavigator.TableOfContents);
Help.ShowHelp(null, HelpFileName, HelpNavigator.KeywordIndex, tw.Word);
ShowHelpLinux("-index "+ tw.Word);
//Help.ShowHelp(null, HelpFileName, HelpNavigator.TableOfContents);
//Help.ShowHelp(null, HelpFileName, HelpNavigator.KeywordIndex, tw.Word);
}
}
else
{
Help.ShowHelp(null, HelpFileName, HelpNavigator.KeywordIndex, "PascalABC"); // ôèêòèâíûé âûçîâ. Íóæåí ÷òîáû îêíî ñïðàâêè íå ïîêàçûâàëîñü Always on Top
Help.ShowHelp(null, HelpFileName);
ShowHelpLinux();
//Help.ShowHelp(null, HelpFileName, HelpNavigator.KeywordIndex, "PascalABC"); // ôèêòèâíûé âûçîâ. Íóæåí ÷òîáû îêíî ñïðàâêè íå ïîêàçûâàëîñü Always on Top
//Help.ShowHelp(null, HelpFileName);
}
}
@ -226,7 +228,8 @@ namespace VisualPascalABC
void __showhelp(object state)
{
Help.ShowHelp(null, HelpFileName);//zdes dolzhen stojat null, inache gluki pri perekluchenii okon
ShowHelpLinux();
//Help.ShowHelp(null, HelpFileName);//zdes dolzhen stojat null, inache gluki pri perekluchenii okon
}
void __showdotnethelp(object state)
@ -239,6 +242,20 @@ namespace VisualPascalABC
if (!ThreadPool.QueueUserWorkItem(__showhelp))
__showhelp(null);
}
void ShowHelpLinux(string commandline = "")
{
try
{
if (commandline == "")
System.Diagnostics.Process.Start("kchmviewer", HelpFileName);
else System.Diagnostics.Process.Start("kchmviewer", HelpFileName + " " + commandline);
}
catch (Exception)
{
}
}
}
}

View file

@ -1161,7 +1161,7 @@ type
//>> Graph3D: класс AnimationBase # Graph3D AnimationBase class
// -----------------------------------------------------
/// Базовый класс анимации 3D-объектов
AnimationBase = class
AnimationBase = class(Object)
private
Element: Object3D;
Seconds: real;

Binary file not shown.

Binary file not shown.