Save/Load to CW messages

Suddenly needed to have just CW memories from another log to current one. No easy way. Needed a tool to do it. This addition allows also having several sets of messages to be saved for future use like contests, WWFF, SOTA etc. peditions without saving whole configuration via OpenDB/Utils/Configuration.
Output format is compatible with configuration file so .cwm file can be added to configuration file with text editor if needed.

 - Added save/load to CW messages to allow different sets of messages to be changed. Latest loaded set will go to log's preferences like it always does after message edit is closed.
 - removed contest oriented tabs "RUN" and "S&P"(that was hidden already) and replaced "RUN" tab with simple group box.
 - Fixed ancoring and placing as new group box "CW Messages save/load" was added

Squashed commit of the following:

commit 35c25f4aa9
Author: OH1KH <oh1kh@sral.fi>
Date:   Mon Feb 8 12:37:27 2021 +0200

    small fixes

commit 784ac611d9
Author: OH1KH <oh1kh@sral.fi>
Date:   Sun Feb 7 14:21:17 2021 +0200

    Save/Load to CW messages

     - Added save/load to CW messages to allow different sets of messages to be changed. Latest loaded set will go to log's preferences like it always does after message edit is closed.
     - removed contest oriented tabs RUN and S&P(that was hidden already) and replaced
     RUN with a group box.
     - Fixed ancoring and placing as new group box "CW Messages save/load" was added
This commit is contained in:
OH1KH 2021-02-08 12:48:37 +02:00
parent ccac764466
commit c8083c815a
5 changed files with 780 additions and 936 deletions

View File

@ -37,7 +37,7 @@
<img src=img/h96b.png>&nbsp;&nbsp;<img src=img/h96.png><br><br> <img src=img/h96b.png>&nbsp;&nbsp;<img src=img/h96.png><br><br>
Choose the <strong>CW Messages</strong> option. By using the form opened you can edit your CW messages that Choose the <strong>CW Messages</strong> option. By using the form opened you can edit your CW messages that
will be sent when you press the corresponding <strong>F</strong>-key(s). will be sent when you press the corresponding <strong>F</strong>-key(s).
You can set up to 10 predefined messages:<br><br> You can set up to 10 predefined messages. Save and load them from file for quick change of all messages.<br><br>
<img src=img/h97.png><br><br><a name="predef"> <img src=img/h97.png><br><br><a name="predef">
There are some predefined macros which you can use in your messages:</a><br><br> There are some predefined macros which you can use in your messages:</a><br><br>
<table border="0" cellpadding="5" cellspacing="2" width="50%"> <table border="0" cellpadding="5" cellspacing="2" width="50%">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 50 KiB

File diff suppressed because it is too large Load Diff

View File

@ -26,10 +26,8 @@ type
edtCapF7: TEdit; edtCapF7: TEdit;
edtCapF8: TEdit; edtCapF8: TEdit;
edtCapF9: TEdit; edtCapF9: TEdit;
edtF10: TEdit;
edtF9: TEdit;
edtSPCapF1: TEdit;
edtF1: TEdit; edtF1: TEdit;
edtF10: TEdit;
edtF2: TEdit; edtF2: TEdit;
edtF3: TEdit; edtF3: TEdit;
edtF4: TEdit; edtF4: TEdit;
@ -37,38 +35,11 @@ type
edtF6: TEdit; edtF6: TEdit;
edtF7: TEdit; edtF7: TEdit;
edtF8: TEdit; edtF8: TEdit;
edtSPCapF10: TEdit; edtF9: TEdit;
edtSPCapF2: TEdit;
edtSPCapF3: TEdit;
edtSPCapF4: TEdit;
edtSPCapF5: TEdit;
edtSPCapF6: TEdit;
edtSPCapF7: TEdit;
edtSPCapF8: TEdit;
edtSPCapF9: TEdit;
edtSPF1: TEdit;
edtSPF10: TEdit;
edtSPF2: TEdit;
edtSPF3: TEdit;
edtSPF4: TEdit;
edtSPF5: TEdit;
edtSPF6: TEdit;
edtSPF7: TEdit;
edtSPF8: TEdit;
edtSPF9: TEdit;
GroupBox1: TGroupBox; GroupBox1: TGroupBox;
GroupBox10: TGroupBox; GroupBox10: TGroupBox;
GroupBox11: TGroupBox; GroupBox11: TGroupBox;
GroupBox12: TGroupBox;
GroupBox13: TGroupBox;
GroupBox14: TGroupBox;
GroupBox15: TGroupBox;
GroupBox16: TGroupBox;
GroupBox17: TGroupBox;
GroupBox18: TGroupBox;
GroupBox19: TGroupBox;
GroupBox2: TGroupBox; GroupBox2: TGroupBox;
GroupBox20: TGroupBox;
GroupBox3: TGroupBox; GroupBox3: TGroupBox;
GroupBox4: TGroupBox; GroupBox4: TGroupBox;
GroupBox5: TGroupBox; GroupBox5: TGroupBox;
@ -84,47 +55,31 @@ type
Label14: TLabel; Label14: TLabel;
Label15: TLabel; Label15: TLabel;
Label16: TLabel; Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label2: TLabel; Label2: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label3: TLabel; Label3: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel; Label33: TLabel;
Label34: TLabel; Label34: TLabel;
Label35: TLabel; Label35: TLabel;
Label36: TLabel; Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
Label4: TLabel; Label4: TLabel;
Label40: TLabel;
Label5: TLabel; Label5: TLabel;
Label6: TLabel; Label6: TLabel;
Label7: TLabel; Label7: TLabel;
Label8: TLabel; Label8: TLabel;
Label9: TLabel; Label9: TLabel;
pgCWTexts: TPageControl; LoadMsg: TButton;
Panel1: TPanel; OpenDialog1: TOpenDialog;
pnlMain: TPanel;
rgEnter: TRadioGroup; rgEnter: TRadioGroup;
tabRunMode: TTabSheet; pnlControl: TPanel;
tabSPMode: TTabSheet; SaveDialog1: TSaveDialog;
SaveMsg: TButton;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure btnHelpClick(Sender: TObject); procedure btnHelpClick(Sender: TObject);
procedure btnOKClick(Sender: TObject); procedure btnOKClick(Sender: TObject);
procedure LoadMsgClick(Sender: TObject);
procedure SaveMsgClick(Sender: TObject);
private private
{ private declarations } { private declarations }
public public
@ -146,8 +101,7 @@ var
begin begin
dmUtils.LoadWindowPos(frmKeyTexts); dmUtils.LoadWindowPos(frmKeyTexts);
section := 'CW'; section := 'CW';
pgCWTexts.Pages[1].TabVisible := False;
pgCWTexts.Pages[0].Caption := '';
edtF1.text := cqrini.ReadString(section,'F1','cq cq de %mc %mc pse K'); edtF1.text := cqrini.ReadString(section,'F1','cq cq de %mc %mc pse K');
edtF2.text := cqrini.ReadString(section,'F2',''); edtF2.text := cqrini.ReadString(section,'F2','');
edtF3.text := cqrini.ReadString(section,'F3',''); edtF3.text := cqrini.ReadString(section,'F3','');
@ -211,6 +165,77 @@ begin
cqrini.SaveToDisk; cqrini.SaveToDisk;
ModalResult := mrOK ModalResult := mrOK
end; end;
procedure TfrmKeyTexts.LoadMsgClick(Sender: TObject);
var
section : String = '';
CwM : TMemIniFile;
begin
OpenDialog1.InitialDir:= dmData.HomeDir;
if OpenDialog1.Execute then
begin
CWM := TMemIniFile.Create(OpenDialog1.Filename);
section := 'CW';
edtF1.text := CWM.ReadString(section,'F1','cq cq de %mc %mc pse K');
edtF2.text := CWM.ReadString(section,'F2','');
edtF3.text := CWM.ReadString(section,'F3','');
edtF4.text := CWM.ReadString(section,'F4','');
edtF5.text := CWM.ReadString(section,'F5','');
edtF6.text := CWM.ReadString(section,'F6','');
edtF7.text := CWM.ReadString(section,'F7','');
edtF8.text := CWM.ReadString(section,'F8','');
edtF9.text := CWM.ReadString(section,'F9','');
edtF10.text := CWM.ReadString(section,'F10','');
edtCapF1.text := CWM.ReadString(section,'CapF1','F1 - CQ');
edtCapF2.text := CWM.ReadString(section,'CapF2','F2');
edtCapF3.text := CWM.ReadString(section,'CapF3','F3');
edtCapF4.text := CWM.ReadString(section,'CapF4','F4');
edtCapF5.text := CWM.ReadString(section,'CapF5','F5');
edtCapF6.text := CWM.ReadString(section,'CapF6','F6');
edtCapF7.text := CWM.ReadString(section,'CapF7','F7');
edtCapF8.text := CWM.ReadString(section,'CapF8','F8');
edtCapF9.text := CWM.ReadString(section,'CapF9','F9');
edtCapF10.text := CWM.ReadString(section,'CapF10','F10');
rgEnter.ItemIndex := CWM.ReadInteger(section,'EnterFunction',1);
FreeAndNil(CWM);
end;
end;
procedure TfrmKeyTexts.SaveMsgClick(Sender: TObject);
var
section : String = '';
CwM : TMemIniFile;
begin
SaveDialog1.InitialDir:= dmData.HomeDir;
if SaveDialog1.Execute then
begin
CWM := TMemIniFile.Create(SaveDialog1.Filename);
section := 'CW';
section := 'CW';
CWM.WriteString(section,'F1',edtF1.Text);
CWM.WriteString(section,'F2',edtF2.Text);
CWM.WriteString(section,'F3',edtF3.Text);
CWM.WriteString(section,'F4',edtF4.Text);
CWM.WriteString(section,'F5',edtF5.Text);
CWM.WriteString(section,'F6',edtF6.Text);
CWM.WriteString(section,'F7',edtF7.Text);
CWM.WriteString(section,'F8',edtF8.Text);
CWM.WriteString(section,'F9',edtF9.Text);
CWM.WriteString(section,'F10',edtF10.Text);
CWM.WriteString(section,'CapF1',edtCapF1.Text);
CWM.WriteString(section,'CapF2',edtCapF2.Text);
CWM.WriteString(section,'CapF3',edtCapF3.Text);
CWM.WriteString(section,'CapF4',edtCapF4.Text);
CWM.WriteString(section,'CapF5',edtCapF5.Text);
CWM.WriteString(section,'CapF6',edtCapF6.Text);
CWM.WriteString(section,'CapF7',edtCapF7.Text);
CWM.WriteString(section,'CapF8',edtCapF8.Text);
CWM.WriteString(section,'CapF9',edtCapF9.Text);
CWM.WriteString(section,'CapF10',edtCapF10.Text);
CWM.WriteInteger(section,'EnterFunction',rgEnter.ItemIndex);
CWM.UpdateFile;
FreeAndNil(CWM);
end;
end;
end. end.

View File

@ -10,7 +10,7 @@ const
cRELEAS = 1; cRELEAS = 1;
cBUILD = 1; cBUILD = 1;
cBUILD_DATE = '2021-02-03'; cBUILD_DATE = '2021-02-07';
implementation implementation