mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-26 13:57:37 +01:00
PoChecker:
- refactor the graphical summary form * use TListView with TImageList - regenerate language files git-svn-id: trunk@46256 -
This commit is contained in:
parent
0813f5c4ce
commit
c78be04ea9
@ -3,22 +3,75 @@ object GraphStatForm: TGraphStatForm
|
|||||||
Height = 544
|
Height = 544
|
||||||
Top = 116
|
Top = 116
|
||||||
Width = 636
|
Width = 636
|
||||||
HorzScrollBar.Page = 602
|
|
||||||
HorzScrollBar.Range = 4000
|
|
||||||
HorzScrollBar.Visible = False
|
|
||||||
VertScrollBar.Page = 510
|
|
||||||
VertScrollBar.Range = 4000
|
|
||||||
BorderStyle = bsDialog
|
|
||||||
Caption = 'Graphical summary'
|
Caption = 'Graphical summary'
|
||||||
ClientHeight = 544
|
ClientHeight = 544
|
||||||
ClientWidth = 619
|
ClientWidth = 636
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
|
OnDestroy = FormDestroy
|
||||||
OnShow = FormShow
|
OnShow = FormShow
|
||||||
LCLVersion = '1.3'
|
LCLVersion = '1.3'
|
||||||
object Img: TImage
|
object LegendPanel: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 4000
|
Height = 80
|
||||||
Top = 0
|
Top = 464
|
||||||
Width = 4000
|
Width = 636
|
||||||
|
Align = alBottom
|
||||||
|
ClientHeight = 80
|
||||||
|
ClientWidth = 636
|
||||||
|
TabOrder = 0
|
||||||
|
object TranslatedShape: TShape
|
||||||
|
Left = 24
|
||||||
|
Height = 16
|
||||||
|
Top = 16
|
||||||
|
Width = 65
|
||||||
|
end
|
||||||
|
object UnTranslatedShape: TShape
|
||||||
|
Left = 24
|
||||||
|
Height = 16
|
||||||
|
Top = 35
|
||||||
|
Width = 65
|
||||||
|
end
|
||||||
|
object FuzzyShape: TShape
|
||||||
|
Left = 24
|
||||||
|
Height = 16
|
||||||
|
Top = 54
|
||||||
|
Width = 65
|
||||||
|
end
|
||||||
|
object TranslatedLabel: TLabel
|
||||||
|
Left = 104
|
||||||
|
Height = 15
|
||||||
|
Top = 17
|
||||||
|
Width = 83
|
||||||
|
Caption = 'TranslatedLabel'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object UnTranslatedLabel: TLabel
|
||||||
|
Left = 104
|
||||||
|
Height = 15
|
||||||
|
Top = 36
|
||||||
|
Width = 98
|
||||||
|
Caption = 'UnTranslatedLabel'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object FuzzyLabel: TLabel
|
||||||
|
Left = 104
|
||||||
|
Height = 15
|
||||||
|
Top = 55
|
||||||
|
Width = 57
|
||||||
|
Caption = 'FuzzyLabel'
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object ListView: TListView
|
||||||
|
Left = 40
|
||||||
|
Height = 150
|
||||||
|
Top = 32
|
||||||
|
Width = 250
|
||||||
|
AutoSort = False
|
||||||
|
Columns = <>
|
||||||
|
ReadOnly = True
|
||||||
|
ScrollBars = ssAutoBoth
|
||||||
|
TabOrder = 1
|
||||||
|
ViewStyle = vsIcon
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -6,28 +6,31 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||||
PoFamilies, PoCheckerConsts, Math, LCLProc;
|
PoFamilies, PoCheckerConsts, LCLProc, StdCtrls, ComCtrls;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ TGraphStatForm }
|
{ TGraphStatForm }
|
||||||
|
|
||||||
TGraphStatForm = class(TForm)
|
TGraphStatForm = class(TForm)
|
||||||
Img: TImage;
|
ListView: TListView;
|
||||||
|
TranslatedLabel: TLabel;
|
||||||
|
UnTranslatedLabel: TLabel;
|
||||||
|
FuzzyLabel: TLabel;
|
||||||
|
LegendPanel: TPanel;
|
||||||
|
TranslatedShape: TShape;
|
||||||
|
UnTranslatedShape: TShape;
|
||||||
|
FuzzyShape: TShape;
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure FormDestroy(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ private declarations }
|
{ private declarations }
|
||||||
WidthPerStat: Integer;
|
|
||||||
HeightPerStat: Integer;
|
|
||||||
LegHeight: Integer;
|
|
||||||
SingleLegItemHeight: Integer;
|
|
||||||
FPoFamilyStats: TPoFamilyStats;
|
FPoFamilyStats: TPoFamilyStats;
|
||||||
procedure CalcBoundsRequiredPerStat(out AWidth, AHeight: Integer);
|
FImgList: TImageList;
|
||||||
procedure PrepareDimensions;
|
function CreateBitmap(AStat: TStat): TBitmap;
|
||||||
|
procedure AddToListView(AStat: TStat; ABmp: TBitmap);
|
||||||
procedure DrawGraphs;
|
procedure DrawGraphs;
|
||||||
procedure DrawGraph(AStat: TStat; ARow, ACol: Integer);
|
|
||||||
procedure DrawLegenda;
|
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
property PoFamilyStats: TPoFamilyStats read FPoFamilyStats write FPoFamilyStats;
|
property PoFamilyStats: TPoFamilyStats read FPoFamilyStats write FPoFamilyStats;
|
||||||
@ -40,213 +43,140 @@ implementation
|
|||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
const
|
|
||||||
Radius = 30;
|
|
||||||
Cols = 4;
|
|
||||||
clBack = clWhite;
|
|
||||||
clPie = clForm;
|
|
||||||
clTrans = clGreen;
|
|
||||||
clUnTrans = clRed;
|
|
||||||
clFuzzy = clFuchsia;
|
|
||||||
clCircle = clBlack;
|
|
||||||
clTxt = clBlack;
|
|
||||||
LMargin = 10;
|
|
||||||
RMargin = 10;
|
|
||||||
TMargin = 10;
|
|
||||||
BMargin = 10;
|
|
||||||
TxtMargin = 5;
|
|
||||||
LegTMargin = 40;
|
|
||||||
LegBMargin = 10;
|
|
||||||
LegLMargin = LMargin;
|
|
||||||
LegBarHeight = 20;
|
|
||||||
LegBarWidth = 40;
|
|
||||||
|
|
||||||
{ TGraphStatForm }
|
{ TGraphStatForm }
|
||||||
|
|
||||||
|
const
|
||||||
|
Radius = 40; //when we have anti-aliasing we can reduce this
|
||||||
|
BmpWH = 2 * Radius;
|
||||||
|
clBackGround = clWhite;
|
||||||
|
clTranslated = clGreen;
|
||||||
|
clUnTranslated = clRed;
|
||||||
|
clFuzzy = clFuchsia;
|
||||||
|
|
||||||
|
{
|
||||||
|
ListView
|
||||||
|
@designtime
|
||||||
|
AutoSort := False
|
||||||
|
ReadOnly := True
|
||||||
|
ScrollBars := ssAutoBoth
|
||||||
|
ViewStyle := vsIcon
|
||||||
|
|
||||||
|
@runtime
|
||||||
|
Color := clBackGround
|
||||||
|
LargeImages := FImgList;
|
||||||
|
Align := alClient;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
procedure TGraphStatForm.FormShow(Sender: TObject);
|
procedure TGraphStatForm.FormShow(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
PrepareDimensions;
|
|
||||||
DrawGraphs;
|
DrawGraphs;
|
||||||
DrawLegenda;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TGraphStatForm.FormCreate(Sender: TObject);
|
procedure TGraphStatForm.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Caption := sGrapStatFormCaption;
|
Caption := sGrapStatFormCaption;
|
||||||
|
TranslatedLabel.Caption := sTranslated;
|
||||||
|
UntranslatedLabel.Caption := sUnTranslated;
|
||||||
|
FuzzyLabel.Caption := sFuzzy;
|
||||||
|
TranslatedShape.Brush.Color := clTranslated;
|
||||||
|
UnTranslatedShape.Brush.Color := clUntranslated;
|
||||||
|
FuzzyShape.Brush.Color := clFuzzy;
|
||||||
|
ListView.Color := clBackGround;
|
||||||
|
ListView.Align := alClient;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGraphStatForm.CalcBoundsRequiredPerStat(out AWidth, AHeight: Integer);
|
procedure TGraphStatForm.FormDestroy(Sender: TObject);
|
||||||
var
|
|
||||||
i, TW, TH, MaxTH: Integer;
|
|
||||||
Stat: TStat;
|
|
||||||
begin
|
begin
|
||||||
AWidth := 2 * Radius;
|
if Assigned(FImgList) then FImgList.Free;
|
||||||
MaxTH := 0;
|
end;
|
||||||
for i := 0 to FPoFamilyStats.Count - 1 do
|
|
||||||
|
function TGraphStatForm.CreateBitmap(AStat: TStat): TBitmap;
|
||||||
|
const
|
||||||
|
FullCircle = 16 * 360;
|
||||||
|
var
|
||||||
|
Bmp: TBitmap;
|
||||||
|
Translated16Angle, UnTranslated16Angle, Fuzzy16Angle: Integer;
|
||||||
|
PieRect: TRect;
|
||||||
|
begin
|
||||||
|
Bmp := TBitmap.Create;
|
||||||
|
Bmp.SetSize(BmpWH,BmpWH);
|
||||||
|
PieRect := Rect(0,0,BmpWH, BmpWH);
|
||||||
|
with Bmp do
|
||||||
begin
|
begin
|
||||||
Stat := FPoFamilyStats.Items[i];
|
//Draw background
|
||||||
TW := Img.Canvas.TextWidth(Stat.PoName);
|
Canvas.Brush.Color := clBackGround;
|
||||||
TH := Img.Canvas.TextHeight(Stat.PoName);
|
Canvas.FillRect(PieRect);
|
||||||
if TW > AWidth then AWidth := TW;
|
Canvas.Pen.Color := clBackGround;
|
||||||
if TH > MaxTH then MaxTH := TH;
|
//All angles in 16th of a degree
|
||||||
|
Translated16Angle := Round(AStat.FracTranslated * FullCircle);
|
||||||
|
UnTranslated16Angle := Round(AStat.FracUntranslated * FullCircle);
|
||||||
|
Fuzzy16Angle := Round(AStat.FracFuzzy * FullCircle);
|
||||||
|
|
||||||
|
if Translated16Angle > 0 then
|
||||||
|
begin
|
||||||
|
Canvas.Brush.Color:= clTranslated;
|
||||||
|
if Translated16Angle = FullCircle then
|
||||||
|
Canvas.Ellipse(PieRect)
|
||||||
|
else
|
||||||
|
Canvas.RadialPie(PieRect.Left,PieRect.Top,PieRect.Right,PieRect.Bottom,0,Translated16Angle);;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if UnTranslated16Angle > 0 then
|
||||||
|
begin
|
||||||
|
Canvas.Brush.Color:= clUnTranslated;
|
||||||
|
if UnTranslated16Angle = FullCircle then
|
||||||
|
Canvas.Ellipse(PieRect)
|
||||||
|
else
|
||||||
|
Canvas.RadialPie(PieRect.Left,PieRect.Top,PieRect.Right,PieRect.Bottom,Translated16Angle,UnTranslated16Angle);;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if Fuzzy16Angle > 0 then
|
||||||
|
begin
|
||||||
|
Canvas.Brush.Color:= clFuzzy;
|
||||||
|
if Fuzzy16Angle = FullCircle then
|
||||||
|
Canvas.Ellipse(PieRect)
|
||||||
|
else
|
||||||
|
Canvas.RadialPie(PieRect.Left,PieRect.Top,PieRect.Right,PieRect.Bottom,Translated16Angle+UnTranslated16Angle,Fuzzy16Angle);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
//Add margins
|
Result := Bmp;
|
||||||
AWidth := AWidth + LMargin + RMargin; //L+R
|
|
||||||
AHeight := TMargin + 2 * Radius + TxtMargin + MaxTH + BMargin; //Top+distance between text and graph+Bottom
|
|
||||||
//Debugln('TGraphStatForm.CalcBoundsRequiredPerStat: AWidth = ',DbgS(AWidth),' AHeight = ',DbgS(AHeight),' MaxTH = ',DbgS(MaxTH));
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGraphStatForm.PrepareDimensions;
|
procedure TGraphStatForm.AddToListView(AStat: TStat; ABmp: TBitmap);
|
||||||
var
|
var
|
||||||
Rows, IHeight: Integer;
|
ImgIndex: Integer;
|
||||||
|
ListItem: TListItem;
|
||||||
begin
|
begin
|
||||||
CalcBoundsRequiredPerStat(WidthPerStat, HeightPerStat);
|
ImgIndex := FImgList.AddMasked(ABmp, clBackGround);
|
||||||
Img.Width := Cols * WidthPerStat;
|
ListItem := ListView.Items.Add;
|
||||||
Rows := Ceil(PoFamilyStats.Count / Cols);
|
ListItem.Caption := AStat.PoName;
|
||||||
IHeight := HeightPerStat * Rows;
|
ListItem.ImageIndex := ImgIndex;
|
||||||
SingleLegItemHeight := Max(Img.Canvas.TextHeight('qWM'), LegBarHeight);
|
|
||||||
LegHeight := LegTMargin + TxtMargin + (3 * SingleLegItemHeight + TxtMargin) + LegBMargin;
|
|
||||||
IHeight := IHeight + LegHeight;
|
|
||||||
|
|
||||||
ClientWidth := Img.Width;
|
|
||||||
Img.Height := IHeight;
|
|
||||||
Img.Height := IHeight;
|
|
||||||
//DebugLn('TGraphStatForm.FormShow: Img.Width -> ',DbgS(Img.Width), ' Canvas.Width = ',DbgS(Img.Canvas.Width));
|
|
||||||
//DebugLn('TGraphStatForm.FormShow: Img.Height -> ',DbgS(Img.Height),' Canvas.Heigth = ',DbgS(Img.Canvas.Height));
|
|
||||||
ClientHeight := Min(Screen.Height - 50, Img.Height);
|
|
||||||
VertScrollBar.Visible := (ClientHeight < Img.Height);
|
|
||||||
if Top + ClientHeight + 50 > Screen.Height then Top := 0;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGraphStatForm.DrawGraphs;
|
procedure TGraphStatForm.DrawGraphs;
|
||||||
var
|
var
|
||||||
Index, ARow, ACol: Integer;
|
Bmp: TBitmap;
|
||||||
|
AStat: TStat;
|
||||||
|
Index: Integer;
|
||||||
begin
|
begin
|
||||||
//debugln('TGraphStatForm.DrawGraphs: FPoFamilyStats.Count = ',DbgS(FPoFamilyStats.Count));
|
if Assigned(FImgList) then FImgList.Free;
|
||||||
Img.Canvas.Brush.Color := clBack;
|
FImgList := TImageList.CreateSize(BmpWH, BmpWH);
|
||||||
Img.Canvas.Clear;
|
ListView.LargeImages := FImgList;
|
||||||
Img.Canvas.FillRect(0,0,Img.Width,Img.Height);
|
ListView.BeginUpdate;
|
||||||
for Index := 0 to FPoFamilyStats.Count - 1 do
|
try
|
||||||
begin
|
for Index := 0 to FPoFamilyStats.Count - 1 do
|
||||||
ARow := Index mod Cols;
|
begin
|
||||||
ACol := Index div Cols;
|
AStat := FPoFamilyStats.Items[Index];
|
||||||
DrawGraph(FPoFamilyStats.Items[Index], ARow, ACol);
|
Bmp := CreateBitmap(AStat);
|
||||||
end;
|
AddToListView(AStat, Bmp);
|
||||||
end;
|
Bmp.Free;
|
||||||
|
end;
|
||||||
procedure TGraphStatForm.DrawGraph(AStat: TStat; ARow, ACol: Integer);
|
finally
|
||||||
var
|
ListView.EndUpdate;
|
||||||
X,Y, TW: Integer;
|
|
||||||
Origo: TPoint;
|
|
||||||
OrigoCol, PixCol: TColor;
|
|
||||||
begin
|
|
||||||
//debugln('TGraphStatForm.DrawGraph: PoName = ',DbgS(AStat.PoName));
|
|
||||||
Origo.X := (ARow * WidthPerStat) + (WidthPerStat div 2);
|
|
||||||
Origo.Y := (ACol * HeightPerStat) + Radius + TMargin;
|
|
||||||
//debugln('TGraphStatForm.DrawGraph: ARow = ',DbgS(ARow),' ACol = ',DbgS(ACol));
|
|
||||||
//debugln('TGraphStatForm.DrawGraph: Origo.X = ',DbgS(Origo.X),' Origo.Y = ',DbgS(Origo.Y));
|
|
||||||
|
|
||||||
{
|
|
||||||
Img.Canvas.Pen.Color := clCircle;
|
|
||||||
Img.Canvas.Brush.Color := clPie;
|
|
||||||
Img.Canvas.EllipseC(Origo.X,Origo.Y,Radius,Radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
with Img do
|
|
||||||
begin
|
|
||||||
//First draw a circle
|
|
||||||
Canvas.Brush.Color := clPie;
|
|
||||||
Canvas.Pen.Color := clCircle;
|
|
||||||
Canvas.EllipseC(Origo.X,Origo.Y,Radius,Radius);
|
|
||||||
|
|
||||||
//Draw the Translated section
|
|
||||||
Canvas.MoveTo(Origo);
|
|
||||||
Canvas.LineTo(Origo.X + Radius, Origo.Y);
|
|
||||||
Canvas.MoveTo(Origo);
|
|
||||||
|
|
||||||
X := Origo.X + Round(Cos(AStat.FracTranslated * (2 * pi)) * Radius);
|
|
||||||
Y := Origo.Y - Round(Sin(AStat.FracTranslated * (2 * pi)) * Radius);
|
|
||||||
Canvas.LineTo(X, Y);
|
|
||||||
OrigoCol := Canvas.Pixels[Origo.X,Origo.Y];
|
|
||||||
//Calculate a point inside the section
|
|
||||||
X := Origo.X + Round(Cos((AStat.FracTranslated/2) * (2 * pi)) * (Radius - 3));
|
|
||||||
Y := Origo.Y - Round(Sin((AStat.FracTranslated/2) * (2 * pi)) * (Radius - 3));
|
|
||||||
Canvas.Brush.Color := clTrans;
|
|
||||||
PixCol := Canvas.Pixels[X,Y];
|
|
||||||
//Don't FloodFill if the section has no visible pixels on the screen
|
|
||||||
if (PixCol <> OrigoCol) then Canvas.FloodFill(X,Y,PixCol,fsSurface);
|
|
||||||
|
|
||||||
|
|
||||||
//Draw the UnTranslated section
|
|
||||||
Canvas.MoveTo(Origo);
|
|
||||||
X := Origo.X + Round(Cos((AStat.FracTranslated+AStat.FracUnTranslated) * 2 * pi) * Radius);
|
|
||||||
Y := Origo.Y - Round(Sin((AStat.FracTranslated+AStat.FracUnTranslated) * 2 * pi) * Radius);
|
|
||||||
Canvas.LineTo(X, Y);
|
|
||||||
//Calculate a point inside the section
|
|
||||||
X := Origo.X + Round(Cos((AStat.FracTranslated+AStat.FracUnTranslated/2) * (2 * pi)) * (Radius - 3));
|
|
||||||
Y := Origo.Y - Round(Sin((AStat.FracTranslated+AStat.FracUnTranslated/2) * (2 * pi)) * (Radius - 3));
|
|
||||||
Canvas.Brush.Color := clUnTrans;
|
|
||||||
PixCol := Canvas.Pixels[X,Y];
|
|
||||||
//Don't FloodFill if the section has no visible pixels on the screen
|
|
||||||
if (PixCol <> OrigoCol) then Canvas.FloodFill(X,Y,PixCol,fsSurface);
|
|
||||||
|
|
||||||
|
|
||||||
//Draw the Fuzzy section
|
|
||||||
Canvas.MoveTo(Origo);
|
|
||||||
X := Origo.X + Round(Cos((AStat.FracTranslated+AStat.FracUnTranslated+AStat.FracFuzzy) * 2 * pi) * Radius);
|
|
||||||
Y := Origo.Y - Round(Sin((AStat.FracTranslated+AStat.FracUnTranslated+AStat.FracFuzzy) * 2 * pi) * Radius);
|
|
||||||
Canvas.LineTo(X, Y);
|
|
||||||
//Calculate a point inside the section
|
|
||||||
X := Origo.X + Round(Cos((AStat.FracTranslated+AStat.FracUnTranslated+AStat.FracFuzzy/2) * (2 * pi)) * (Radius - 3));
|
|
||||||
Y := Origo.Y - Round(Sin((AStat.FracTranslated+AStat.FracUnTranslated+AStat.FracFuzzy/2) * (2 * pi)) * (Radius - 3));
|
|
||||||
Canvas.Brush.Color := clFuzzy;
|
|
||||||
PixCol := Canvas.Pixels[X,Y];
|
|
||||||
//Don't FloodFill if the section has no visible pixels on the screen
|
|
||||||
if (PixCol <> OrigoCol) then Canvas.FloodFill(X,Y,PixCol,fsSurface);
|
|
||||||
//Draw the text
|
|
||||||
TW := Canvas.TextWidth(AStat.PoName);
|
|
||||||
X := Origo.X - (TW div 2);
|
|
||||||
Y := Origo.Y + Radius + TxtMargin;
|
|
||||||
Canvas.Pen.Color := clTxt;
|
|
||||||
Canvas.Brush.Color := clBack;
|
|
||||||
Canvas.TextOut(X, Y, AStat.PoName);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TGraphStatForm.DrawLegenda;
|
|
||||||
var
|
|
||||||
X, Y, LegTop, TH: Integer;
|
|
||||||
begin
|
|
||||||
LegTop := Img.Height - LegHeight;
|
|
||||||
//Debugln('TGraphStatForm.DrawLegenda: LegTop = ',DbgS(LegTop));
|
|
||||||
with Img do
|
|
||||||
begin
|
|
||||||
TH := Canvas.TextHeight('qWM');
|
|
||||||
X := LegLMargin;
|
|
||||||
Y := LegTop;
|
|
||||||
Canvas.Pen.Color := clTxt;
|
|
||||||
Canvas.MoveTo(LegLMargin, LegTop);
|
|
||||||
Canvas.LineTo(Img.Width - LegLMargin, LegTop);
|
|
||||||
Y := Y + TxtMargin;
|
|
||||||
|
|
||||||
Canvas.Brush.Color := clTrans;
|
|
||||||
Canvas.FillRect(X,Y,X+LegBarWidth,Y+LegBarHeight);
|
|
||||||
Canvas.Brush.Color := clBack;
|
|
||||||
Canvas.TextOut(X + LegBarWidth + TxtMargin, Y + ((LegBarHeight - TH) div 2), 'Translated');
|
|
||||||
|
|
||||||
Y := Y + SingleLegItemHeight + TxtMargin;
|
|
||||||
Canvas.Brush.Color := clUnTrans;
|
|
||||||
Canvas.FillRect(X,Y,X+LegBarWidth,Y+LegBarHeight);
|
|
||||||
Canvas.Brush.Color := clBack;
|
|
||||||
Canvas.TextOut(X + LegBarWidth + TxtMargin, Y + ((LegBarHeight - TH) div 2), 'Untranslated');
|
|
||||||
|
|
||||||
|
|
||||||
Y := Y + SingleLegItemHeight + TxtMargin;
|
|
||||||
Canvas.Brush.Color := clFuzzy;
|
|
||||||
Canvas.FillRect(X,Y,X+LegBarWidth,Y+LegBarHeight);
|
|
||||||
Canvas.Brush.Color := clBack;
|
|
||||||
Canvas.TextOut(X + LegBarWidth + TxtMargin, Y + ((LegBarHeight - TH) div 2), 'Fuzzy');
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -99,6 +99,10 @@ msgstr "Chyby / varování nahlášené %s pro:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Najít všechny přeložené po soubory"
|
msgstr "Najít všechny přeložené po soubory"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -244,6 +248,10 @@ msgstr "Nalezeno celkem %d chyb / varování."
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Celkem nalezeno varování: %d"
|
msgstr "Celkem nalezeno varování: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Překlad"
|
msgstr "Překlad"
|
||||||
@ -258,3 +266,7 @@ msgstr "Statistiky překladu pro:"
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -68,8 +68,7 @@ msgstr "[Zeile %d] %s"
|
|||||||
|
|
||||||
#: pocheckerconsts.sduplicateoriginals
|
#: pocheckerconsts.sduplicateoriginals
|
||||||
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
|
msgid "The (untranslated) value \"%s\" is used for more than 1 entry:"
|
||||||
msgstr ""
|
msgstr "Der (nicht übersetzte) Wert \"%s\" wird für mehr als 1 Eintrag verwendet:"
|
||||||
"Der (nicht übersetzte) Wert \"%s\" wird für mehr als 1 Eintrag verwendet:"
|
|
||||||
|
|
||||||
#: pocheckerconsts.serroroncleanup
|
#: pocheckerconsts.serroroncleanup
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -97,6 +96,10 @@ msgstr "Fehler / Warnungen gemeldet von %s für:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Alle übersetzten po-Dateien finden"
|
msgstr "Alle übersetzten po-Dateien finden"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr "Graphischer Überblick"
|
msgstr "Graphischer Überblick"
|
||||||
@ -237,6 +240,10 @@ msgstr "Insgesamt %d Fehler gefunden"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Insgesamt %d Warnungen gefunden"
|
msgstr "Insgesamt %d Warnungen gefunden"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Übersetzung"
|
msgstr "Übersetzung"
|
||||||
@ -249,3 +256,8 @@ msgstr "Übersetzungsstatistikpro Sprache:"
|
|||||||
#: pocheckerconsts.sunselectalltests
|
#: pocheckerconsts.sunselectalltests
|
||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr "Alle abwählen"
|
msgstr "Alle abwählen"
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -95,6 +95,10 @@ msgstr "Errores / advertencias reportadas por %s para:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Encontrar todos los archivos PO traducidos"
|
msgstr "Encontrar todos los archivos PO traducidos"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -235,6 +239,10 @@ msgstr "Total de errores / advertencias encontraron: %d"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Total de avisos encontrados: %d"
|
msgstr "Total de avisos encontrados: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Traducción"
|
msgstr "Traducción"
|
||||||
@ -247,3 +255,7 @@ msgstr ""
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -97,6 +97,10 @@ msgstr "A(z) %s hibákat / figyelmeztetéseket jelzett ezzel kapcsolatban:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Az összes lefordított po-fájl megkeresése"
|
msgstr "Az összes lefordított po-fájl megkeresése"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -240,6 +244,10 @@ msgstr "Összes hiba / figyelmeztetés: %d"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Összes figyelmeztetés: %d"
|
msgstr "Összes figyelmeztetés: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Fordítás"
|
msgstr "Fordítás"
|
||||||
@ -254,3 +262,7 @@ msgstr "Fordítási statisztika ehhez:"
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr "Kijelölések törlése"
|
msgstr "Kijelölések törlése"
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -95,6 +95,10 @@ msgstr "Errori / avvertimenti riportati da %s per:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Trova tutti i file po tradotti"
|
msgstr "Trova tutti i file po tradotti"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -237,6 +241,10 @@ msgstr "Totale errori / avvertimenti: %d"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Totale avvertimenti: %d"
|
msgstr "Totale avvertimenti: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Traduzione"
|
msgstr "Traduzione"
|
||||||
@ -251,3 +259,7 @@ msgstr "Statistiche di traduzione per:"
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr "&Deseleziona tutto"
|
msgstr "&Deseleziona tutto"
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -97,6 +97,10 @@ msgstr "以下のファイルに対する %s によるエラー/警告の結
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "翻訳されたすべての po ファイルを検査する"
|
msgstr "翻訳されたすべての po ファイルを検査する"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -241,6 +245,10 @@ msgstr "エラー/警告の総数:%d"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "警告の総数:%d"
|
msgstr "警告の総数:%d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "訳文"
|
msgstr "訳文"
|
||||||
@ -255,3 +263,7 @@ msgstr "翻訳状況:"
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -97,6 +97,10 @@ msgstr "%s praneštos klaidos/perspėjimai apie:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Rasti visus išverstus PO failus"
|
msgstr "Rasti visus išverstus PO failus"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -235,6 +239,10 @@ msgstr "Viso rasta klaidų/perspėjimų: %d"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Viso rasta perspėjimų: %d"
|
msgstr "Viso rasta perspėjimų: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Vertimas"
|
msgstr "Vertimas"
|
||||||
@ -247,3 +255,7 @@ msgstr ""
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -78,6 +78,10 @@ msgstr ""
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -207,6 +211,10 @@ msgstr ""
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -219,3 +227,7 @@ msgstr ""
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -96,6 +96,10 @@ msgstr "Erros / avisos reportados por %s para:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Localizar todos os arquivos po traduzidos"
|
msgstr "Localizar todos os arquivos po traduzidos"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -235,6 +239,10 @@ msgstr "Total de erros / avisos encontrados: %d"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Total de avisos encontrados: %d"
|
msgstr "Total de avisos encontrados: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Tradução"
|
msgstr "Tradução"
|
||||||
@ -247,3 +255,7 @@ msgstr ""
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -95,6 +95,10 @@ msgstr "Ошибки и предупреждения, найденные %s дл
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Найти все переведённые файлы PO"
|
msgstr "Найти все переведённые файлы PO"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -239,6 +243,10 @@ msgstr "Всего найдено ошибок: %d"
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Всего найдено предупреждений: %d"
|
msgstr "Всего найдено предупреждений: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Перевод"
|
msgstr "Перевод"
|
||||||
@ -254,3 +262,7 @@ msgstr "Статистика перевода для:"
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr "&Снять выбор"
|
msgstr "&Снять выбор"
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -94,6 +94,10 @@ msgstr "Помилки / попередження звітовані %s для:"
|
|||||||
msgid "Find all translated po-files"
|
msgid "Find all translated po-files"
|
||||||
msgstr "Знайти всі перекладені po-файли"
|
msgstr "Знайти всі перекладені po-файли"
|
||||||
|
|
||||||
|
#: pocheckerconsts.sfuzzy
|
||||||
|
msgid "Fuzzy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.sgrapstatformcaption
|
#: pocheckerconsts.sgrapstatformcaption
|
||||||
msgid "Graphical summary"
|
msgid "Graphical summary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -232,6 +236,10 @@ msgstr "Знайдено всього помилок / попереджень: %
|
|||||||
msgid "Total warnings found: %d"
|
msgid "Total warnings found: %d"
|
||||||
msgstr "Знайдено всього попереджень: %d"
|
msgstr "Знайдено всього попереджень: %d"
|
||||||
|
|
||||||
|
#: pocheckerconsts.stranslated
|
||||||
|
msgid "Translated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: pocheckerconsts.stranslation
|
#: pocheckerconsts.stranslation
|
||||||
msgid "Translation"
|
msgid "Translation"
|
||||||
msgstr "Переклад"
|
msgstr "Переклад"
|
||||||
@ -244,3 +252,7 @@ msgstr ""
|
|||||||
msgid "&Unselect All"
|
msgid "&Unselect All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: pocheckerconsts.suntranslated
|
||||||
|
msgid "Untranslated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,9 @@ resourcestring
|
|||||||
|
|
||||||
//Graphical summary form
|
//Graphical summary form
|
||||||
sGrapStatFormCaption = 'Graphical summary';
|
sGrapStatFormCaption = 'Graphical summary';
|
||||||
|
sTranslated = 'Translated';
|
||||||
|
sUntranslated = 'Untranslated';
|
||||||
|
sFuzzy = 'Fuzzy';
|
||||||
|
|
||||||
//PoFamiles
|
//PoFamiles
|
||||||
sOriginal = 'Original';
|
sOriginal = 'Original';
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user