fix #3050
This commit is contained in:
parent
90363ced45
commit
8f9dc7e5a0
|
|
@ -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 = "3427";
|
||||
public const string Revision = "3430";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=9
|
||||
%REVISION%=3427
|
||||
%COREVERSION%=0
|
||||
%REVISION%=3430
|
||||
%MINOR%=9
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.9.0.3427
|
||||
3.9.0.3430
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.9.0.3427'
|
||||
!define VERSION '3.9.0.3430'
|
||||
|
|
|
|||
|
|
@ -2357,10 +2357,9 @@ function DeleteObject(obj: IntPtr): integer; external 'Gdi32.dll' name 'DeleteOb
|
|||
function CreateCompatibleDC(obj: IntPtr): IntPtr; external 'Gdi32.dll' name 'CreateCompatibleDC';
|
||||
|
||||
procedure Picture.FloodFill(x, y: integer; c: Color);
|
||||
var
|
||||
hdc, hBrush, hOldBrush: IntPtr;
|
||||
//var hdc, hBrush, hOldBrush: IntPtr;
|
||||
begin
|
||||
var borderColor: Color := GetPixel(x, y);
|
||||
{var borderColor: Color := GetPixel(x, y);
|
||||
|
||||
var bc := ColorTranslator.ToWin32(borderColor);
|
||||
var cc := ColorTranslator.ToWin32(c);
|
||||
|
|
@ -2380,7 +2379,24 @@ begin
|
|||
|
||||
DeleteObject(hdc);
|
||||
|
||||
Monitor.Exit(f);
|
||||
Monitor.Exit(f);}
|
||||
var st := new Stack<Point>();
|
||||
var targetColor := bmp.GetPixel(x,y);
|
||||
st.Push(Pnt(x,y));
|
||||
while st.Count > 0 do
|
||||
begin
|
||||
var p := st.Pop;
|
||||
if (p.x < 0) or (p.x >= WindowWidth) or (p.y < 0) or (p.y >= WindowHeight) then
|
||||
continue;
|
||||
if bmp.GetPixel(p.x,p.y) = targetColor then
|
||||
begin
|
||||
bmp.SetPixel(p.x,p.y,c);
|
||||
st.Push(Pnt(p.x,p.y-1));
|
||||
st.Push(Pnt(p.x,p.y+1));
|
||||
st.Push(Pnt(p.x-1,p.y));
|
||||
st.Push(Pnt(p.x+1,p.y));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure Picture.Clear;
|
||||
|
|
|
|||
|
|
@ -2161,14 +2161,14 @@ function Copy(a: System.Array): System.Array;
|
|||
|
||||
/// Сортирует динамический массив по возрастанию
|
||||
procedure Sort<T>(a: array of T);
|
||||
/// Сортирует динамический массив по возрастанию
|
||||
procedure Sort(a: array of string);
|
||||
/// Сортирует динамический массив по критерию сортировки, задаваемому функцией сравнения cmp
|
||||
procedure Sort<T>(a: array of T; cmp: (T,T)->integer);
|
||||
/// Сортирует динамический массив по критерию сортировки, задаваемому функцией сравнения less
|
||||
procedure Sort<T>(a: array of T; less: (T,T)->boolean);
|
||||
/// Сортирует динамический массив по ключу
|
||||
procedure Sort<T,TKey>(a: array of T; keySelector: T->TKey);
|
||||
/// Сортирует динамический массив по возрастанию
|
||||
procedure Sort(a: array of string);
|
||||
/// Сортирует динамический массив по ключу
|
||||
procedure Sort<T>(a: array of T; keySelector: T->string);
|
||||
|
||||
|
|
@ -2184,10 +2184,15 @@ procedure Sort<T>(l: List<T>; less: (T,T)->boolean);
|
|||
procedure Sort<T,T1>(var l: List<T>; keySelector: T->T1);
|
||||
/// Сортирует список по возрастанию по ключу
|
||||
procedure Sort<T>(var l: List<T>; keySelector: T->string);
|
||||
|
||||
/// Сортирует динамический массив по убыванию
|
||||
procedure SortDescending<T>(a: array of T);
|
||||
/// Сортирует динамический массив по убыванию
|
||||
procedure SortDescending(a: array of string);
|
||||
/// Сортирует динамический массив по убыванию по ключу
|
||||
procedure SortDescending<T,T1>(var a: array of T; keySelector: T->T1);
|
||||
/// Сортирует динамический массив по убыванию по ключу
|
||||
procedure SortDescending<T>(var a: array of T; keySelector: T->string);
|
||||
/// Сортирует список по убыванию
|
||||
procedure SortDescending<T>(l: List<T>);
|
||||
/// Сортирует список по убыванию
|
||||
|
|
@ -8865,11 +8870,22 @@ begin
|
|||
Reverse(a);
|
||||
end;
|
||||
|
||||
procedure SortDescending(a: array of string);
|
||||
begin
|
||||
Sort(a);
|
||||
Reverse(a);
|
||||
end;
|
||||
|
||||
procedure SortDescending<T,T1>(var a: array of T; keySelector: T->T1);
|
||||
begin
|
||||
a := a.OrderByDescending(x->keySelector(x)).ToArray;
|
||||
end;
|
||||
|
||||
procedure SortDescending<T>(var a: array of T; keySelector: T->string);
|
||||
begin
|
||||
a := a.OrderByDescending(x->keySelector(x),System.StringComparer.Ordinal).ToArray;
|
||||
end;
|
||||
|
||||
procedure SortDescending<T>(l: List<T>);
|
||||
begin
|
||||
Sort(l);
|
||||
|
|
@ -12142,6 +12158,12 @@ begin
|
|||
System.Array.Sort(Self);
|
||||
end;
|
||||
|
||||
/// Сортирует массив по возрастанию
|
||||
procedure Sort(Self: array of string); extensionmethod;
|
||||
begin
|
||||
System.Array.Sort(Self,System.StringComparer.Ordinal);
|
||||
end;
|
||||
|
||||
/// Сортирует массив по убыванию
|
||||
procedure SortDescending<T>(Self: array of T); extensionmethod;
|
||||
begin
|
||||
|
|
@ -12149,6 +12171,13 @@ begin
|
|||
Reverse(Self);
|
||||
end;
|
||||
|
||||
/// Сортирует массив по убыванию
|
||||
procedure SortDescending(Self: array of string); extensionmethod;
|
||||
begin
|
||||
System.Array.Sort(Self,System.StringComparer.Ordinal);
|
||||
Reverse(Self);
|
||||
end;
|
||||
|
||||
/// Сортирует массив по возрастанию, используя cmp в качестве функции сравнения элементов
|
||||
procedure Sort<T>(Self: array of T; cmp: (T,T) ->integer); extensionmethod;
|
||||
begin
|
||||
|
|
@ -12162,6 +12191,13 @@ begin
|
|||
System.Array.Copy(a,Self,a.Length);
|
||||
end;
|
||||
|
||||
/// Сортирует массив по возрастанию по ключу
|
||||
procedure Sort<T>(Self: array of T; keySelector: T -> string); extensionmethod;
|
||||
begin
|
||||
var a := Self.OrderBy(keySelector,System.StringComparer.Ordinal).ToArray;
|
||||
System.Array.Copy(a,Self,a.Length);
|
||||
end;
|
||||
|
||||
/// Сортирует массив по убыванию по ключу
|
||||
procedure SortDescending<T,T1>(Self: array of T; keySelector: T -> T1); extensionmethod;
|
||||
begin
|
||||
|
|
@ -12169,6 +12205,14 @@ begin
|
|||
System.Array.Copy(a,Self,a.Length);
|
||||
end;
|
||||
|
||||
/// Сортирует массив по убыванию по ключу
|
||||
procedure SortDescending<T>(Self: array of T; keySelector: T -> string); extensionmethod;
|
||||
begin
|
||||
var a := Self.OrderByDescending(keySelector,System.StringComparer.Ordinal).ToArray;
|
||||
System.Array.Copy(a,Self,a.Length);
|
||||
end;
|
||||
|
||||
|
||||
/// Возвращает индекс последнего элемента массива
|
||||
function High(Self: System.Array); extensionmethod := High(Self);
|
||||
|
||||
|
|
|
|||
|
|
@ -3013,6 +3013,8 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
// Теперь раз в list осталась одна функция, найти её в functions и только её и оставить
|
||||
// Надо делать копию functions иначе это влияет на следующий код
|
||||
if (list[0].is_generic_function_instance)
|
||||
list[0] = list[0].original_function;
|
||||
var functions1 = functions.Where(fun => fun.sym_info == list[0]).ToList();
|
||||
if (functions1.Count == 0)
|
||||
return AddError<function_node>(new NoFunctionWithSameArguments(FunctionName, loc, true)); // это не должно случиться, но вдруг
|
||||
|
|
|
|||
|
|
@ -2357,10 +2357,9 @@ function DeleteObject(obj: IntPtr): integer; external 'Gdi32.dll' name 'DeleteOb
|
|||
function CreateCompatibleDC(obj: IntPtr): IntPtr; external 'Gdi32.dll' name 'CreateCompatibleDC';
|
||||
|
||||
procedure Picture.FloodFill(x, y: integer; c: Color);
|
||||
var
|
||||
hdc, hBrush, hOldBrush: IntPtr;
|
||||
//var hdc, hBrush, hOldBrush: IntPtr;
|
||||
begin
|
||||
var borderColor: Color := GetPixel(x, y);
|
||||
{var borderColor: Color := GetPixel(x, y);
|
||||
|
||||
var bc := ColorTranslator.ToWin32(borderColor);
|
||||
var cc := ColorTranslator.ToWin32(c);
|
||||
|
|
@ -2380,7 +2379,24 @@ begin
|
|||
|
||||
DeleteObject(hdc);
|
||||
|
||||
Monitor.Exit(f);
|
||||
Monitor.Exit(f);}
|
||||
var st := new Stack<Point>();
|
||||
var targetColor := bmp.GetPixel(x,y);
|
||||
st.Push(Pnt(x,y));
|
||||
while st.Count > 0 do
|
||||
begin
|
||||
var p := st.Pop;
|
||||
if (p.x < 0) or (p.x >= WindowWidth) or (p.y < 0) or (p.y >= WindowHeight) then
|
||||
continue;
|
||||
if bmp.GetPixel(p.x,p.y) = targetColor then
|
||||
begin
|
||||
bmp.SetPixel(p.x,p.y,c);
|
||||
st.Push(Pnt(p.x,p.y-1));
|
||||
st.Push(Pnt(p.x,p.y+1));
|
||||
st.Push(Pnt(p.x-1,p.y));
|
||||
st.Push(Pnt(p.x+1,p.y));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure Picture.Clear;
|
||||
|
|
|
|||
|
|
@ -2161,14 +2161,14 @@ function Copy(a: System.Array): System.Array;
|
|||
|
||||
/// Сортирует динамический массив по возрастанию
|
||||
procedure Sort<T>(a: array of T);
|
||||
/// Сортирует динамический массив по возрастанию
|
||||
procedure Sort(a: array of string);
|
||||
/// Сортирует динамический массив по критерию сортировки, задаваемому функцией сравнения cmp
|
||||
procedure Sort<T>(a: array of T; cmp: (T,T)->integer);
|
||||
/// Сортирует динамический массив по критерию сортировки, задаваемому функцией сравнения less
|
||||
procedure Sort<T>(a: array of T; less: (T,T)->boolean);
|
||||
/// Сортирует динамический массив по ключу
|
||||
procedure Sort<T,TKey>(a: array of T; keySelector: T->TKey);
|
||||
/// Сортирует динамический массив по возрастанию
|
||||
procedure Sort(a: array of string);
|
||||
/// Сортирует динамический массив по ключу
|
||||
procedure Sort<T>(a: array of T; keySelector: T->string);
|
||||
|
||||
|
|
@ -2184,10 +2184,15 @@ procedure Sort<T>(l: List<T>; less: (T,T)->boolean);
|
|||
procedure Sort<T,T1>(var l: List<T>; keySelector: T->T1);
|
||||
/// Сортирует список по возрастанию по ключу
|
||||
procedure Sort<T>(var l: List<T>; keySelector: T->string);
|
||||
|
||||
/// Сортирует динамический массив по убыванию
|
||||
procedure SortDescending<T>(a: array of T);
|
||||
/// Сортирует динамический массив по убыванию
|
||||
procedure SortDescending(a: array of string);
|
||||
/// Сортирует динамический массив по убыванию по ключу
|
||||
procedure SortDescending<T,T1>(var a: array of T; keySelector: T->T1);
|
||||
/// Сортирует динамический массив по убыванию по ключу
|
||||
procedure SortDescending<T>(var a: array of T; keySelector: T->string);
|
||||
/// Сортирует список по убыванию
|
||||
procedure SortDescending<T>(l: List<T>);
|
||||
/// Сортирует список по убыванию
|
||||
|
|
@ -8865,11 +8870,22 @@ begin
|
|||
Reverse(a);
|
||||
end;
|
||||
|
||||
procedure SortDescending(a: array of string);
|
||||
begin
|
||||
Sort(a);
|
||||
Reverse(a);
|
||||
end;
|
||||
|
||||
procedure SortDescending<T,T1>(var a: array of T; keySelector: T->T1);
|
||||
begin
|
||||
a := a.OrderByDescending(x->keySelector(x)).ToArray;
|
||||
end;
|
||||
|
||||
procedure SortDescending<T>(var a: array of T; keySelector: T->string);
|
||||
begin
|
||||
a := a.OrderByDescending(x->keySelector(x),System.StringComparer.Ordinal).ToArray;
|
||||
end;
|
||||
|
||||
procedure SortDescending<T>(l: List<T>);
|
||||
begin
|
||||
Sort(l);
|
||||
|
|
|
|||
|
|
@ -2127,6 +2127,9 @@
|
|||
<member name="M:Sort``1(``0[])">
|
||||
<summary>Сортирует динамический массив по возрастанию</summary>
|
||||
</member>
|
||||
<member name="M:Sort(System.String[])">
|
||||
<summary>Сортирует динамический массив по возрастанию</summary>
|
||||
</member>
|
||||
<member name="M:Sort``1(``0[],System.Func{``0,``0,System.Int32})">
|
||||
<summary>Сортирует динамический массив по критерию сортировки, задаваемому функцией сравнения cmp</summary>
|
||||
</member>
|
||||
|
|
@ -2136,9 +2139,6 @@
|
|||
<member name="M:Sort``2(``0[],System.Func{``0,``1})">
|
||||
<summary>Сортирует динамический массив по ключу</summary>
|
||||
</member>
|
||||
<member name="M:Sort(System.String[])">
|
||||
<summary>Сортирует динамический массив по возрастанию</summary>
|
||||
</member>
|
||||
<member name="M:Sort``1(``0[],System.Func{``0,System.String})">
|
||||
<summary>Сортирует динамический массив по ключу</summary>
|
||||
</member>
|
||||
|
|
@ -2163,9 +2163,15 @@
|
|||
<member name="M:SortDescending``1(``0[])">
|
||||
<summary>Сортирует динамический массив по убыванию</summary>
|
||||
</member>
|
||||
<member name="M:SortDescending(System.String[])">
|
||||
<summary>Сортирует динамический массив по убыванию</summary>
|
||||
</member>
|
||||
<member name="M:SortDescending``2(``0[]@,System.Func{``0,``1})">
|
||||
<summary>Сортирует динамический массив по убыванию по ключу</summary>
|
||||
</member>
|
||||
<member name="M:SortDescending``1(``0[]@,System.Func{``0,System.String})">
|
||||
<summary>Сортирует динамический массив по убыванию по ключу</summary>
|
||||
</member>
|
||||
<member name="M:SortDescending``1(System.Collections.Generic.List{``0})">
|
||||
<summary>Сортирует список по убыванию</summary>
|
||||
</member>
|
||||
|
|
|
|||
Loading…
Reference in a new issue