Fix for DXCC status form

Completely layout fix, no code changes.

 Goal_1: To make wkd/cfm grid vertically autosized to see all 10 rows all the time without the use of vertical scroll bar. I think this is the main interest grid.
 Status by countries grid is big and needs scrolling anyway and is seldom the main interest grid (or is it?)

 Goal_2: To fix PHONE group box anchoring so that CWM line does not drop over bottom line with QT5 widgets.

 Renamed lfm components (for easier location during pos/anchoring)
 Redesigned positions and anchoring
 Added W/C_Gird constraints.minheight setting by font size in form show procedure. Tries to keep all 10 rows visible without scrolling.
This commit is contained in:
OH1KH 2021-08-30 19:20:28 +03:00
parent 31509886c5
commit 11e3b8695b
3 changed files with 256 additions and 162 deletions

View File

@ -1,12 +1,11 @@
object frmDXCCStat: TfrmDXCCStat object frmDXCCStat: TfrmDXCCStat
Left = 258 Left = 293
Height = 529 Height = 612
Top = 209 Top = 37
Width = 711 Width = 768
ActiveControl = grdDXCCStat
Caption = 'DXCC Statistic' Caption = 'DXCC Statistic'
ClientHeight = 529 ClientHeight = 612
ClientWidth = 711 ClientWidth = 768
Icon.Data = { Icon.Data = {
BE0C00000000010001002020000001001800A80C000016000000280000002000 BE0C00000000010001002020000001001800A80C000016000000280000002000
0000400000000100180000000000000C00006400000064000000000000000000 0000400000000100180000000000000C00006400000064000000000000000000
@ -115,22 +114,34 @@ object frmDXCCStat: TfrmDXCCStat
OnClose = FormClose OnClose = FormClose
OnCreate = FormCreate OnCreate = FormCreate
OnShow = FormShow OnShow = FormShow
LCLVersion = '1.2.2.0' LCLVersion = '2.0.12.0'
object Panel1: TPanel object pnlStatSum: TPanel
AnchorSideLeft.Control = Owner
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 0 Left = 0
Height = 81 Height = 80
Top = 448 Top = 532
Width = 711 Width = 768
Align = alBottom Anchors = [akLeft, akRight, akBottom]
ClientHeight = 81 ClientHeight = 80
ClientWidth = 711 ClientWidth = 768
TabOrder = 0 TabOrder = 0
object Button1: TButton object btClose: TButton
Left = 624 AnchorSideRight.Control = pnlStatSum
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pnlStatSum
AnchorSideBottom.Side = asrBottom
Left = 686
Height = 25 Height = 25
Top = 48 Top = 48
Width = 75 Width = 75
Anchors = [akTop, akRight] Anchors = [akRight, akBottom]
BorderSpacing.Right = 6
BorderSpacing.Bottom = 6
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
Cancel = True Cancel = True
Caption = '&Close' Caption = '&Close'
@ -138,179 +149,215 @@ object frmDXCCStat: TfrmDXCCStat
TabOrder = 0 TabOrder = 0
end end
object btnHTMLExport: TButton object btnHTMLExport: TButton
Left = 488 AnchorSideRight.Control = btClose
AnchorSideBottom.Control = btClose
AnchorSideBottom.Side = asrBottom
Left = 565
Height = 25 Height = 25
Top = 48 Top = 48
Width = 115 Width = 115
Anchors = [akTop, akRight] Anchors = [akRight, akBottom]
BorderSpacing.Right = 6
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
Caption = 'Export to HTML' Caption = 'Export to HTML'
OnClick = btnHTMLExportClick OnClick = btnHTMLExportClick
TabOrder = 1 TabOrder = 1
end end
object GroupBox1: TGroupBox object gbCW: TGroupBox
Left = 120 AnchorSideLeft.Control = gbPhone
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = gbPhone
AnchorSideBottom.Side = asrBottom
Left = 117
Height = 61 Height = 61
Top = 8 Top = 12
Width = 104 Width = 104
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = ' CW ' Caption = ' CW '
ClientHeight = 45 ClientHeight = 43
ClientWidth = 102 ClientWidth = 102
TabOrder = 2 TabOrder = 2
object lblCWWKD: TLabel object lblCWWKD: TLabel
AnchorSideLeft.Control = gbCW
AnchorSideTop.Control = gbCW
Left = 6 Left = 6
Height = 15 Height = 15
Top = 0 Top = 0
Width = 25 Width = 31
BorderSpacing.Left = 6
Caption = 'wkd:' Caption = 'wkd:'
ParentColor = False ParentColor = False
end end
object lblCWCmf: TLabel object lblCWCmf: TLabel
AnchorSideLeft.Control = lblCWWKD
AnchorSideTop.Control = lblCWWKD
AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 15 Height = 15
Top = 22 Top = 18
Width = 26 Width = 29
BorderSpacing.Top = 3
Caption = 'cfm:' Caption = 'cfm:'
ParentColor = False ParentColor = False
end end
end end
object GroupBox2: TGroupBox object gbPhone: TGroupBox
Left = 8 AnchorSideLeft.Control = pnlStatSum
AnchorSideBottom.Control = pnlStatSum
AnchorSideBottom.Side = asrBottom
Left = 7
Height = 61 Height = 61
Top = 8 Top = 12
Width = 104 Width = 104
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Bottom = 6
Caption = ' PHONE' Caption = ' PHONE'
ClientHeight = 45 ClientHeight = 43
ClientWidth = 102 ClientWidth = 102
TabOrder = 3 TabOrder = 3
object lblFoneWKD: TLabel object lblFoneWKD: TLabel
AnchorSideLeft.Control = gbPhone
AnchorSideTop.Control = gbPhone
Left = 6 Left = 6
Height = 15 Height = 15
Top = -1 Top = 0
Width = 25 Width = 31
BorderSpacing.Left = 6
Caption = 'wkd:' Caption = 'wkd:'
ParentColor = False ParentColor = False
end end
object lblFoneCmf: TLabel object lblFoneCmf: TLabel
AnchorSideLeft.Control = lblFoneWKD
AnchorSideTop.Control = lblFoneWKD
AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 15 Height = 15
Top = 23 Top = 18
Width = 26 Width = 29
BorderSpacing.Top = 3
Caption = 'cfm:' Caption = 'cfm:'
ParentColor = False ParentColor = False
end end
end end
object GroupBox3: TGroupBox object gbDigi: TGroupBox
Left = 232 AnchorSideLeft.Control = gbCW
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = gbCW
AnchorSideBottom.Side = asrBottom
Left = 227
Height = 61 Height = 61
Top = 8 Top = 12
Width = 104 Width = 104
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = ' DIGI ' Caption = ' DIGI '
ClientHeight = 45 ClientHeight = 43
ClientWidth = 102 ClientWidth = 102
TabOrder = 4 TabOrder = 4
object lblDIGIWKD: TLabel object lblDIGIWKD: TLabel
AnchorSideLeft.Control = gbDigi
AnchorSideTop.Control = gbDigi
Left = 6 Left = 6
Height = 15 Height = 15
Top = 0 Top = 0
Width = 25 Width = 31
BorderSpacing.Left = 6
Caption = 'wkd:' Caption = 'wkd:'
ParentColor = False ParentColor = False
end end
object lblDIGICmf: TLabel object lblDIGICmf: TLabel
AnchorSideLeft.Control = lblDIGIWKD
AnchorSideTop.Control = lblDIGIWKD
AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 15 Height = 15
Top = 22 Top = 18
Width = 26 Width = 29
BorderSpacing.Top = 3
Caption = 'cfm:' Caption = 'cfm:'
ParentColor = False ParentColor = False
end end
end end
object GroupBox4: TGroupBox object gbMix: TGroupBox
Left = 344 AnchorSideLeft.Control = gbDigi
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = gbDigi
AnchorSideBottom.Side = asrBottom
Left = 337
Height = 61 Height = 61
Top = 8 Top = 12
Width = 104 Width = 104
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = ' MIX ' Caption = ' MIX '
ClientHeight = 45 ClientHeight = 43
ClientWidth = 102 ClientWidth = 102
TabOrder = 5 TabOrder = 5
object lblWkdMix: TLabel object lblWkdMix: TLabel
AnchorSideLeft.Control = gbMix
AnchorSideTop.Control = gbMix
Left = 6 Left = 6
Height = 15 Height = 15
Top = 0 Top = 0
Width = 25 Width = 31
BorderSpacing.Left = 6
Caption = 'wkd:' Caption = 'wkd:'
ParentColor = False ParentColor = False
end end
object lblCfmMix: TLabel object lblCfmMix: TLabel
AnchorSideLeft.Control = lblWkdMix
AnchorSideTop.Control = lblWkdMix
AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 15 Height = 15
Top = 22 Top = 18
Width = 26 Width = 29
BorderSpacing.Top = 3
Caption = 'cfm:' Caption = 'cfm:'
ParentColor = False ParentColor = False
end end
end end
end end
object grdStat: TStringGrid object PnlDXCCStat: TPanel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 144 Height = 60
Top = 304
Width = 711
Align = alBottom
ColCount = 27
DefaultColWidth = 50
DefaultRowHeight = 25
FixedCols = 0
Font.Name = 'courier [biznet]'
ParentFont = False
RowCount = 10
TabOrder = 1
TitleFont.Name = 'courier [biznet]'
TitleStyle = tsNative
end
object grdDXCCStat: TStringGrid
Left = 0
Height = 254
Top = 50
Width = 711
Align = alClient
ColCount = 27
DefaultColWidth = 55
DefaultRowHeight = 25
FixedCols = 0
Font.Name = 'dejavu sans mono [dejavu]'
Font.Pitch = fpFixed
ParentFont = False
TabOrder = 2
TitleFont.Name = 'dejavu sans mono [dejavu]'
TitleFont.Pitch = fpFixed
TitleStyle = tsNative
end
object Panel2: TPanel
Left = 0
Height = 50
Top = 0 Top = 0
Width = 711 Width = 768
Align = alTop Anchors = [akTop, akLeft, akRight]
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 50 ClientHeight = 60
ClientWidth = 711 ClientWidth = 768
TabOrder = 3 TabOrder = 1
object Label1: TLabel object btnRefresh: TButton
Left = 19 AnchorSideLeft.Control = cmbCfmType
Height = 15 AnchorSideLeft.Side = asrBottom
Top = 18 AnchorSideTop.Control = cmbCfmType
Width = 91 AnchorSideTop.Side = asrCenter
Caption = 'Confirmed type:' Left = 447
ParentColor = False Height = 25
Top = 13
Width = 147
BorderSpacing.Left = 32
Caption = 'Refresh statistic'
OnClick = btnRefreshClick
TabOrder = 1
end end
object cmbCfmType: TComboBox object cmbCfmType: TComboBox
Left = 133 AnchorSideLeft.Control = lblDXCCType
Height = 19 AnchorSideLeft.Side = asrBottom
Top = 10 AnchorSideTop.Control = lblDXCCType
AnchorSideTop.Side = asrCenter
Left = 155
Height = 29
Top = 11
Width = 260 Width = 260
BorderSpacing.Left = 32
ItemHeight = 0 ItemHeight = 0
ItemIndex = 6 ItemIndex = 6
Items.Strings = ( Items.Strings = (
@ -326,19 +373,65 @@ object frmDXCCStat: TfrmDXCCStat
TabOrder = 0 TabOrder = 0
Text = 'paper QSL, LoTW and eQSL' Text = 'paper QSL, LoTW and eQSL'
end end
object btnRefresh: TButton object lblDXCCType: TLabel
Left = 432 AnchorSideLeft.Control = PnlDXCCStat
Height = 25 AnchorSideTop.Control = PnlDXCCStat
Top = 14 Left = 18
Width = 147 Height = 15
Caption = 'Refresh statistic' Top = 18
OnClick = btnRefreshClick Width = 105
TabOrder = 1 BorderSpacing.Left = 18
BorderSpacing.Top = 18
Caption = 'Confirmed type:'
ParentColor = False
end end
end end
object grdDXCCStat: TStringGrid
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = PnlDXCCStat
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = grdStatSum
Left = 0
Height = 212
Top = 60
Width = 768
Anchors = [akTop, akLeft, akRight, akBottom]
ColCount = 27
DefaultColWidth = 55
DefaultRowHeight = 25
FixedCols = 0
Font.Name = 'dejavu sans mono [dejavu]'
Font.Pitch = fpFixed
ParentFont = False
TabOrder = 2
TitleStyle = tsNative
end
object grdStatSum: TStringGrid
AnchorSideLeft.Control = Owner
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pnlStatSum
Left = 0
Height = 260
Top = 272
Width = 768
Anchors = [akLeft, akRight, akBottom]
ColCount = 27
DefaultColWidth = 50
DefaultRowHeight = 25
FixedCols = 0
Font.Name = 'courier [biznet]'
ParentFont = False
RowCount = 10
TabOrder = 3
TitleStyle = tsNative
end
object dlgSave: TSaveDialog object dlgSave: TSaveDialog
FilterIndex = 0 FilterIndex = 0
left = 568 Left = 568
top = 232 Top = 232
end end
end end

View File

@ -24,15 +24,17 @@ type
{ TfrmDXCCStat } { TfrmDXCCStat }
TfrmDXCCStat = class(TForm) TfrmDXCCStat = class(TForm)
Button1: TButton; btnRefresh: TButton;
btClose: TButton;
btnHTMLExport: TButton; btnHTMLExport: TButton;
btnRefresh : TButton; cmbCfmType: TComboBox;
cmbCfmType : TComboBox; grdDXCCStat: TStringGrid;
GroupBox1: TGroupBox; gbCW: TGroupBox;
GroupBox2: TGroupBox; gbPhone: TGroupBox;
GroupBox3: TGroupBox; gbDigi: TGroupBox;
GroupBox4: TGroupBox; gbMix: TGroupBox;
Label1 : TLabel; grdStatSum: TStringGrid;
lblDXCCType: TLabel;
lblCfmMix: TLabel; lblCfmMix: TLabel;
lblWkdMix: TLabel; lblWkdMix: TLabel;
lblFoneCmf: TLabel; lblFoneCmf: TLabel;
@ -41,11 +43,9 @@ type
lblFoneWKD: TLabel; lblFoneWKD: TLabel;
lblCWWKD: TLabel; lblCWWKD: TLabel;
lblDIGIWKD: TLabel; lblDIGIWKD: TLabel;
Panel1: TPanel; PnlDXCCStat: TPanel;
grdStat: TStringGrid; pnlStatSum: TPanel;
grdDXCCStat: TStringGrid;
dlgSave: TSaveDialog; dlgSave: TSaveDialog;
Panel2 : TPanel;
procedure btnHTMLExportClick(Sender: TObject); procedure btnHTMLExportClick(Sender: TObject);
procedure btnRefreshClick(Sender : TObject); procedure btnRefreshClick(Sender : TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
@ -101,20 +101,21 @@ end;
procedure TfrmDXCCStat.FormShow(Sender: TObject); procedure TfrmDXCCStat.FormShow(Sender: TObject);
begin begin
dmUtils.LoadFontSettings(self); dmUtils.LoadFontSettings(self);
grdStatSum.Constraints.MinHeight:=(grdStatSum.Font.Size+6)*10;
LoadBandsSettings; LoadBandsSettings;
if cqrini.ReadBool('Fonts','GridGreenBar',False) = True then if cqrini.ReadBool('Fonts','GridGreenBar',False) = True then
begin begin
grdDXCCStat.AlternateColor:=$00E7FFEB; grdDXCCStat.AlternateColor:=$00E7FFEB;
grdStat.AlternateColor:=$00E7FFEB; grdStatSum.AlternateColor:=$00E7FFEB;
grdDXCCStat.Options:=[goRowSelect,goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine]; grdDXCCStat.Options:=[goRowSelect,goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine];
grdStat.Options:=[goRowSelect,goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine]; grdStatSum.Options:=[goRowSelect,goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine];
end end
else begin else begin
grdDXCCStat.AlternateColor:=clWindow; grdDXCCStat.AlternateColor:=clWindow;
grdStat.AlternateColor:=clWindow; grdStatSum.AlternateColor:=clWindow;
grdDXCCStat.Options:=[goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine,goFixedHorzLine,goHorzline]; grdDXCCStat.Options:=[goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine,goFixedHorzLine,goHorzline];
grdStat.Options:=[goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine,goFixedHorzLine,goHorzline]; grdStatSum.Options:=[goRangeSelect,goSmoothScroll,goVertLine,goFixedVertLine,goFixedHorzLine,goHorzline];
end; end;
grdDXCCStat.Cells[0,0] := 'DXCC'; grdDXCCStat.Cells[0,0] := 'DXCC';
@ -296,7 +297,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40 bgcolor="#333366" class="hlava">'); Writeln(f,'<TD WIDTH=40 bgcolor="#333366" class="hlava">');
tmp := grdStat.Cells[i,0]; tmp := grdStatSum.Cells[i,0];
Writeln(f,'<div align="center" class="popis">' + tmp + '</div>'); Writeln(f,'<div align="center" class="popis">' + tmp + '</div>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; //^^ table header end; //^^ table header
@ -309,7 +310,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=60>'); Writeln(f,'<TD WIDTH=60>');
tmp := grdStat.Cells[i,1]; tmp := grdStatSum.Cells[i,1];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -322,7 +323,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40>'); Writeln(f,'<TD WIDTH=40>');
tmp := grdStat.Cells[i,2]; tmp := grdStatSum.Cells[i,2];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -335,7 +336,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40>'); Writeln(f,'<TD WIDTH=40>');
tmp := grdStat.Cells[i,4]; tmp := grdStatSum.Cells[i,4];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -348,7 +349,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40>'); Writeln(f,'<TD WIDTH=40>');
tmp := grdStat.Cells[i,5]; tmp := grdStatSum.Cells[i,5];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -361,7 +362,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40>'); Writeln(f,'<TD WIDTH=40>');
tmp := grdStat.Cells[i,6]; tmp := grdStatSum.Cells[i,6];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -374,7 +375,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40>'); Writeln(f,'<TD WIDTH=40>');
tmp := grdStat.Cells[i,7]; tmp := grdStatSum.Cells[i,7];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -387,7 +388,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40>'); Writeln(f,'<TD WIDTH=40>');
tmp := grdStat.Cells[i,8]; tmp := grdStatSum.Cells[i,8];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2>' + tmp + '</FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -400,7 +401,7 @@ begin
for i:=1 to grdDXCCStat.ColCount -1 do for i:=1 to grdDXCCStat.ColCount -1 do
begin begin
Writeln(f,'<TD WIDTH=40>'); Writeln(f,'<TD WIDTH=40>');
tmp := grdStat.Cells[i,9]; tmp := grdStatSum.Cells[i,9];
Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>'); Writeln(f,'<P ALIGN=CENTER><FONT SIZE=2><B>' + tmp + '</B></FONT></P>');
Writeln(f,'</TD>'); Writeln(f,'</TD>');
end; end;
@ -488,20 +489,20 @@ var
i : Integer = 0; i : Integer = 0;
begin begin
grdDXCCStat.ColCount := cMaxBandsCount; grdDXCCStat.ColCount := cMaxBandsCount;
grdStat.ColCount := cMaxBandsCount; grdStatSum.ColCount := cMaxBandsCount;
for i:=0 to cMaxBandsCount-1 do for i:=0 to cMaxBandsCount-1 do
begin begin
if dmUtils.MyBands[i][0]='' then if dmUtils.MyBands[i][0]='' then
begin begin
grdDXCCStat.ColCount := i+2; grdDXCCStat.ColCount := i+2;
grdStat.ColCount := i+1; grdStatSum.ColCount := i+1;
break break
end; end;
grdDXCCStat.Cells[i+2,0] := dmUtils.MyBands[i][1]; grdDXCCStat.Cells[i+2,0] := dmUtils.MyBands[i][1];
grdStat.Cells[i+1,0] := dmUtils.MyBands[i][1]; grdStatSum.Cells[i+1,0] := dmUtils.MyBands[i][1];
end; end;
grdDXCCStat.ColWidths[grdStat.ColCount-1] := 50; grdDXCCStat.ColWidths[grdStatSum.ColCount-1] := 50;
grdStat.ColWidths[grdStat.ColCount-1] := 50 grdStatSum.ColWidths[grdStatSum.ColCount-1] := 50
end; end;
procedure TfrmDXCCStat.CreateModeStatistic; procedure TfrmDXCCStat.CreateModeStatistic;
@ -523,9 +524,9 @@ var
end; end;
BandPos := BandPos + 1; BandPos := BandPos + 1;
if dmData.Q.Fields[1].AsString = '' then if dmData.Q.Fields[1].AsString = '' then
grdStat.Cells[BandPos,Row] := '0' grdStatSum.Cells[BandPos,Row] := '0'
else else
grdStat.Cells[BandPos,Row] := dmData.Q.Fields[1].AsString; grdStatSum.Cells[BandPos,Row] := dmData.Q.Fields[1].AsString;
dmData.Q.Next dmData.Q.Next
end end
end; end;
@ -582,18 +583,18 @@ const
C_SEL = 'select band,count(distinct adif) from cqrlog_main where adif <> 0 and '; C_SEL = 'select band,count(distinct adif) from cqrlog_main where adif <> 0 and ';
begin begin
grdStat.ColWidths[0] := 110; grdStatSum.ColWidths[0] := 110;
grdStat.Cells[0,1] := 'DXCC'; grdStatSum.Cells[0,1] := 'DXCC';
grdStat.Cells[0,2] := 'DXCC CFM'; grdStatSum.Cells[0,2] := 'DXCC CFM';
grdStat.Cells[0,4] := 'DXCC PHONE'; grdStatSum.Cells[0,4] := 'DXCC PHONE';
grdStat.Cells[0,5] := 'DXCC CFM PHONE'; grdStatSum.Cells[0,5] := 'DXCC CFM PHONE';
grdStat.Cells[0,6] := 'DXCC CW'; grdStatSum.Cells[0,6] := 'DXCC CW';
grdStat.Cells[0,7] := 'DXCC CFM CW'; grdStatSum.Cells[0,7] := 'DXCC CFM CW';
grdStat.Cells[0,8] := 'DXCC DIGI'; grdStatSum.Cells[0,8] := 'DXCC DIGI';
grdStat.Cells[0,9] := 'DXCC CFM DIGI'; grdStatSum.Cells[0,9] := 'DXCC CFM DIGI';
ShowDel := cqrini.ReadBool('Program','ShowDeleted',False); ShowDel := cqrini.ReadBool('Program','ShowDeleted',False);
@ -1192,22 +1193,22 @@ var
y : Integer; y : Integer;
sum : Word; sum : Word;
begin begin
grdStat.ColCount := grdStat.ColCount+1; grdStatSum.ColCount := grdStatSum.ColCount+1;
grdStat.Cells[grdStat.ColCount-1,0] := 'Total'; grdStatSum.Cells[grdStatSum.ColCount-1,0] := 'Total';
for y:=1 to grdStat.RowCount-1 do for y:=1 to grdStatSum.RowCount-1 do
begin begin
if grdStat.Cells[0,y] = '' then if grdStatSum.Cells[0,y] = '' then
Continue; Continue;
sum := 0; sum := 0;
for i:=1 to grdStat.ColCount -1 do for i:=1 to grdStatSum.ColCount -1 do
begin begin
if grdStat.Cells[i,y] <> '' then if grdStatSum.Cells[i,y] <> '' then
sum := sum + StrToInt(grdStat.Cells[i,y]) sum := sum + StrToInt(grdStatSum.Cells[i,y])
else else
grdStat.Cells[i,y] := '0' grdStatSum.Cells[i,y] := '0'
end; end;
grdStat.Cells[grdStat.ColCount-1,y] := IntToStr(sum) grdStatSum.Cells[grdStatSum.ColCount-1,y] := IntToStr(sum)
end end
end; end;

View File

@ -10,7 +10,7 @@ const
cRELEAS = 2; cRELEAS = 2;
cBUILD = 1; cBUILD = 1;
cBUILD_DATE = '2021-08-28'; cBUILD_DATE = '2021-08-30';
implementation implementation