mirror of
https://github.com/ok2cqr/cqrlog.git
synced 2024-09-21 10:27:17 +00:00
Fixes and additions to Contest form
- Fixed non working dupe check (was upside down & NoMode4dupe not working at all) - Fixed some texts, anchoring and layouts - Fixed tabulation stops setting - Fixed status bar [0] text filtering (change 0x0A to | ) - Fixed help page - Added contest name saving/loading with other settings - Added "Clear all"-button to remove all saved settings (when start of new contest) - Tested. Should now work as intended.
This commit is contained in:
parent
30264390d9
commit
ad5b4bceed
@ -65,16 +65,20 @@ Contest window has a simple dupe check that turns typed duplicate callsign bold
|
||||
<p>
|
||||
Contest window has following fields and checkboxes:<br>
|
||||
<ul>
|
||||
<li><b>Tab All</b> when checked overrides all other Tab settings (below) and Tab Order is Call-RSTs-NRs-MSGs-RSTr-NRr-MSGr-SaveQSO-ClearAll</li>
|
||||
<li><b>Tab in order</b> when checked overrides all other Tab settings (below) and Tab Order is Call-RSTs-NRs-MSGs-RSTr-NRr-MSGr-SaveQSO-ClearAll</li>
|
||||
<li><b>Call</b> when you leave this field callsign is moved to NewQSO. Callsign turns BOLD RED if it is duplicate.</li>
|
||||
<li><b>SPACE is TAB</b> when checked space bar acts like TAB-key moving to next field. <b>Note:</b>This prevents typing space (perhaps needed in MSG fields).</li>
|
||||
<li><b>NoMode4Dupe</b> Default checked. Means that callsign is duplicate if it is worked on that band in any mode. There are contests where you can work same station again on same band if mode is different (separate CW,SBB,RTTY sections). In that case uncheck this checkbox.
|
||||
<li><b>Dupe check</b> Default checked.
|
||||
<li><b>NoMode4Dupe</b> Means that same callsign can be worked again on same band if mode is different.
|
||||
</li>
|
||||
<li><b>Ignore dupes</b> Do not check duplicate qsos at all.</li>
|
||||
<br>
|
||||
<li><b>RST s</b> copied from NewQSO, so should correspond used mode. Can be changed.</li>
|
||||
<li><b>RST s</b> copied from NewQSO, so should correspond used mode. Can be changed.
|
||||
<br><b> Note:</b> defaults to 599 (as NewQSO) If mode is not CW it will change after cursor leaves callsign column. So do not worry when working non-cw contest!</li>
|
||||
<li><b>Tru</b> means you like to exchange true reports. Makes Tab order to stop at RST (s & r) fields. Useful in some high band contests, Es and tropo openings.</li>
|
||||
<br>
|
||||
<li><b>NR s</b> serial number to send. <b>Note:</b> you can type only numbers to NR s field.</li>
|
||||
<li><b>NR s</b> serial number to send.
|
||||
<br><b> Note:</b> you can type only numbers to NR s field.</li>
|
||||
<li> <b>Inc</b> if checked it will auto increment serial number. You may change this number at any time. Increment goes on from typed number.</li>
|
||||
<br>
|
||||
<li><b>MSG s</b> sometimes you may need an additional message with number, or just a message with no number. On high band contests you may type your locator here.</li>
|
||||
@ -82,15 +86,22 @@ Contest window has following fields and checkboxes:<br>
|
||||
<br>
|
||||
<li><b>RST r</b> copied from NewQSO, so should correspond used mode. Can be changed.</li>
|
||||
<br>
|
||||
<li><b>NR r</b> serial number you receive. <b>Note:</b> you can type only numbers to NR r field. </li>
|
||||
<li><b>NR r</b> serial number you receive.
|
||||
<br><b> Note:</b> you can type only numbers to NR r field. </li>
|
||||
<li><b>No </b> if no serial number then setting this changes tab order so that it jumps directly to MSG r. </li>
|
||||
<br>
|
||||
<li><b>MSG r</b> message you receive</li>
|
||||
<li> <b>MSG is LOC</b> if checked then message will be logged <b>ALSO</b> as locator grid <b>AND</b> SRX String</li>
|
||||
<br>
|
||||
<li><b>Save QSO</b> Save QSO button at NewQSO, increments NR and clears all fields. <b>Note:</b> pressing <b>ENTER at any time</b> after Call field is filled does the same.</li>
|
||||
<li><b>Clear all</b> Clear all fields. <b>Note:</b> Pressing 2x ESC key does the same.</li>
|
||||
<li><b>Save QSO</b> Save QSO button at NewQSO, increments NR and clears all fields.
|
||||
<br><b> Note:</b> pressing <b>ENTER at any time</b> after Call field is filled does the same.</li>
|
||||
<li><b>Clear QSO</b> Clear all QSO information.
|
||||
<br><b> Note:</b> Pressing 2x ESC key does the same.</li>
|
||||
<br><li><b>Clear all</b> Clear all fields. Usefull when starting a new contest to remove saved settings.</li>
|
||||
</ul>
|
||||
<br>
|
||||
All settings, including contest name, are saved when closing contest form. When opening cqrlog and contest form again after rest period you can directly continue contest working.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<b>Typical contest qso goes like this:</b><br>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 28 KiB |
214
src/fContest.lfm
214
src/fContest.lfm
@ -1,26 +1,26 @@
|
||||
object frmContest: TfrmContest
|
||||
Left = 370
|
||||
Height = 177
|
||||
Height = 178
|
||||
Top = 281
|
||||
Width = 700
|
||||
Width = 697
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/contest.html'
|
||||
Caption = 'Contest'
|
||||
ClientHeight = 177
|
||||
ClientWidth = 700
|
||||
ClientHeight = 178
|
||||
ClientWidth = 697
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnHide = FormHide
|
||||
OnKeyDown = FormKeyDown
|
||||
OnShow = FormShow
|
||||
LCLVersion = '2.0.6.0'
|
||||
LCLVersion = '2.0.12.0'
|
||||
object edtCall: TEdit
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = lblCall
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 25
|
||||
Top = 59
|
||||
Height = 33
|
||||
Top = 55
|
||||
Width = 140
|
||||
AutoSelect = False
|
||||
CharCase = ecUppercase
|
||||
@ -35,20 +35,20 @@ object frmContest: TfrmContest
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtCall
|
||||
Left = 157
|
||||
Height = 25
|
||||
Top = 59
|
||||
Height = 33
|
||||
Top = 55
|
||||
Width = 50
|
||||
OnKeyDown = edtCallKeyDown
|
||||
TabOrder = 6
|
||||
TabOrder = 7
|
||||
end
|
||||
object edtSTX: TEdit
|
||||
AnchorSideLeft.Control = edtRSTs
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtRSTs
|
||||
Left = 207
|
||||
Height = 25
|
||||
Height = 33
|
||||
Hint = 'contest serial number sent, max 6 characters'
|
||||
Top = 59
|
||||
Top = 55
|
||||
Width = 50
|
||||
MaxLength = 6
|
||||
OnExit = edtSTXExit
|
||||
@ -56,16 +56,16 @@ object frmContest: TfrmContest
|
||||
OnKeyPress = edtSTXKeyPress
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 7
|
||||
TabOrder = 8
|
||||
end
|
||||
object edtSTXStr: TEdit
|
||||
AnchorSideLeft.Control = edtSTX
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtSTX
|
||||
Left = 257
|
||||
Height = 25
|
||||
Height = 33
|
||||
Hint = 'contest exchange message sent, max 50 characters'
|
||||
Top = 59
|
||||
Top = 55
|
||||
Width = 100
|
||||
MaxLength = 50
|
||||
OnEnter = edtSTXStrEnter
|
||||
@ -73,15 +73,15 @@ object frmContest: TfrmContest
|
||||
OnKeyDown = edtCallKeyDown
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 8
|
||||
TabOrder = 9
|
||||
end
|
||||
object edtRSTr: TEdit
|
||||
AnchorSideLeft.Control = edtSTXStr
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtSTXStr
|
||||
Left = 373
|
||||
Height = 25
|
||||
Top = 59
|
||||
Height = 33
|
||||
Top = 55
|
||||
Width = 50
|
||||
BorderSpacing.Left = 16
|
||||
OnKeyDown = edtCallKeyDown
|
||||
@ -92,9 +92,9 @@ object frmContest: TfrmContest
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtRSTr
|
||||
Left = 423
|
||||
Height = 25
|
||||
Height = 33
|
||||
Hint = 'contest serial number received, max 6 characters'
|
||||
Top = 59
|
||||
Top = 55
|
||||
Width = 50
|
||||
MaxLength = 6
|
||||
OnExit = edtSRXExit
|
||||
@ -110,7 +110,7 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Control = lblMSGr
|
||||
Left = 589
|
||||
Height = 30
|
||||
Top = 42
|
||||
Top = 40
|
||||
Width = 80
|
||||
BorderSpacing.Left = 16
|
||||
Caption = 'Save QSO'
|
||||
@ -122,9 +122,9 @@ object frmContest: TfrmContest
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtRSTr
|
||||
Left = 473
|
||||
Height = 25
|
||||
Height = 33
|
||||
Hint = 'contest exchange message sent, max 50 characters'
|
||||
Top = 59
|
||||
Top = 55
|
||||
Width = 100
|
||||
MaxLength = 50
|
||||
OnChange = edtSRXStrChange
|
||||
@ -138,9 +138,9 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Control = chkTabAll
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 17
|
||||
Top = 42
|
||||
Width = 26
|
||||
Height = 15
|
||||
Top = 40
|
||||
Width = 25
|
||||
BorderSpacing.Top = 1
|
||||
Caption = 'Call'
|
||||
ParentColor = False
|
||||
@ -148,8 +148,8 @@ object frmContest: TfrmContest
|
||||
object lblRSTs: TLabel
|
||||
AnchorSideTop.Control = lblCall
|
||||
Left = 161
|
||||
Height = 17
|
||||
Top = 42
|
||||
Height = 15
|
||||
Top = 40
|
||||
Width = 36
|
||||
Caption = 'RST s'
|
||||
ParentColor = False
|
||||
@ -157,36 +157,36 @@ object frmContest: TfrmContest
|
||||
object lblMSGs: TLabel
|
||||
AnchorSideTop.Control = lblNRs
|
||||
Left = 257
|
||||
Height = 17
|
||||
Top = 42
|
||||
Width = 42
|
||||
Height = 15
|
||||
Top = 40
|
||||
Width = 41
|
||||
Caption = 'MSG s'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblRSTr: TLabel
|
||||
AnchorSideTop.Control = lblMSGs
|
||||
Left = 377
|
||||
Height = 17
|
||||
Top = 42
|
||||
Width = 36
|
||||
Height = 15
|
||||
Top = 40
|
||||
Width = 34
|
||||
Caption = 'RST r'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblNRr: TLabel
|
||||
AnchorSideTop.Control = lblRSTr
|
||||
Left = 425
|
||||
Height = 17
|
||||
Top = 42
|
||||
Width = 30
|
||||
Height = 15
|
||||
Top = 40
|
||||
Width = 28
|
||||
Caption = 'NR r'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblMSGr: TLabel
|
||||
AnchorSideTop.Control = lblNRr
|
||||
Left = 481
|
||||
Height = 17
|
||||
Top = 42
|
||||
Width = 41
|
||||
Height = 15
|
||||
Top = 40
|
||||
Width = 39
|
||||
Caption = 'MSG r'
|
||||
ParentColor = False
|
||||
end
|
||||
@ -195,20 +195,20 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Control = chkTrueRST
|
||||
Left = 207
|
||||
Height = 23
|
||||
Top = 84
|
||||
Top = 88
|
||||
Width = 45
|
||||
Caption = 'Inc'
|
||||
OnChange = chkNRIncChange
|
||||
OnClick = chkNRIncClick
|
||||
TabOrder = 13
|
||||
TabOrder = 14
|
||||
TabStop = False
|
||||
end
|
||||
object lblNRs: TLabel
|
||||
AnchorSideTop.Control = lblRSTs
|
||||
Left = 209
|
||||
Height = 17
|
||||
Top = 42
|
||||
Width = 31
|
||||
Height = 15
|
||||
Top = 40
|
||||
Width = 30
|
||||
Caption = 'NR s'
|
||||
ParentColor = False
|
||||
end
|
||||
@ -217,10 +217,10 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Control = chkNoNr
|
||||
Left = 473
|
||||
Height = 23
|
||||
Top = 84
|
||||
Width = 102
|
||||
Top = 88
|
||||
Width = 101
|
||||
Caption = 'MSG is LOC'
|
||||
TabOrder = 14
|
||||
TabOrder = 15
|
||||
TabStop = False
|
||||
end
|
||||
object chkSpace: TCheckBox
|
||||
@ -229,10 +229,10 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 23
|
||||
Top = 84
|
||||
Width = 114
|
||||
Top = 88
|
||||
Width = 113
|
||||
Caption = 'SPACE is TAB'
|
||||
TabOrder = 10
|
||||
TabOrder = 11
|
||||
TabStop = False
|
||||
end
|
||||
object chkNoNr: TCheckBox
|
||||
@ -240,11 +240,11 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Control = chkNRInc
|
||||
Left = 423
|
||||
Height = 23
|
||||
Top = 84
|
||||
Width = 45
|
||||
Top = 88
|
||||
Width = 44
|
||||
Caption = 'No'
|
||||
OnChange = chkNoNrChange
|
||||
TabOrder = 12
|
||||
TabOrder = 13
|
||||
TabStop = False
|
||||
end
|
||||
object chkTrueRST: TCheckBox
|
||||
@ -252,31 +252,31 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Control = chkSpace
|
||||
Left = 157
|
||||
Height = 23
|
||||
Top = 84
|
||||
Width = 48
|
||||
Top = 88
|
||||
Width = 46
|
||||
Caption = 'Tru'
|
||||
OnChange = chkTrueRSTChange
|
||||
TabOrder = 11
|
||||
TabOrder = 12
|
||||
TabStop = False
|
||||
end
|
||||
object btClearAll: TButton
|
||||
object btClearQso: TButton
|
||||
AnchorSideLeft.Control = btSave
|
||||
AnchorSideTop.Control = btSave
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 589
|
||||
Height = 30
|
||||
Top = 74
|
||||
Top = 72
|
||||
Width = 80
|
||||
BorderSpacing.Top = 2
|
||||
Caption = 'Clear all'
|
||||
OnClick = btClearAllClick
|
||||
TabOrder = 5
|
||||
Caption = 'Clear QSO'
|
||||
OnClick = btClearQsoClick
|
||||
TabOrder = 6
|
||||
end
|
||||
object btnHelp: TSpeedButton
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 672
|
||||
Left = 669
|
||||
Height = 25
|
||||
Hint = 'Help'
|
||||
Top = 3
|
||||
@ -324,27 +324,29 @@ object frmContest: TfrmContest
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = cmbContestName
|
||||
Left = 17
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 1
|
||||
Width = 95
|
||||
Width = 91
|
||||
BorderSpacing.Left = 17
|
||||
Caption = 'Contest name'
|
||||
ParentColor = False
|
||||
end
|
||||
object cmbContestName: TComboBox
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 118
|
||||
Height = 25
|
||||
AnchorSideRight.Control = edtSRXStr
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 141
|
||||
Height = 33
|
||||
Hint = 'contestname, choose ADIF contest_id via combobox or type freestyle max 40 characters'
|
||||
Top = 1
|
||||
Width = 432
|
||||
Anchors = [akTop, akRight]
|
||||
AutoComplete = True
|
||||
AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Left = 30
|
||||
BorderSpacing.Top = 1
|
||||
ItemHeight = 17
|
||||
ItemHeight = 0
|
||||
Items.Strings = (
|
||||
'070-160M-SPRINT'
|
||||
'070-3-DAY'
|
||||
@ -574,7 +576,7 @@ object frmContest: TfrmContest
|
||||
MaxLength = 40
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 9
|
||||
TabOrder = 10
|
||||
TabStop = False
|
||||
end
|
||||
object chkQsp: TCheckBox
|
||||
@ -582,11 +584,11 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Control = chkNRInc
|
||||
Left = 257
|
||||
Height = 23
|
||||
Top = 84
|
||||
Width = 53
|
||||
Top = 88
|
||||
Width = 51
|
||||
Caption = 'Qsp'
|
||||
OnChange = chkQspChange
|
||||
TabOrder = 15
|
||||
TabOrder = 16
|
||||
TabStop = False
|
||||
end
|
||||
object chkTabAll: TCheckBox
|
||||
@ -595,11 +597,11 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 23
|
||||
Top = 18
|
||||
Width = 74
|
||||
Caption = 'TAB All'
|
||||
Top = 16
|
||||
Width = 106
|
||||
Caption = 'TAB in order'
|
||||
OnChange = chkTabAllChange
|
||||
TabOrder = 16
|
||||
TabOrder = 17
|
||||
TabStop = False
|
||||
end
|
||||
object sbContest: TStatusBar
|
||||
@ -607,9 +609,9 @@ object frmContest: TfrmContest
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideBottom.Control = Owner
|
||||
Left = 0
|
||||
Height = 22
|
||||
Top = 155
|
||||
Width = 700
|
||||
Height = 18
|
||||
Top = 160
|
||||
Width = 697
|
||||
Panels = <
|
||||
item
|
||||
Text = '0'
|
||||
@ -638,9 +640,9 @@ object frmContest: TfrmContest
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cmbContestName
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 568
|
||||
Left = 591
|
||||
Height = 1
|
||||
Top = 13
|
||||
Top = 17
|
||||
Width = 1
|
||||
BorderSpacing.Left = 18
|
||||
ParentColor = False
|
||||
@ -651,41 +653,59 @@ object frmContest: TfrmContest
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 23
|
||||
Top = 115
|
||||
Width = 104
|
||||
Top = 119
|
||||
Width = 102
|
||||
BorderSpacing.Left = 17
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Dupe check'
|
||||
Checked = True
|
||||
TabOrder = 20
|
||||
TabStop = True
|
||||
TabOrder = 21
|
||||
end
|
||||
object rbNoMode4Dupe: TRadioButton
|
||||
AnchorSideLeft.Control = rbDupeCheck
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = chkTrueRST
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 152
|
||||
Left = 157
|
||||
Height = 23
|
||||
Top = 115
|
||||
Width = 129
|
||||
Top = 119
|
||||
Width = 122
|
||||
BorderSpacing.Left = 38
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'NoMode4Dupe'
|
||||
TabOrder = 18
|
||||
TabOrder = 19
|
||||
end
|
||||
object rbIgnoreDupes: TRadioButton
|
||||
AnchorSideLeft.Control = rbNoMode4Dupe
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtSTXStr
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 311
|
||||
Left = 317
|
||||
Height = 23
|
||||
Top = 115
|
||||
Width = 115
|
||||
Top = 119
|
||||
Width = 110
|
||||
BorderSpacing.Left = 38
|
||||
BorderSpacing.Top = 31
|
||||
Caption = 'Ignore dupes'
|
||||
TabOrder = 19
|
||||
TabOrder = 20
|
||||
end
|
||||
object btClearAll: TButton
|
||||
AnchorSideLeft.Control = btSave
|
||||
AnchorSideTop.Control = rbDupeCheck
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 589
|
||||
Height = 30
|
||||
Top = 115
|
||||
Width = 80
|
||||
Caption = 'Clear All'
|
||||
OnClick = btClearAllClick
|
||||
TabOrder = 5
|
||||
TabStop = False
|
||||
end
|
||||
object tmrESC2: TTimer
|
||||
Enabled = False
|
||||
OnTimer = tmrESC2Timer
|
||||
left = 672
|
||||
top = 112
|
||||
Left = 672
|
||||
Top = 112
|
||||
end
|
||||
end
|
||||
|
106
src/fContest.pas
106
src/fContest.pas
@ -13,8 +13,9 @@ type
|
||||
{ TfrmContest }
|
||||
|
||||
TfrmContest = class(TForm)
|
||||
btClearAll: TButton;
|
||||
btSave: TButton;
|
||||
btClearAll : TButton;
|
||||
btClearQso : TButton;
|
||||
chkTabAll: TCheckBox;
|
||||
chkQsp: TCheckBox;
|
||||
chkTrueRST: TCheckBox;
|
||||
@ -45,8 +46,9 @@ type
|
||||
rbIgnoreDupes: TRadioButton;
|
||||
sbContest: TStatusBar;
|
||||
tmrESC2: TTimer;
|
||||
procedure btClearAllClick(Sender: TObject);
|
||||
procedure btSaveClick(Sender: TObject);
|
||||
procedure btClearAllClick(Sender : TObject);
|
||||
procedure btClearQsoClick(Sender : TObject);
|
||||
procedure chkNoNrChange(Sender: TObject);
|
||||
procedure chkNRIncChange(Sender: TObject);
|
||||
procedure chkNRIncClick(Sender : TObject);
|
||||
@ -78,7 +80,8 @@ type
|
||||
procedure TabStopAllOn;
|
||||
procedure QspMsg;
|
||||
procedure ClearStatusBar;
|
||||
procedure ShowStatusBarInfo();
|
||||
procedure ShowStatusBarInfo;
|
||||
procedure SaveSettings;
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
@ -209,30 +212,26 @@ begin
|
||||
|
||||
frmNewQSO.edtCall.Text := edtCall.Text;
|
||||
|
||||
if (rbIgnoreDupes.Checked) then
|
||||
if not (rbIgnoreDupes.Checked) then
|
||||
begin
|
||||
//dupe check
|
||||
dupe := frmWorkedGrids.WkdCall(edtCall.Text, dmUtils.GetBandFromFreq(frmNewQSO.cmbFreq.Text) ,frmNewQSO.cmbMode.Text);
|
||||
// 1= wkd this band and mode
|
||||
// 2= wkd this band but NOT this mode
|
||||
if ((dupe = 1 ) or ((dupe = 2 ) and (rbNoMode4Dupe.Checked ))) then
|
||||
begin //dupe
|
||||
edtCall.Font.Color:=clRed;
|
||||
edtCall.Font.Style:= [fsBold];
|
||||
frmNewQSO.edtRemQSO.Caption:='Dupe';
|
||||
end
|
||||
else begin //clear dupe if user press 1xESC and change call not to be dupe
|
||||
edtCall.Font.Color:=clDefault;
|
||||
edtCall.Font.Style:= [];
|
||||
frmNewQSO.edtRemQSO.Caption:='';
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
edtCall.Font.Color:=clDefault;
|
||||
edtCall.Font.Style:= [];
|
||||
frmNewQSO.edtRemQSO.Caption:='';
|
||||
end;
|
||||
|
||||
if ( (rbNoMode4Dupe.Checked) and (dupe = 1) )
|
||||
or ( (not rbNoMode4Dupe.Checked) and ((dupe = 1) or (dupe=2)) )then
|
||||
Begin
|
||||
edtCall.Font.Color:=clRed;
|
||||
edtCall.Font.Style:= [fsBold];
|
||||
frmNewQSO.edtRemQSO.Caption:='Dupe';
|
||||
end
|
||||
else
|
||||
Begin
|
||||
edtCall.Font.Color:=clDefault;
|
||||
edtCall.Font.Style:= [];
|
||||
frmNewQSO.edtRemQSO.Caption:='';
|
||||
end;
|
||||
end;
|
||||
//report in NEwQSO changes to 59 to late (after passing cmbMode)
|
||||
//NOTE! if mode is not in list program dies! In that case skip next
|
||||
if frmNewQSO.cmbMode.ItemIndex >=0 then
|
||||
@ -277,9 +276,29 @@ begin
|
||||
Writeln('input finale');
|
||||
ChkSerialNrUpd(chkNRInc.Checked);
|
||||
initInput;
|
||||
SaveSettings; //we have to do this here,
|
||||
//otherwise saved serial number fails if cqrlog is closed without first closing contest form
|
||||
end;
|
||||
|
||||
procedure TfrmContest.btClearAllClick(Sender : TObject);
|
||||
procedure TfrmContest.btClearAllClick(Sender: TObject);
|
||||
begin
|
||||
rbDupeCheck.Checked := True;
|
||||
rbNoMode4Dupe.Checked := False;
|
||||
rbIgnoreDupes.Checked := False;
|
||||
|
||||
chkSpace.Checked := False;
|
||||
chkTrueRST.Checked := False;
|
||||
chkNRInc.Checked := False;
|
||||
chkQsp.Checked := False;
|
||||
chkNoNr.Checked := False;
|
||||
chkLoc.Checked := False;
|
||||
|
||||
edtSTX.Text := '';
|
||||
edtSTXStr.Text := '';
|
||||
cmbContestName.Text:= '';
|
||||
end;
|
||||
|
||||
procedure TfrmContest.btClearQsoClick(Sender : TObject);
|
||||
begin
|
||||
frmNewQSO.ClearAll;
|
||||
initInput
|
||||
@ -385,8 +404,7 @@ begin
|
||||
frmContest.KeyPreview := True;
|
||||
dmUtils.InsertContests(cmbContestName);
|
||||
end;
|
||||
|
||||
procedure TfrmContest.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
procedure TfrmContest.SaveSettings;
|
||||
begin
|
||||
dmUtils.SaveWindowPos(frmContest);
|
||||
|
||||
@ -403,6 +421,11 @@ begin
|
||||
|
||||
cqrini.WriteString('frmContest', 'STX', edtSTX.Text);
|
||||
cqrini.WriteString('frmContest', 'STXStr', edtSTXStr.Text);
|
||||
cqrini.WriteString('frmContest', 'ContestName', cmbContestName.Text);
|
||||
end;
|
||||
procedure TfrmContest.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
Begin
|
||||
SaveSettings;
|
||||
end;
|
||||
|
||||
procedure TfrmContest.FormHide(Sender: TObject);
|
||||
@ -439,6 +462,7 @@ begin
|
||||
sbContest.Panels[3].Width := 65;
|
||||
sbContest.Panels[4].Width := 20;
|
||||
lblSpeed.Caption:= frmNewQSO.sbNewQSO.Panels[4].Text;
|
||||
cmbContestName.Text := cqrini.ReadString('frmContest', 'ContestName','');
|
||||
end;
|
||||
|
||||
procedure TfrmContest.btnHelpClick(Sender : TObject);
|
||||
@ -469,22 +493,7 @@ begin
|
||||
edtCall.Font.Style:= [];
|
||||
edtCall.Clear;
|
||||
EscFirstTime := True;
|
||||
{
|
||||
Next 3 lines of procedure will cause
|
||||
----
|
||||
either (dbg msg:input finale):
|
||||
|
||||
NOTE: Window with stalled focus found!, faking focus-out event
|
||||
(cqrlog:2643): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed
|
||||
----
|
||||
or(dbg msg: Clear all done next focus ):
|
||||
|
||||
NOTE: Window with stalled focus found!, faking focus-out event
|
||||
|
||||
----
|
||||
All works, but this needs attention and I can not resolve this at the moment.
|
||||
|
||||
}
|
||||
SetTabOrders;
|
||||
frmContest.ShowOnTop;
|
||||
frmContest.SetFocus;
|
||||
@ -574,8 +583,15 @@ Begin
|
||||
|
||||
btSave.TabStop := True;
|
||||
btSave.TabOrder := 7;
|
||||
btClearAll.TabStop := True;
|
||||
btClearAll.TabOrder := 8;
|
||||
btClearQso.TabStop := True;
|
||||
btClearQso.TabOrder := 8;
|
||||
|
||||
rbDupeCheck.TabStop:=false;
|
||||
rbNoMode4Dupe.TabStop:=false;
|
||||
rbIgnoreDupes.TabStop:=false;
|
||||
btClearAll.TabStop:=false;
|
||||
chkTabAll.TabStop:=false;
|
||||
cmbContestName.TabStop:=false;
|
||||
end;
|
||||
procedure TfrmContest.QspMsg;
|
||||
Begin
|
||||
@ -597,7 +613,7 @@ Begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmContest.ClearStatusBar();
|
||||
procedure TfrmContest.ClearStatusBar;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
@ -605,9 +621,9 @@ begin
|
||||
sbContest.Panels.Items[i].Text := '';
|
||||
end;
|
||||
|
||||
procedure TfrmContest.ShowStatusBarInfo();
|
||||
procedure TfrmContest.ShowStatusBarInfo;
|
||||
begin
|
||||
sbContest.Panels.Items[0].Text := Trim(frmNewQSO.mCountry.Text);
|
||||
sbContest.Panels.Items[0].Text := StringReplace(Trim(frmNewQSO.mCountry.Text),#$0A,'|',[rfReplaceAll]);
|
||||
sbContest.Panels.Items[1].Text := 'WAZ: ' + frmNewQSO.lblWAZ.Caption;
|
||||
sbContest.Panels.Items[2].Text := 'ITU: ' + frmNewQSO.lblITU.Caption;
|
||||
sbContest.Panels.Items[3].Text := 'AZ: ' + frmNewQSO.lblAzi.Caption;
|
||||
|
@ -11,7 +11,7 @@ const
|
||||
cBUILD = 1;
|
||||
|
||||
|
||||
cBUILD_DATE = '2021-11-20';
|
||||
cBUILD_DATE = '2021-11-22';
|
||||
|
||||
|
||||
implementation
|
||||
|
Loading…
Reference in New Issue
Block a user