GraphABC.pas - несущественные правки

This commit is contained in:
miks1965 2016-06-03 18:00:31 +03:00
parent 3e2be8178b
commit 143b118d66
7 changed files with 50 additions and 5 deletions

View file

@ -1401,5 +1401,10 @@ namespace PascalABCCompiler.SyntaxTree
// end frninja // end frninja
// SSM 02/06/16 - пробуем добавить кеш для семантического выражения
public partial class expression
{
}
} }

View file

@ -817,6 +817,7 @@ namespace PascalABCCompiler.TreeConverter
expression_node en = ret.visit(expr); expression_node en = ret.visit(expr);
//en.loc=get_location(expr); //en.loc=get_location(expr);
return en; return en;
} }

View file

@ -17,7 +17,7 @@
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath> <OutputPath>..\..\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>

View file

@ -5,7 +5,7 @@ begin
end; end;
begin begin
var q := Gen(); var q := Gen;
foreach var x in q do foreach var x in q do
Print(x); Print(x);
end. end.

View file

@ -333,6 +333,12 @@ procedure DrawTextCentered(x,y,x1,y1: integer; s: string);
procedure DrawTextCentered(x,y,x1,y1: integer; n: integer); procedure DrawTextCentered(x,y,x1,y1: integer; n: integer);
/// Выводит вещественное значение r, отцентрированное в прямоугольнике с координатами (x,y,x1,y1) /// Выводит вещественное значение r, отцентрированное в прямоугольнике с координатами (x,y,x1,y1)
procedure DrawTextCentered(x,y,x1,y1: integer; r: real); procedure DrawTextCentered(x,y,x1,y1: integer; r: real);
/// Выводит строку s, отцентрированное по точке с координатами (x,y)
procedure DrawTextCentered(x,y: integer; s: string);
/// Выводит целое n, отцентрированное по точке с координатами (x,y)
procedure DrawTextCentered(x,y: integer; n: integer);
/// Выводит вещественное r, отцентрированное по точке с координатами (x,y)
procedure DrawTextCentered(x,y: integer; r: real);
/// Заливает область одного цвета цветом c, начиная с точки (x,y). /// Заливает область одного цвета цветом c, начиная с точки (x,y).
procedure FloodFill(x,y: integer; c: Color); procedure FloodFill(x,y: integer; c: Color);
@ -837,7 +843,7 @@ type
/// Тип рисунка GraphABC /// Тип рисунка GraphABC
Picture = class Picture = class
private public
bmp,savedbmp: Bitmap; bmp,savedbmp: Bitmap;
gb: Graphics; gb: Graphics;
istransp: boolean; istransp: boolean;
@ -2571,6 +2577,30 @@ begin
DrawTextCentered(x,y,x1,y1,r.ToString(nfi)); DrawTextCentered(x,y,x1,y1,r.ToString(nfi));
end; end;
procedure DrawTextCentered(x,y: integer; s: string);
begin
Monitor.Enter(f);
if NotLockDrawing then
DrawTextCentered(x,y,s,gr);
if DrawInBuffer then
DrawTextCentered(x,y,s,gbmp);
Monitor.Exit(f);
end;
procedure DrawTextCentered(x,y: integer; n: integer);
begin
DrawTextCentered(x,y,n.ToString);
end;
procedure DrawTextCentered(x,y: integer; r: real);
begin
var nfi := new System.Globalization.NumberFormatInfo();
nfi.NumberGroupSeparator := '.';
DrawTextCentered(x,y,r.ToString(nfi));
end;
function Pnt(x,y: integer): Point; function Pnt(x,y: integer): Point;
begin begin
Result := new Point(x,y); Result := new Point(x,y);

View file

@ -1,4 +1,4 @@
// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt) // Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
unit GraphABCHelper; unit GraphABCHelper;
@ -47,6 +47,7 @@ procedure ClosedCurve(a: array of Point; gr: Graphics);
procedure TextOut(x,y: integer; s: string; gr: Graphics); procedure TextOut(x,y: integer; s: string; gr: Graphics);
procedure DrawTextCentered(x,y,x1,y1: integer; s: string; gr: Graphics); procedure DrawTextCentered(x,y,x1,y1: integer; s: string; gr: Graphics);
procedure DrawTextCentered(x,y: integer; s: string; gr: Graphics);
function GetView(b: Bitmap; r: System.Drawing.Rectangle): Bitmap; function GetView(b: Bitmap; r: System.Drawing.Rectangle): Bitmap;
function ImageIntersect(b1,b2: Bitmap): boolean; function ImageIntersect(b1,b2: Bitmap): boolean;
@ -386,6 +387,14 @@ begin
gr.DrawString(s,Font.NETFont,_CurrentTextBrush,new System.Drawing.RectangleF(x,y,x1-x,y1-y),sf); gr.DrawString(s,Font.NETFont,_CurrentTextBrush,new System.Drawing.RectangleF(x,y,x1-x,y1-y),sf);
end; end;
procedure DrawTextCentered(x,y: integer; s: string; gr: Graphics);
begin
var sf := new StringFormat();
sf.Alignment := StringAlignment.Center;
sf.LineAlignment := StringAlignment.Center;
gr.DrawString(s,Font.NETFont,_CurrentTextBrush,x,y,sf);
end;
var __initialized := false; var __initialized := false;

View file

@ -117,7 +117,7 @@ type
/// Представляет базовый класс для реализации интерфейса IComparer /// Представляет базовый класс для реализации интерфейса IComparer
Comparer<T> = System.Collections.Generic.Comparer<T>; Comparer<T> = System.Collections.Generic.Comparer<T>;
IComparable<T> = System.Collections.Generic.IComparable<T>; IComparable<T> = System.IComparable<T>;
/// Представляет множество значений, реализованное на базе хеш-таблицы /// Представляет множество значений, реализованное на базе хеш-таблицы
HashSet<T> = System.Collections.Generic.HashSet<T>; HashSet<T> = System.Collections.Generic.HashSet<T>;