Added 'Stop' indicator when cell is selected.Fixed bug that randomly selected a roe(same column as before) if column was selected, then form focus loosed and again returned. Help files fixed.

This commit is contained in:
OH1KH 2020-04-03 12:37:33 +03:00
parent 1c95d4a7c1
commit 732512331d
5 changed files with 113 additions and 27 deletions

View File

@ -28,33 +28,49 @@
</table>
<br>
<div style="text-align: left;"><strong>CQRLOG for LINUX by OK7AN &amp; OK1RR</strong></div>
<p align=center><img src=img/line.png></p>
<p align="center"><img src=img/line.png></p>
<h3>RBN monitor</h3>
<p> RBN monitor window opens from NewQSO/Window/RBN monitor.<br>
<p> RBN monitor window opens from NewQSO/Window/RBN monitor.</p>
<table border="0" cellpadding="5" cellspacing="2" width="100%">
<tbody>
Grid cells for DX heard:
<ul><ul>
<li>Source callsign for info</li>
<li>Frequency</li>
<li>Callsign</li>
<li>Mode</li>
<li>Singnal streght</li>
<li>Is DX Lotw or/and Eqsl user</li>
<li>DX status against your log: New county, new Band, new Mode</li>
</ul>
</ul>
</p><p><img src="img/h31-1.png"><br></p>
<p><br>Tool buttons from left to right are:
<ul>
<li> Connect to RBN</li>
<li> Set RBN connect address and username</li>
<li> Set Filter criteria</li>
<li> Set Font for RBN grid</li>
<li> Scroll down to last line</li>
<li> Clear RBN grid</li>
<li> Help</li>
</ul>
Set RBN address to connect and username to use.
<tr>
<td>
Grid cells for DX heard:
<ul>
<li>Source callsign for info</li>
<li>Frequency</li>
<li>Callsign</li>
<li>Mode</li>
<li>Singnal streght</li>
<li>Is DX Lotw or/and Eqsl user</li>
<li>DX status against your log: New county, new Band, new Mode</li>
</ul>
</td>
<td>
Tool buttons from left to right are:
<ul>
<li> Connect to RBN</li>
<li> Set RBN connect address and username</li>
<li> Set Filter criteria</li>
<li> Set Font for RBN grid</li>
<li> Go to last line</li>
<li> Clear RBN grid</li>
<li> Help</li>
</ul>
</td>
</tr>
<tr>
<td><img src="img/h31-1.png"></td>
<td><img src="img/h31-5.png"></td>
</tr>
</tbody>
</table>
</p>
<p>If any column in any RBN spot row is clicked scrolling is stopped to enable better study of spot. If tool button "Go to last line" is pressed scrolling is again released.
Double click on any column of RBN spot row will take the DX callsign of that row to New QSO and move rig frequency to DX frequency (if rig CAT is used).
</p><p> With other tool buttons you can:
<br>Set RBN address to connect and username to use.
<br><br><img src="img/h31-2.png"><br></p>
<p> Set filter criteria for RBN
<br><br><img src="img/h31-3.png"><br></p>
@ -66,7 +82,7 @@
<p align=center><img src=img/line.png></p>
<p align="center"><img src=img/line.png></p>
<br>
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tbody>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 38 KiB

BIN
help/img/h31-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -8,8 +8,10 @@ object frmRbnMonitor: TfrmRbnMonitor
ClientHeight = 602
ClientWidth = 665
KeyPreview = True
OnActivate = FormActivate
OnClose = FormClose
OnCreate = FormCreate
OnDeactivate = FormDeactivate
OnDestroy = FormDestroy
OnKeyUp = FormKeyUp
OnShow = FormShow
@ -106,6 +108,23 @@ object frmRbnMonitor: TfrmRbnMonitor
Caption = 'btnEatFocus'
TabOrder = 0
end
object lbStop: TLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Side = asrCenter
Left = 208
Height = 23
Top = 2
Width = 53
Align = alBottom
Caption = 'STOP'
Font.Color = clRed
Font.Height = -19
Font.Name = 'Monospace'
Font.Style = [fsBold]
ParentColor = False
ParentFont = False
Visible = False
end
end
object sbRbn: TStatusBar
Left = 0
@ -130,6 +149,8 @@ object frmRbnMonitor: TfrmRbnMonitor
TabOrder = 2
OnDblClick = sgRbnDblClick
OnDrawCell = sgRbnDrawCell
OnEnter = sgRbnEnter
OnExit = sgRbnExit
OnHeaderSized = sgRbnHeaderSized
ColWidths = (
64
@ -506,4 +527,11 @@ object frmRbnMonitor: TfrmRbnMonitor
left = 122
top = 215
end
object tmrUnfocus: TTimer
Enabled = False
Interval = 50
OnTimer = tmrUnfocusTimer
left = 484
top = 85
end
end

View File

@ -6,7 +6,8 @@ interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ComCtrls, ActnList, StdCtrls, Grids, lNetComponents, lNet, lclType, RegExpr;
ComCtrls, ActnList, StdCtrls, Grids, lNetComponents, lNet, lclType, ExtCtrls,
RegExpr;
const
C_MAX_ROWS = 1000; //max lines in the list of RBN spots
@ -81,8 +82,10 @@ type
btnEatFocus : TButton;
dlgFont: TFontDialog;
imgRbnMonitor: TImageList;
lbStop: TLabel;
sbRbn: TStatusBar;
sgRbn: TStringGrid;
tmrUnfocus: TTimer;
ToolBar1: TToolBar;
tbtnConnect: TToolButton;
ToolButton1 : TToolButton;
@ -104,16 +107,21 @@ type
procedure acHelpExecute(Sender : TObject);
procedure acRbnServerExecute(Sender: TObject);
procedure acScrollDownExecute(Sender : TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyUp(Sender : TObject; var Key : Word; Shift : TShiftState);
procedure FormShow(Sender: TObject);
procedure sgRbnDblClick(Sender: TObject);
procedure sgRbnDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect;
aState: TGridDrawState);
procedure sgRbnEnter(Sender: TObject);
procedure sgRbnExit(Sender: TObject);
procedure sgRbnHeaderSized(Sender: TObject; IsColumn: Boolean;
Index: Integer);
procedure tmrUnfocusTimer(Sender: TObject);
private
RbnMonThread : TRbnThread;
lTelnet : TLTelnetClientComponent;
@ -583,6 +591,7 @@ begin
lTelnet.OnReceive := @lReceive
end;
procedure TfrmRbnMonitor.FormDestroy(Sender: TObject);
begin
FreeAndNil(lTelnet);
@ -642,12 +651,45 @@ begin
end }
end;
procedure TfrmRbnMonitor.sgRbnEnter(Sender: TObject);
begin
lbStop.Visible:=true;
end;
procedure TfrmRbnMonitor.sgRbnExit(Sender: TObject);
begin
lbStop.Visible:=false;
end;
procedure TfrmRbnMonitor.sgRbnHeaderSized(Sender: TObject; IsColumn: Boolean;
Index: Integer);
begin
btnEatFocus.SetFocus
end;
procedure TfrmRbnMonitor.FormDeactivate(Sender: TObject);
begin
lbStop.Visible:=false;
end;
//-------------------------------------------------
//if sgRbn cell is selected, then rbn monitor form looses focus and when it gets focus again
//another cell is randomly selected. There is no way to unselect column when from looses focus.
//(or then there is bug because it does not work in any way)
//ScrollDown releases focus but it cannot be called when
//form gets focus or it causes focus loop. Small delay fixes it and prevents loop.
procedure TfrmRbnMonitor.FormActivate(Sender: TObject);
begin
tmrUnfocus.Enabled:=true;
end;
procedure TfrmRbnMonitor.tmrUnfocusTimer(Sender: TObject);
begin
tmrUnfocus.Enabled:=false;
acScrollDownExecute(nil);
end;
//-------------------------------------------------
procedure TfrmRbnMonitor.LoadConfigToThread;
begin
if Assigned(RbnMonThread) then