Locator in standard format:
This was intended to be a fix for issue #187 but it grow up during programming. -sets now locator writing by standard format "AB12cd" as described in https://en.wikipedia.org/wiki/Maidenhead_Locator_System#Description_of_the_system Also adif.org uses this link as reference in their descriptions. Writing format is forced at typing phase (I hope I found all loc inputs). Also ADIF input/output forces formatting and finally save qso to database will make sure the format is right. -Playing with locators made an idea of showing distances in QSO list. How ever Lazarus DBGrid does not allow showing calculated columns. Either an additional unit must be used to do this or database needs a new column "distance". That is why a selected QSO's distance is shown at bottom status area with "comment", "Award" and QSL times with total and longest qso distances of log or filter selection. But only if checked to be visible from preferences/visible columns (although it is not actually a column). -preferences/program/Show distance in miles affects also all places where distance is now shown. -Distance can also be selected to exist in ADIF, HTML and QSL label exports. -QSL label export has some new selections with distance. They are: Propagation, Satellite, Contest name and contest exchanges (4) -HTML export output is fixed to support CSS and HTML5. HTML export has now working column width (by average char count, not in pixels) or Auto column width selection. -HTML export column names can be changed by user. -Help files are updated Squashed commit of the following: commit de1cccf58e7698b275fa49be7765dde6665199f4 Author: OH1KH <oh1kh@sral.fi> Date: Wed Oct 2 20:09:08 2019 +0300 Found small big in fraExportPref commit f7697e910d6cf0e595d22d7c6fefb5999b04255b Author: OH1KH <oh1kh@sral.fi> Date: Tue Oct 1 09:55:34 2019 +0300 help update commit a4958fda68db0117666ac47841aa92a28a473b36 Author: OH1KH <oh1kh@sral.fi> Date: Mon Sep 30 16:56:29 2019 +0300 NewQso:fix rxfreq input limit. QSLlabes: new selections to print commit 97479517135aa2c973cd02045bdc3af81f4c7046 Author: OH1KH <oh1kh@sral.fi> Date: Sun Sep 29 14:52:58 2019 +0300 Fixed: adif: export line cut. Html: profile export commit 596802fdb2959495b1cb6f0b53363c249cb48fc4 Author: OH1KH <oh1kh@sral.fi> Date: Sun Sep 29 10:37:53 2019 +0300 More bugs found commit cd3b9b2d7dbbdb03a80e804b9829ebe8e8a47092 Author: OH1KH <oh1kh@sral.fi> Date: Sat Sep 28 18:36:17 2019 +0300 help file updates commit f35c5d3f61ad4f29d8012e899a94ed23586f373a Author: OH1KH <oh1kh@sral.fi> Date: Sat Sep 28 12:27:49 2019 +0300 Some code fixes. Now needs testing with ADIF impoirt/export and HTML export commit 099c6a452d60b3f01271be16c84fab08a70466c5 Author: OH1KH <oh1kh@sral.fi> Date: Fri Sep 27 22:25:17 2019 +0300 Now HTML export idea works. Width counting not.Also adif export needs testing commit 4b3ff4d6f23ea18d44cfb19090b6b15c070ce4b8 Author: OH1KH <oh1kh@sral.fi> Date: Fri Sep 27 21:26:56 2019 +0300 Little bit closer to working HTML export. But not ready! commit 0f9e559548be84b3b3ed1069e1ed85d0dfa846b4 Author: OH1KH <oh1kh@sral.fi> Date: Fri Sep 27 19:14:44 2019 +0300 Untested backup push commit 0a1107548c3b58beaf08d727f0426395ddf3dc52 Author: OH1KH <oh1kh@sral.fi> Date: Fri Sep 27 13:32:30 2019 +0300 small steps, but still errors and lot of fix commit cb1e3934d0c208dcaac3fd45fa18194234bcc48f Merge: 42d7e5cc820289
Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 26 21:10:54 2019 +0300 Merge branch 'master' into loc_std commit 42d7e5caf3cb7f2a914a776b631a4b54beb69293 Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 26 21:07:34 2019 +0300 Big changes to html export. Not full ready yet commit 32e70f0f6401af78bcfddc0c48befc8158d867cf Author: OH1KH <oh1kh@sral.fi> Date: Wed Sep 25 20:53:39 2019 +0300 rewiting of HTML export. Not ready yet commit f5faa689f3ba7adb3003c67941d2db2d6520b9ef Author: OH1KH <oh1kh@sral.fi> Date: Tue Sep 24 11:04:37 2019 +0300 Minor fixes. Might help for 'xxxx-xx-xx is not valid date' error that sometimes occurs again (once fixed in wsjt remote) commit 8512a06efacfe73419dbb507b95042692325a20e Author: OH1KH <oh1kh@sral.fi> Date: Mon Sep 23 19:33:42 2019 +0300 Several small fixes commit 2a48fdfffae905f4afe32eb8e99a89e16d7c1491 Author: OH1KH <oh1kh@sral.fi> Date: Mon Sep 23 11:42:23 2019 +0300 Contest has loc writing by std. Lbl print no dist unit.Html exp mi/km but has error commit af75d9a4d86130aa460684bd9859fa8505d5b7d8 Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 19 19:53:40 2019 +0300 Adding distance in km/mi by preferences/program setting commit 9375f57beb1952109db35b24b47d1dc32e4163fb Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 19 13:21:41 2019 +0300 Updates to help files commit c2954dcbaf600507844f4ce6c25951b50d7edf17 Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 19 13:11:50 2019 +0300 Updates to help files commit ce7bbf2f184c93d063c2141d20cf5060813798d4 Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 19 11:21:10 2019 +0300 fixed preferences view commit 6335fdaedc051bcffde70e1c9c0cf4052abb0748 Merge: c9dc4243bbe8db
Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 19 10:56:13 2019 +0300 Merge branch 'master' into loc_std commit c9dc42436df9c7a96d914491af29b724df99009c Author: OH1KH <oh1kh@sral.fi> Date: Wed Sep 18 09:53:16 2019 +0300 Preferences visible columns: add (in pnl) for Distance as it is not in column commit 2670c54d8ca8ccf614d65d3b1f6dcd636d83646f Author: OH1KH <oh1kh@sral.fi> Date: Wed Sep 18 09:48:31 2019 +0300 Added distance choice to qsl label printing commit 8406464cfa1dd7240afca7f12fe959d3fd7141da Author: OH1KH <oh1kh@sral.fi> Date: Tue Sep 17 21:14:43 2019 +0300 Removed not working distance column code. Focus to first release with only status panel distance commit 7154459c8103fea746f809247e50446d81c1501c Author: OH1KH <oh1kh@sral.fi> Date: Mon Sep 16 16:55:43 2019 +0300 commented out not woking parts of code commit 594e0b9d3862d4cb635ab101c11b0ba558b97b62 Author: OH1KH <oh1kh@sral.fi> Date: Fri Sep 13 13:20:48 2019 +0300 Again a try to write calculated content to dispaly-field(causes error) commit 63de897ce8289478291116b5ee2168cad0a7bf5f Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 12 12:00:47 2019 +0300 some fixes to distance visibility commit 70a95c4fdd58dd78788ab7ad33bdd1037581d581 Author: OH1KH <oh1kh@sral.fi> Date: Wed Sep 11 17:45:35 2019 +0300 Problem with inherited fraEx fixed (?) commit d014e960143102332677e8a8b6d4065436d69aab Author: OH1KH <oh1kh@sral.fi> Date: Wed Sep 11 13:12:27 2019 +0300 Fixed anchoring of export selections frame commit ac6914ee14648e14325cc11797e05592b1f5f189 Author: OH1KH <oh1kh@sral.fi> Date: Mon Sep 9 18:45:12 2019 +0300 Not yet (?)a way to get 'distance' to dbGrid as it is not database field' commit a0376a9a86ca9d54e21ffcd581fb5010d68daaed Merge: 9609c81a5d0300
Author: OH1KH <oh1kh@sral.fi> Date: Sun Sep 8 18:26:07 2019 +0300 Merge branch 'master' into loc_std commit 9609c8125e0dedba5945722159137363ea95c7bb Author: OH1KH <oh1kh@sral.fi> Date: Sun Sep 8 17:01:47 2019 +0300 Sum is now called from better place, but still has problems with activate/deactivate filter commit 04565c5e0847ccf3450da6de2cbb9553b778e7ae Author: OH1KH <oh1kh@sral.fi> Date: Sat Sep 7 17:29:18 2019 +0300 counts dist,maxdist,sumdist at Main and Html export. Exports DISTANCE tag with adif export commit d9bd63ccf676f812e6af6b3e21ef8e69b0099b50 Author: OH1KH <oh1kh@sral.fi> Date: Thu Sep 5 12:11:16 2019 +0300 fixed log in Group edit. Where else loc is still unfixed? commit 5e229a4345c0c540588ddc1278ab7f049f97a632 Author: OH1KH <oh1kh@sral.fi> Date: Wed Sep 4 13:50:14 2019 +0300 new function StdFormatLocator. Related code changes. commit f13b240456cbadb2ecc3467a48acb811962f8d05 Author: OH1KH <oh1kh@sral.fi> Date: Tue Sep 3 20:22:57 2019 +0300 Set grid locator writing format to standard (up/lo case) AA00bb
@ -45,7 +45,8 @@ logging.
|
||||
<p>
|
||||
<b>HOTKEYS</b> work like in <a href="h20.html">New QSO window</a>.
|
||||
<ul><li> <b>2x ESC</b> clears all fileds</li>
|
||||
<li>Note: <b>1x ESC</b> returns cursor back to Call-field (if cursor is in some of the other fields like RSTr) and places cursor at the end of callsign for possible repairs.</li>
|
||||
<li>Note: <b>1x ESC</b> returns cursor back to Call-field (if cursor is in some of the other fields like RSTr) and places cursor at the end of callsign for possible repairs.<br>
|
||||
It also halts CW memory output if it is just running.</li>
|
||||
<li> <b> F1..F10 </b>send CW macros etc.</li></ul>
|
||||
</p>
|
||||
|
||||
@ -59,7 +60,7 @@ Form Contest has following fields and checkboxes:<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>
|
||||
<li><b>RST r</b> copied from NewQSO, so should correspond used mode. Can be changed.</li>
|
||||
<li><b>NR r</b> serial number you receive. No if no serial number then setting this changes tab order so that it jumps directly to MSG r from Call (and after that NR r). Note: you can feed only numbers to NR r field.</li>
|
||||
<li><b>MSG r</b> message you receive, if <b>MSG is LOC</b> is checked then message will be placed <b>ONLY</b> to NewQSO/Grid field <b>NOT</b> to received rst field</li>
|
||||
<li><b>MSG r</b> message you receive, if <b>MSG is LOC</b> is checked then message will be placed <b>ALSO</b> to NewQSO/Grid field <b>AND</b> to received msg field</li>
|
||||
<li><b>Save QSO</b> Save QSO button at NewQSO, increments NR and clears fields.</li>
|
||||
<li><b>Clear all</b> Clear all fields and prepare to enter new QSO</li>
|
||||
<li><b>SPACE is TAB</b> when checked space bar acts like TAB-key moving to next field.
|
||||
@ -71,7 +72,7 @@ type callsign->press TAB->type contest rxnumber->press TAB->type con
|
||||
Or hit ENTER after rxnumber if no additional message is exchanged.
|
||||
</p>
|
||||
<p>Remember that pressing <b>ENTER</b> key at any field saves qso with existing values. How ever there must be
|
||||
callsign at least three characters long. Sent/Received number and message are not needed.</p>
|
||||
callsign of least three characters long. Sent/Received number and message are not needed.</p>
|
||||
<p>
|
||||
Contest numbers and messages are saved in log into their own columns. Use <b>preferences/Visible columns</b> to show them in <b>Qso list</b>.
|
||||
For editing a qso these columns appear to <b>NewQSO</b> window when <b>contest</b> window is open and NewQso window is streched horizontally (DXCCinfo may override them).
|
||||
|
22
help/h1.html
@ -120,7 +120,7 @@
|
||||
is of high importance because it determines your accurate position (ie. you don't need to enter
|
||||
your exact coordinates). The QRA Locator is used in beam heading and distance computation as
|
||||
well as the start point of the simplified path to the other station which appears on the
|
||||
grayline map.
|
||||
grayline map.<br>Locator writing format is forced to "AB12cd" that follows definition https://en.wikipedia.org/wiki/Maidenhead_Locator_System#Description_of_the_system
|
||||
</div>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
<a name=ah4><h2><strong>New QSO</strong></h2></a>
|
||||
@ -169,7 +169,9 @@
|
||||
<img src=img/h8.png border=0><br><br>
|
||||
<div align=justify>
|
||||
Checked columns are visible in the previous QSO list appearing at the top of the
|
||||
logging screen.
|
||||
logging screen. Except "Distance" that makes calculated distances visible at QSO list panel area.
|
||||
<br>Display of distances requires that preferences/station/locator is set and applied (automatic) to every qso and that at least 4 digit locator (when "ll" is added as 5 and 6th char) of destination station is logged.
|
||||
Sometimes importing logs from other logging program may leave my locator unset. In this case QSO list/File/Group edit must be used for updating my locator field.
|
||||
</div>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
<a name=ah6><h2><strong>Bands</strong></h2></a>
|
||||
@ -244,8 +246,8 @@ changed at any time, however a program restart will probably be needed to make t
|
||||
take effect.<br><br>
|
||||
<strong>User definable digital modes</strong> can be set up in a separate box. Use comma
|
||||
as a separator, ie. BPSK31,QPSK64,OLIVIA,CONTESTIA etc.<br>
|
||||
Some TRX like ICOM don't have support for this in HamLib. To get mode settings work, set
|
||||
all values to 0 (zero).
|
||||
Some <strong>TRX like ICOM don't have support for this in HamLib. To get mode settings work, set
|
||||
all values to 0 (zero).</strong>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
<a name=ah9><h2><strong>QTH Profiles</strong></h2></a>
|
||||
<img src=img/h12.png border=0><br><br>
|
||||
@ -274,8 +276,14 @@ for each operation.
|
||||
</table>
|
||||
<br><br>
|
||||
This option allows an easy setup of the log fields to be exported into ADIF or HTML format.
|
||||
Only checked fields are exported. The 'Width' option denotes the column size in the HTML
|
||||
export.<br><br>
|
||||
Only checked fields are exported. The 'Column' option names columns at header line. 'Width' option denotes the column width in approx. count of 16px characters.
|
||||
Both options affect only for the HTML export.
|
||||
<br>Width setting is ignored if "HTML auto column width" is checked when longest text in column (column name or data) sets the column width.
|
||||
<br>Distances are not exported when doing log backup at cqlog closing phase. They will be calculated and exported (if selected) in ADIF, HTML and QSL label printing.
|
||||
Calculation of distances requires that preferences/station/locator is set and applied (automatic) to every qso and that at least 4 digit locator
|
||||
(in case "ll" is added as 5 and 6th char to get the center of grid) of destination station logged. Sometimes importing logs from other logging program may leave own station locator unset. In this case QSO list/File/Group edit must be used for updating "my locator" field.
|
||||
|
||||
<br><br>
|
||||
<a name=ah11><h2><strong>DX cluster</strong></h2></a>
|
||||
<img src=img/h14.png border=0><br><br>
|
||||
This dialog allows an easy setup of the DX cluster spot filtering. Check the bands you want
|
||||
@ -571,7 +579,7 @@ There are no known dependencies issues.<br><br>
|
||||
Of course, the export and compression takes some time, depending on the log size (QSO count).
|
||||
If you are not in a hurry, allow the program 2-3 minutes to perform this safety measure.
|
||||
We reccomend you backup your log to your hard drive from there it should be copied to
|
||||
other media (your server, USB flash, a memory card etc.).
|
||||
other media (your server, USB flash, a memory card etc.).<br>Distances are not exported in backup phase. So do not expect to find them from backup file.
|
||||
</br></br><img src="img/h119.png"><br><br>
|
||||
Check both "Enable autobackup after program ends" and "Ask before creating a backup" to prevent closing cqrlog accidently. Answering <strong>"Cancel"</strong> to question returns to NewQso without backup.
|
||||
<a name=ch4><h2><strong>External viewers</strong></h2></a>
|
||||
|
@ -277,7 +277,7 @@
|
||||
distance, azimuth (direction), date and local time of the target point
|
||||
and the salutation corresponding to the local time (GM, GE etc.). <br><br>
|
||||
<b>Contest section</b> in NewQSO window is for <b>editing logged qsos, not for entering contest qsos</b>.
|
||||
This part is only visible if contest window is active.<br><br>
|
||||
<i> This part is only visible if contest window is active.</i><br><br>
|
||||
|
||||
|
||||
You can add a general long note to your log with the Ctrl-N key (from
|
||||
|
@ -96,7 +96,7 @@ For LoTW operations see <a href=h7.html><strong>here</strong></a>.
|
||||
(Send Manager- Direct) in any combination are exported.
|
||||
</div>
|
||||
<br>
|
||||
<IMG src="img/h70.png"><br><br>
|
||||
<IMG src="img/h70.png"><IMG src="img/h70b.png"><br><br>
|
||||
<strong>Batch QSL label printing</strong>
|
||||
|
||||
<div align="justify">This method can be used if no QSO records are marked.
|
||||
|
@ -59,9 +59,24 @@
|
||||
<p align=center><img src=img/line.png></p>
|
||||
|
||||
<a name="grp"><h2><strong>Group edit</strong></h2></a>
|
||||
<table border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top"><img src="img/exc.png"></td>
|
||||
<td bgcolor=ffffcc valign="top" align="justify"><strong><font color="red">WARNING!</font>
|
||||
There is no UNDO option!</strong> If you click the <em>Apply</em> button,
|
||||
there is no way to return to previous values! Make a backup before any group edit
|
||||
operation!
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div align="justify">A record can be tagged by clicking the corresponding icon or
|
||||
with the mouse - hold the Ctrl key on the keyboard and left click on the QSO record
|
||||
to be tagged.<br></div>
|
||||
to be tagged.<br>
|
||||
Or you can set up filter and pick qsos that need editing.
|
||||
</div>
|
||||
<p><img src=img/h90.png></p>
|
||||
<div align="justify">Click the <em>Edit QSO</em> button and the group edit menu
|
||||
appears:<br></div>
|
||||
|
20
help/h3.html
@ -69,13 +69,31 @@
|
||||
When <b>OK</b> is pressed export begins.<br><br>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
<a name=ah26><strong>HTML export</strong></a><br><br>
|
||||
The same as above, only difference is to choose the 'HTML' option.<br><br>
|
||||
The same as above, only difference is to set column names and widths (in character counts). Note that contest Nr and Msg column names will get "R" or "S" added as last letter of column name.
|
||||
<br><br>
|
||||
<img src=img/h45d.png><br><br>
|
||||
If "HTML auto size columns" is checked width setting is ignored and column width is set by longest text (in header or data).
|
||||
<br><br>
|
||||
<img src=img/h45e.png><br><br>
|
||||
Choose the 'HTML' option from QSO list Export menu.<br><br>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
<p><a name=ah27><strong>Program version update:</strong></a><br><br>
|
||||
Ubuntu 16.04, 17.10, 18.04 users can use CQRLOG’s repository on Launchpad. To add repository to your system, put into terminal this:<br/>
|
||||
<br>sudo add-apt-repository ppa:ok2cqr/ppa;sudo apt-get update;sudo apt-get install cqrlog<br>
|
||||
<br>For those who does not use Ubuntu, load install package, or binaries, from: Cqrlog.com <a href="https://www.cqrlog.com/download" target="_new"> download page.</a><br>
|
||||
<br>The binaries should work in any distribution. Please don't forget to install MySQL server, MySQL client, Hamlib libraries and if LoTW support is desired, trustedqsl package and libssl-devel must be installed.</p>
|
||||
<table width="100%" border="0" cellpadding="5" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top"><img src="img/note.png"></td>
|
||||
<td style="width: 100%; text-align: justify; background-color: rgb(204, 255, 255);">
|
||||
<strong><font color="blue">Note:</font></strong> Very often Cqrlog version update requires just file /usr/bin/cqrlog change to latest version. If your package manager does not support latest version and you have well running old version in use just copy folder ~/.config/cqrlog with all files and subfolders to safe place as backup. Copy also
|
||||
/usr/bin/cqrlog to same place. Then download the tgz file "Complete application directory for other distributions", extract file /usr/bin/cqrlog from there and copy it to your /usr/bin folder (you need to use root priveleges I.E sudo for that).
|
||||
If everything works you have latest version. If not, just copy back your saved folder ~/.config/cqrlog and the old /usr/bin/cqrlog.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
<a name=ah28><strong>How to update Country files:</strong></a><br>
|
||||
<ol>
|
||||
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 27 KiB |
BIN
help/img/h13.png
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 151 KiB |
BIN
help/img/h2.png
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 27 KiB |
BIN
help/img/h29.png
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 58 KiB |
BIN
help/img/h45d.png
Normal file
After Width: | Height: | Size: 105 KiB |
BIN
help/img/h45e.png
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
help/img/h6.png
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 47 KiB |
BIN
help/img/h66.png
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 89 KiB |
BIN
help/img/h70.png
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 35 KiB |
BIN
help/img/h70b.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
help/img/h8.png
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 95 KiB |
BIN
help/img/h89.png
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 58 KiB |
BIN
help/img/h92.png
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 30 KiB |
@ -1,5 +1,12 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<HEAD>
|
||||
<META NAME="GENERATOR" CONTENT="Linux">
|
||||
<META HTTP-EQUIV="Expires" CONTENT="-1">
|
||||
<META HTTP-EQUIV="Last-Modified" CONTENT="0">
|
||||
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
|
||||
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
||||
</HEAD>
|
||||
|
||||
<frameset cols="15%,*">
|
||||
<frame name="left" src="index_left.html">
|
||||
|
@ -1,6 +1,12 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<HEAD>
|
||||
<META NAME="GENERATOR" CONTENT="Linux">
|
||||
<META HTTP-EQUIV="Expires" CONTENT="-1">
|
||||
<META HTTP-EQUIV="Last-Modified" CONTENT="0">
|
||||
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
|
||||
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
||||
<title>CQRLOG - Help Index</title></head>
|
||||
<body>
|
||||
<h2><a name="aa"><strong>Contents:</strong></a></h2>
|
||||
|
@ -1,6 +1,11 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<META NAME="GENERATOR" CONTENT="Linux">
|
||||
<META HTTP-EQUIV="Expires" CONTENT="-1">
|
||||
<META HTTP-EQUIV="Last-Modified" CONTENT="0">
|
||||
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
|
||||
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
||||
<title>CQRLOG - Help Index</title></head>
|
||||
<body>
|
||||
<strong><h1>CQRLOG for LINUX (version 2.3.0)</h1></strong>
|
||||
|
@ -80,6 +80,9 @@ end;{isloc}
|
||||
|
||||
procedure VzdalenostAAzimut(loc1,loc2 : String;var azim,qrb : String);
|
||||
begin
|
||||
loc1:=Upcase(loc1);
|
||||
loc2:=Upcase(loc2);
|
||||
|
||||
if ((not isloc(loc1)) or (not isloc(loc2))) then
|
||||
begin
|
||||
azim := '';
|
||||
@ -93,6 +96,7 @@ begin
|
||||
end;
|
||||
procedure LocToCoordinate(loc : String; var Latitude, Longitude : Real);
|
||||
begin
|
||||
loc:=Upcase(loc);
|
||||
Latitude := dely(loc);
|
||||
Longitude := delx(loc)
|
||||
end;
|
||||
|
@ -97,4 +97,4 @@ begin
|
||||
until false;
|
||||
wend:
|
||||
close(f1);}
|
||||
end.
|
||||
end.
|
||||
|
@ -19,11 +19,19 @@
|
||||
<AutoIncrementBuild Value="True"/>
|
||||
<MinorVersionNr Value="3"/>
|
||||
<RevisionNr Value="1"/>
|
||||
<BuildNr Value="2193"/>
|
||||
<BuildNr Value="2195"/>
|
||||
<StringTable ProductVersion="0.3.1.2026"/>
|
||||
</VersionInfo>
|
||||
<MacroValues Count="1">
|
||||
<Macro3 Name="LCLWidgetType" Value="gtk2"/>
|
||||
</MacroValues>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="default" Default="True"/>
|
||||
<SharedMatrixOptions Count="3">
|
||||
<Item1 ID="364409174580" Type="IDEMacro" MacroName="LCLWidgetType" Value="qt5"/>
|
||||
<Item2 ID="890734883088" Type="IDEMacro" MacroName="LCLWidgetType" Value="gtk3"/>
|
||||
<Item3 ID="102898540782" Modes="default" Type="IDEMacro" MacroName="LCLWidgetType" Value="gtk2"/>
|
||||
</SharedMatrixOptions>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
@ -31,7 +39,7 @@
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<CommandLineParams Value="--DEBUG=1"/>
|
||||
<CommandLineParams Value="--DEBUG=0"/>
|
||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
<environment>
|
||||
@ -44,7 +52,7 @@
|
||||
<Modes Count="1">
|
||||
<Mode0 Name="default">
|
||||
<local>
|
||||
<CommandLineParams Value="--DEBUG=1"/>
|
||||
<CommandLineParams Value="--DEBUG=0"/>
|
||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
<environment>
|
||||
@ -97,7 +105,7 @@
|
||||
<MinVersion Major="1" Minor="2" Release="1" Valid="True"/>
|
||||
</Item10>
|
||||
</RequiredPackages>
|
||||
<Units Count="104">
|
||||
<Units Count="106">
|
||||
<Unit0>
|
||||
<Filename Value="cqrlog.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -783,13 +791,21 @@
|
||||
<Filename Value="uRotControl.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit103>
|
||||
<Unit104>
|
||||
<Filename Value="aziloc.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit104>
|
||||
<Unit105>
|
||||
<Filename Value="azidis3.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit105>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<SearchPaths>
|
||||
<Libraries Value="$(LazarusDir)/lcl"/>
|
||||
<OtherUnitFiles Value="lnet/lib;richmemo;richmemo/gtk2;synapse;richmemo/qt"/>
|
||||
<OtherUnitFiles Value="lnet/lib;synapse"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
@ -803,7 +819,6 @@
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
<DebugInfoType Value="dsDwarf2Set"/>
|
||||
</Debugging>
|
||||
</Linking>
|
||||
|
@ -23,7 +23,7 @@ uses
|
||||
fRadioMemories, fAddRadioMemory, fException, fCommentToCall,
|
||||
fNewCommentToCall, fFindCommentToCall, frExportPref, fExportPref,
|
||||
fWorkedGrids, fPropDK0WCY, fRemind, fContest, fMonWsjtx, fXfldigi,
|
||||
dMembership, dSatellite, uRigControl, uRotControl;
|
||||
dMembership, dSatellite, uRigControl, uRotControl, azidis3, aziloc;
|
||||
var
|
||||
Splash : TfrmSplash;
|
||||
|
||||
|
@ -717,7 +717,7 @@ object dmData: TdmData
|
||||
'#UNDEFINE'
|
||||
)
|
||||
Script.Strings = (
|
||||
'create temporary table if not exists qslexport ('
|
||||
'CREATE TEMPORARY TABLE IF NOT EXISTS qslexport ('
|
||||
' id_qslexport INT AUTO_INCREMENT PRIMARY KEY,'
|
||||
' idcall VARCHAR(20) DEFAULT '''','
|
||||
' id_cqrlog_main INT NOT NULL,'
|
||||
@ -742,7 +742,14 @@ object dmData: TdmData
|
||||
' award VARCHAR(50) DEFAULT '''','
|
||||
' remarks VARCHAR(200) DEFAULT '''','
|
||||
' band VARCHAR(6) DEFAULT '''','
|
||||
' qslmsg VARCHAR(20) DEFAULT '''''
|
||||
' qslmsg VARCHAR(20) DEFAULT '''','
|
||||
' prop_mode VARCHAR(30) DEFAULT '''','
|
||||
' satellite VARCHAR(30) DEFAULT '''','
|
||||
' contestname VARCHAR(40) DEFAULT '''','
|
||||
' stx VARCHAR(6) DEFAULT '''','
|
||||
' stx_string VARCHAR(50) DEFAULT '''','
|
||||
' srx VARCHAR(6) DEFAULT '''','
|
||||
' srx_string VARCHAR(50) DEFAULT '''''
|
||||
');'
|
||||
'CREATE INDEX idcall ON qslexport(idcall);'
|
||||
'CREATE INDEX dxcc ON qslexport(dxcc);'
|
||||
|
@ -257,6 +257,7 @@ type
|
||||
function LogExists(nr : Word) : Boolean;
|
||||
function GetProperDBName(nr : Word) : String;
|
||||
function GetQSOCount : Integer;
|
||||
procedure GetQSODistanceSum(var SumDist:int64;var LongestDist:integer;var MainLocCount:Integer);
|
||||
function UseseQSL(call : String) : Boolean;
|
||||
function QueryLocate(qry : TSQLQuery; Column : String; Value : Variant; DisableGrid : Boolean; exatly : Boolean = True) : Boolean;
|
||||
function BandModFromFreq(freq : String;var mode,band : String) : Boolean;
|
||||
@ -1333,7 +1334,8 @@ begin
|
||||
','+QuotedStr(qsl_r)+','+QuotedStr(qsl_via)+
|
||||
','+QuotedStr(iota)+','+QuotedStr(pwr)+
|
||||
','+sITU+','+sWAZ+
|
||||
','+QuotedStr(loc)+','+QuotedStr(my_loc)+
|
||||
//here we make final check that for now on locator writing format is by std in database
|
||||
','+QuotedStr(dmUtils.StdFormatLocator(loc))+','+QuotedStr(dmUtils.StdFormatLocator(my_loc))+
|
||||
//','+QuotedStr(dmUtils.MyTrim(county))+',' + QuotedStr(dmUtils.MyTrim(award)) + ','+QuotedStr(dmUtils.MyTrim(remarks))+
|
||||
','+QuotedStr(trim(county))+',' + QuotedStr(trim(award)) + ','+QuotedStr(trim(remarks))+
|
||||
','+IntToStr(adif)+','+ QuotedStr(idcall) + ','+ QuotedStr(state) +','+IntToStr(changed)+
|
||||
@ -1903,6 +1905,15 @@ end;
|
||||
|
||||
function TdmData.QSLMgrFound(call,date : String; var qsl_via : String) : Boolean;
|
||||
begin
|
||||
// dmData.QSLMgrFound() needs date. if not set causes mysterious
|
||||
// "'' is not valid date error" sometimes. (usually at first logged qso)
|
||||
// So cheking both exist is needed.
|
||||
if (call = '') or (date = '') then
|
||||
Begin
|
||||
Result := False;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
qsl_via := '';
|
||||
trQSLMgr.StartTransaction;
|
||||
qQSLMgr.SQL.Text := 'select * from cqrlog_common.qslmgr where (callsign = '+QuotedStr(call)+
|
||||
@ -2458,7 +2469,79 @@ begin
|
||||
if call = eQSLUsers[i] then
|
||||
Result := True
|
||||
end;
|
||||
procedure TdmData.GetQSODistanceSum(var SumDist:int64; var LongestDist:integer;var MainLocCount:Integer);
|
||||
|
||||
var
|
||||
qrb,
|
||||
qrc,
|
||||
Myloc,
|
||||
loc :String;
|
||||
|
||||
procedure HandleRecord;
|
||||
Begin
|
||||
Myloc := Q.Fields[0].AsString;
|
||||
if length(Myloc) = 4 then Myloc := Myloc +'LL';
|
||||
loc := Q.Fields[1].AsString;
|
||||
if length(loc) = 4 then loc := loc +'LL';
|
||||
dmUtils.DistanceFromLocator(Myloc,loc,qrb,qrc);
|
||||
if StrToIntDef(qrb,0) > LongestDist then LongestDist := StrToIntDef(qrb,0);
|
||||
SumDist:= SumDist + StrToIntDef(qrb,0);
|
||||
end;
|
||||
|
||||
begin
|
||||
SumDist :=0;
|
||||
LongestDist :=0;
|
||||
MainLocCount := 0;
|
||||
|
||||
Q.Close;
|
||||
if trQ.Active then
|
||||
trQ.RollBack;
|
||||
|
||||
if IsFilter then
|
||||
begin
|
||||
Q.SQL.Text := StringReplace(dmData.qCQRLOG.SQL.Text,'*','my_loc,loc',[]);
|
||||
trQ.StartTransaction;
|
||||
try
|
||||
Q.Open;
|
||||
while not Q.Eof do
|
||||
begin
|
||||
HandleRecord;
|
||||
Q.Next;
|
||||
end
|
||||
finally
|
||||
Q.Close;
|
||||
trQ.RollBack
|
||||
end
|
||||
end
|
||||
else begin
|
||||
Q.SQL.Text := 'SELECT my_loc,loc FROM cqrlog_main';
|
||||
trQ.StartTransaction;
|
||||
try
|
||||
Q.Open;
|
||||
while not Q.Eof do
|
||||
begin
|
||||
HandleRecord;
|
||||
Q.Next;
|
||||
end
|
||||
finally
|
||||
Q.Close;
|
||||
trQ.RollBack
|
||||
end
|
||||
end;
|
||||
if pos('WHERE', Q.SQL.Text) > 0 then
|
||||
Q.SQL.Text := 'SELECT COUNT(DISTINCT(LEFT(loc,4))) FROM cqrlog_main WHERE left(loc,4) <> "" AND '
|
||||
+ copy(Q.SQL.Text, pos('WHERE', Q.SQL.Text)+5, length(Q.SQL.Text))
|
||||
else
|
||||
Q.SQL.Text := 'SELECT COUNT(DISTINCT(LEFT(loc,4))) FROM cqrlog_main WHERE left(loc,4) <> "" ';
|
||||
trQ.StartTransaction;
|
||||
try
|
||||
Q.Open;
|
||||
MainLocCount := Q.Fields[0].AsInteger
|
||||
finally
|
||||
Q.Close;
|
||||
trQ.RollBack
|
||||
end
|
||||
end;
|
||||
function TdmData.GetQSOCount : Integer;
|
||||
begin
|
||||
Q.Close;
|
||||
@ -3104,7 +3187,7 @@ begin
|
||||
Q.SQL.Add(scQSLExport.Script.Strings[i])
|
||||
else begin
|
||||
Q.SQL.Add(scQSLExport.Script.Strings[i]);
|
||||
if fDebugLevel>=1 then Writeln(mQ.SQL.Text);
|
||||
if fDebugLevel>=1 then Writeln(Q.SQL.Text);
|
||||
Q.ExecSQL;
|
||||
Q.SQL.Text := ''
|
||||
end
|
||||
|
@ -264,7 +264,7 @@ type
|
||||
function MyStrToDateTime(DateTime : String) : TDateTime;
|
||||
function MyDateTimeToStr(DateTime : TDateTime) : String;
|
||||
function LoadVisibleColumnsConfiguration : TColumnVisibleArray;
|
||||
|
||||
function StdFormatLocator(loc:string):String;
|
||||
end;
|
||||
|
||||
var
|
||||
@ -1046,6 +1046,18 @@ begin
|
||||
else
|
||||
Result := False;
|
||||
end;
|
||||
function TdmUtils.StdFormatLocator(loc:string):String;
|
||||
// Format locator to standard form BL11bh16 See:
|
||||
// https://en.wikipedia.org/wiki/Maidenhead_Locator_System#Description_of_the_system
|
||||
// Check TEdit CharCase to be ecNormal, othewise you get runtime error!
|
||||
var
|
||||
s :String;
|
||||
begin
|
||||
if loc = '' then exit;
|
||||
s := Upcase(copy(loc,1,4));
|
||||
s:= s + lowercase(copy(loc,5,6)); //max loc length 10 in database
|
||||
Result := trim(s);
|
||||
end;
|
||||
|
||||
procedure TdmUtils.GetCoordinate(pfx: string; var latitude, longitude: currency);
|
||||
var
|
||||
|
@ -242,7 +242,7 @@ function TfrmAdifImport.fillTypeVariableWithTagData(h:longint;var data:string;va
|
||||
h_EQSL_QSL_RCVD:d.EQSL_QSL_RCVD:=data;
|
||||
h_EQSL_QSL_SENT:d.EQSL_QSL_SENT:=data;
|
||||
h_FREQ:d.FREQ:=data;
|
||||
h_GRIDSQUARE:d.GRIDSQUARE:=data;
|
||||
h_GRIDSQUARE:d.GRIDSQUARE:=dmUtils.StdFormatLocator(data);
|
||||
h_IOTA:d.IOTA:=data;
|
||||
h_ITUZ:d.ITUZ:=data;
|
||||
h_LOTW_QSLRDATE:d.LOTW_QSLRDATE:=data;
|
||||
@ -250,7 +250,7 @@ function TfrmAdifImport.fillTypeVariableWithTagData(h:longint;var data:string;va
|
||||
h_LOTW_QSL_RCVD:d.LOTW_QSL_RCVD:=data;
|
||||
h_LOTW_QSL_SENT:d.LOTW_QSL_SENT:=data;
|
||||
h_MODE:d.MODE:=data;
|
||||
h_MY_GRIDSQUARE:d.MY_GRIDSQUARE:=data;
|
||||
h_MY_GRIDSQUARE:d.MY_GRIDSQUARE:=dmUtils.StdFormatLocator(data);
|
||||
h_NAME:d.NAME:=data;
|
||||
h_NOTES:d.NOTES:=data;
|
||||
h_PFX:d.PFX:=data;
|
||||
|
@ -14,12 +14,12 @@ object frmChangeLocator: TfrmChangeLocator
|
||||
ClientHeight = 108
|
||||
ClientWidth = 236
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '1.8.2.0'
|
||||
LCLVersion = '2.0.2.0'
|
||||
object lblEnterLocator: TLabel
|
||||
Left = 8
|
||||
Height = 17
|
||||
Top = 8
|
||||
Width = 125
|
||||
Width = 120
|
||||
Caption = 'Enter your locator:'
|
||||
ParentColor = False
|
||||
end
|
||||
@ -27,11 +27,11 @@ object frmChangeLocator: TfrmChangeLocator
|
||||
AnchorSideTop.Control = lblEnterLocator
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 27
|
||||
Height = 34
|
||||
Top = 27
|
||||
Width = 216
|
||||
BorderSpacing.Top = 2
|
||||
CharCase = ecUppercase
|
||||
OnChange = edtLocatorChange
|
||||
OnKeyPress = edtLocatorKeyPress
|
||||
TabOrder = 0
|
||||
end
|
||||
@ -39,8 +39,8 @@ object frmChangeLocator: TfrmChangeLocator
|
||||
AnchorSideTop.Control = edtLocator
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 37
|
||||
Top = 64
|
||||
Height = 41
|
||||
Top = 71
|
||||
Width = 64
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 10
|
||||
@ -54,9 +54,9 @@ object frmChangeLocator: TfrmChangeLocator
|
||||
AnchorSideTop.Control = edtLocator
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 160
|
||||
Height = 37
|
||||
Top = 64
|
||||
Width = 64
|
||||
Height = 41
|
||||
Top = 71
|
||||
Width = 68
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 10
|
||||
BorderSpacing.InnerBorder = 4
|
||||
|
@ -18,12 +18,13 @@ type
|
||||
edtLocator: TEdit;
|
||||
lblEnterLocator: TLabel;
|
||||
procedure btnOKClick(Sender: TObject);
|
||||
procedure edtLocatorChange(Sender: TObject);
|
||||
procedure edtLocatorKeyPress(Sender: TObject; var Key: char);
|
||||
private
|
||||
{ private declarations }
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
frmChangeLocator: TfrmChangeLocator;
|
||||
@ -32,6 +33,7 @@ implementation
|
||||
{$R *.lfm}
|
||||
|
||||
{ TfrmChangeLocator }
|
||||
uses dUtils;
|
||||
|
||||
procedure TfrmChangeLocator.edtLocatorKeyPress(Sender: TObject; var Key: char);
|
||||
begin
|
||||
@ -47,5 +49,11 @@ begin
|
||||
ModalResult := mrOK
|
||||
end;
|
||||
|
||||
procedure TfrmChangeLocator.edtLocatorChange(Sender: TObject);
|
||||
begin
|
||||
edtLocator.Text := dmUtils.StdFormatLocator(edtLocator.Text);
|
||||
edtLocator.SelStart := Length(edtLocator.Text);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -13,7 +13,7 @@ object frmContest: TfrmContest
|
||||
OnHide = FormHide
|
||||
OnKeyDown = FormKeyDown
|
||||
OnShow = FormShow
|
||||
LCLVersion = '2.0.0.4'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object edtCall: TEdit
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = lblCall
|
||||
@ -124,8 +124,8 @@ object frmContest: TfrmContest
|
||||
Hint = 'contest exchange message sent, max 50 characters'
|
||||
Top = 53
|
||||
Width = 100
|
||||
CharCase = ecUppercase
|
||||
MaxLength = 50
|
||||
OnChange = edtSRX2Change
|
||||
OnKeyDown = edtCallKeyDown
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
@ -323,16 +323,16 @@ object frmContest: TfrmContest
|
||||
Left = 17
|
||||
Height = 17
|
||||
Top = 1
|
||||
Width = 87
|
||||
Width = 91
|
||||
BorderSpacing.Left = 17
|
||||
Caption = 'Contestname'
|
||||
Caption = 'Contest name'
|
||||
ParentColor = False
|
||||
end
|
||||
object cmbContestName: TComboBox
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 110
|
||||
Left = 114
|
||||
Height = 34
|
||||
Hint = 'contestname, choose ADIF contest_id via combobox or type freestyle max 40 characters'
|
||||
Top = 1
|
||||
|
@ -46,6 +46,7 @@ type
|
||||
procedure edtCallExit(Sender: TObject);
|
||||
procedure edtCallKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
|
||||
procedure edtCallKeyPress(Sender: TObject; var Key: char);
|
||||
procedure edtSRX2Change(Sender: TObject);
|
||||
procedure edtSRXExit(Sender: TObject);
|
||||
procedure edtSTX_strExit(Sender: TObject);
|
||||
procedure edtSTXExit(Sender: TObject);
|
||||
@ -316,6 +317,14 @@ begin
|
||||
key := #0;
|
||||
end;
|
||||
|
||||
procedure TfrmContest.edtSRX2Change(Sender: TObject);
|
||||
begin
|
||||
if chLoc.Checked then
|
||||
begin
|
||||
edtSRX2.Text := dmUtils.StdFormatLocator(edtSRX2.Text);
|
||||
edtSRX2.SelStart := Length(edtSRX2.Text);
|
||||
end;
|
||||
end;
|
||||
procedure TfrmContest.edtSRXExit(Sender: TObject);
|
||||
begin
|
||||
ChkSerialNrUpd(False); //just save it
|
||||
|
@ -1,7 +1,7 @@
|
||||
object frmExLabelPrint: TfrmExLabelPrint
|
||||
Left = 25
|
||||
Left = 709
|
||||
Height = 522
|
||||
Top = 101
|
||||
Top = 11
|
||||
Width = 424
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/h22.html#bh4'
|
||||
@ -14,7 +14,7 @@ object frmExLabelPrint: TfrmExLabelPrint
|
||||
OnClose = FormClose
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '2.0.2.0'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object Label1: TLabel
|
||||
AnchorSideLeft.Control = gchkExport
|
||||
AnchorSideTop.Control = edtQSOsToLabel
|
||||
|
@ -62,7 +62,7 @@ var
|
||||
implementation
|
||||
{$R *.lfm}
|
||||
|
||||
uses dUtils, dData, uMyIni, fQSLExpPref, dDXCC;
|
||||
uses dUtils, dData, uMyIni, fQSLExpPref, dDXCC,fMain;
|
||||
{ TfrmExLabelPrint }
|
||||
|
||||
procedure TfrmExLabelPrint.edtQSOsToLabelExit(Sender: TObject);
|
||||
@ -117,6 +117,12 @@ begin
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'band', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'Propagation', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'Satellite', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestName', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'QSL_S', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'QSL_R', True) then
|
||||
@ -136,7 +142,15 @@ begin
|
||||
if cqrini.ReadBool('QSLExport', 'Remarks', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'QSLMsg', True) then
|
||||
inc(Result)
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestNrS', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestMsgS', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestNrR', True) then
|
||||
inc(Result);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestMsgR', True) then
|
||||
inc(Result);
|
||||
end;
|
||||
|
||||
function TfrmExLabelPrint.Rep(what : String) : String;
|
||||
@ -156,13 +170,16 @@ begin
|
||||
dmData.trQ.StartTransaction;
|
||||
dmData.Q.Close;
|
||||
dmData.Q.SQL.Text := 'insert into qslexport (idcall,id_cqrlog_main,dxcc,qsodate,time_on,time_off,callsign,freq,mode,rst_s,rst_r, '+
|
||||
'name,qth,qsl_s,qsl_r,qsl_via,iota,pwr,loc,my_loc,award,remarks,band,qslmsg) values('+
|
||||
'name,qth,qsl_s,qsl_r,qsl_via,iota,pwr,loc,my_loc,award,remarks,band,qslmsg,prop_mode,satellite,'+
|
||||
'contestname,stx,stx_string,srx,srx_string) values('+
|
||||
':idcall,:id_cqrlog_main,:dxcc,:qsodate,:time_on,:time_off,:callsign,:freq,:mode,:rst_s,:rst_r,:name,'+
|
||||
':qth,:qsl_s,:qsl_r,:qsl_via,:iota,:pwr,:loc,:my_loc,:award,:remarks,:band,:qslmsg)';
|
||||
':qth,:qsl_s,:qsl_r,:qsl_via,:iota,:pwr,:loc,:my_loc,:award,:remarks,:band,:qslmsg,:prop_mode,:satellite,'+
|
||||
':contestname,:stx,:stx_string,:srx,:srx_string)';
|
||||
if dmData.DebugLevel>=1 then Writeln(dmData.Q.SQL.Text);
|
||||
dmData.qCQRLOG.First;
|
||||
while not dmData.qCQRLOG.Eof do
|
||||
begin
|
||||
|
||||
DoExp := False;
|
||||
if chkAllQSOs.Checked then
|
||||
DoExp := True
|
||||
@ -178,11 +195,13 @@ begin
|
||||
if (dmData.qCQRLOG.Fields[11].AsString = 'SMB') and (gchkExport.Checked[4]) then
|
||||
DoExp := True
|
||||
end;
|
||||
|
||||
if (not DoExp) or (dmData.qCQRLOG.FieldByName('band').AsString='') then
|
||||
begin
|
||||
dmData.qCQRLOG.Next;
|
||||
Continue
|
||||
end;
|
||||
|
||||
dmData.Q.Prepare;
|
||||
|
||||
dmData.Q.ParamByName('id_cqrlog_main').AsInteger := dmData.qCQRLOG.FieldByName('id_cqrlog_main').AsInteger;
|
||||
@ -239,14 +258,21 @@ begin
|
||||
dmData.Q.ParamByName('award').AsString := Rep(dmData.qCQRLOG.FieldByName('award').AsString);
|
||||
dmData.Q.ParamByName('band').AsString := dmData.qCQRLOG.FieldByName('band').AsString;
|
||||
dmData.Q.ParamByName('qslmsg').AsString := Rep(qsl_msg);
|
||||
|
||||
dmData.Q.ParamByName('prop_mode').AsString := dmData.qCQRLOG.FieldByName('prop_mode').AsString;
|
||||
dmData.Q.ParamByName('satellite').AsString := dmData.qCQRLOG.FieldByName('satellite').AsString;
|
||||
dmData.Q.ParamByName('contestname').AsString := dmData.qCQRLOG.FieldByName('contestname').AsString;
|
||||
dmData.Q.ParamByName('stx').AsString := dmData.qCQRLOG.FieldByName('stx').AsString;
|
||||
dmData.Q.ParamByName('stx_string').AsString := dmData.qCQRLOG.FieldByName('stx_string').AsString;
|
||||
dmData.Q.ParamByName('srx').AsString := dmData.qCQRLOG.FieldByName('srx').AsString;
|
||||
dmData.Q.ParamByName('srx_string').AsString := dmData.qCQRLOG.FieldByName('srx_string').AsString;
|
||||
dmData.Q.ExecSQL;
|
||||
dmData.qCQRLOG.Next
|
||||
end
|
||||
finally
|
||||
dmData.trQ.Commit;
|
||||
dmData.qCQRLOG.EnableControls
|
||||
end
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmExLabelPrint.btnExportClick(Sender: TObject);
|
||||
@ -312,6 +338,7 @@ var
|
||||
Write(f,dmData.Q.FieldByName('mode').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'Freq', True) then
|
||||
Write(f,FloatToStr(dmData.Q.FieldByName('freq').AsFloat),C_SEP);
|
||||
|
||||
if cqrini.ReadBool('QSLExport', 'RST_S', True) then
|
||||
begin
|
||||
if not cqrini.ReadBool('QSLExport','SplitRST_S',False) then
|
||||
@ -344,6 +371,12 @@ var
|
||||
Write(f,dmData.Q.FieldByName('qth').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'band', True) then
|
||||
Write(f,dmData.Q.FieldByName('band').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'Propagation', True) then
|
||||
Write(f,dmData.Q.FieldByName('prop_mode').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'Satellite', True) then
|
||||
Write(f,dmData.Q.FieldByName('satellite').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestName', True) then
|
||||
Write(f, dmData.Q.FieldByName('contestname').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'QSL_S', True) then
|
||||
Write(f,dmData.Q.FieldByName('qsl_s').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'QSL_R', True) then
|
||||
@ -354,6 +387,8 @@ var
|
||||
Write(f,dmData.Q.FieldByName('loc').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'MyLoc', True) then
|
||||
Write(f,dmData.Q.FieldByName('my_loc').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'Distance', True) then
|
||||
Write(f,frmMain.CalcQrb(dmData.Q.FieldByName('my_loc').AsString,dmData.Q.FieldByName('loc').AsString,False),C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'IOTA', True) then
|
||||
Write(f,dmData.Q.FieldByName('iota').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'award', True) then
|
||||
@ -363,7 +398,16 @@ var
|
||||
if cqrini.ReadBool('QSLExport', 'Remarks', True) then
|
||||
Write(f,dmData.Q.FieldByName('remarks').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'QSLMsg', True) then
|
||||
Write(f,dmData.Q.FieldByName('qslmsg').AsString,C_SEP)
|
||||
Write(f,dmData.Q.FieldByName('qslmsg').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestNrS', True) then
|
||||
Write(f,dmData.Q.FieldByName('stx').AsString ,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestMsgS', True) then
|
||||
Write(f,dmData.Q.FieldByName('stx_string').AsString,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestNrR', True) then
|
||||
Write(f,dmData.Q.FieldByName('srx').AsString ,C_SEP);
|
||||
if cqrini.ReadBool('QSLExport', 'ContestMsgR', True) then
|
||||
Write(f,dmData.Q.FieldByName('srx_string').AsString ,C_SEP);
|
||||
|
||||
end;
|
||||
|
||||
begin
|
||||
@ -384,6 +428,7 @@ begin
|
||||
end;
|
||||
|
||||
FieldCount := GetExpFieldCount;
|
||||
if dmData.DebugLevel >= 1 then Writeln('Field count: ', FieldCount);
|
||||
dmData.CreateQSLTmpTable;
|
||||
LoadDataToTempDB;
|
||||
// FieldCount := GetExpFieldCount;
|
||||
@ -396,6 +441,7 @@ begin
|
||||
dmData.trQ1.StartTransaction;
|
||||
dmData.Q.SQL.Text := 'select * from qslexport order by dxcc,idcall';
|
||||
dmData.Q.Open;
|
||||
|
||||
while not dmData.Q.Eof do
|
||||
begin
|
||||
if chkMarkSent.Checked then
|
||||
|
@ -1,55 +1,70 @@
|
||||
object frmExportPref: TfrmExportPref
|
||||
Left = 491
|
||||
Height = 495
|
||||
Top = 32
|
||||
Width = 737
|
||||
Left = 232
|
||||
Height = 502
|
||||
Top = 131
|
||||
Width = 931
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Choose fields to export'
|
||||
ClientHeight = 495
|
||||
ClientWidth = 737
|
||||
ClientHeight = 502
|
||||
ClientWidth = 931
|
||||
OnShow = FormShow
|
||||
Position = poOwnerFormCenter
|
||||
LCLVersion = '2.0.2.0'
|
||||
inline fraExportPref1: TfraExportPref
|
||||
Left = 8
|
||||
Top = 8
|
||||
inherited chkexCounty: TCheckBox
|
||||
Top = 217
|
||||
end
|
||||
inherited chkexRemarks: TCheckBox
|
||||
Left = 176
|
||||
OnChange = nil
|
||||
end
|
||||
inherited chkexContest: TCheckBox
|
||||
Left = 176
|
||||
end
|
||||
end
|
||||
LCLVersion = '2.0.4.0'
|
||||
object btnOK: TButton
|
||||
Left = 640
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 844
|
||||
Height = 25
|
||||
Top = 16
|
||||
Top = 36
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 36
|
||||
BorderSpacing.Right = 12
|
||||
Caption = 'OK'
|
||||
OnClick = btnOKClick
|
||||
TabOrder = 1
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnCancel: TButton
|
||||
Left = 640
|
||||
AnchorSideLeft.Control = btnOK
|
||||
AnchorSideTop.Control = btnOK
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 844
|
||||
Height = 25
|
||||
Top = 56
|
||||
Top = 73
|
||||
Width = 75
|
||||
BorderSpacing.Top = 12
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 2
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnReSet: TButton
|
||||
Left = 640
|
||||
AnchorSideLeft.Control = btnOK
|
||||
AnchorSideTop.Control = btnCancel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 844
|
||||
Height = 25
|
||||
Top = 96
|
||||
Top = 110
|
||||
Width = 75
|
||||
BorderSpacing.Top = 12
|
||||
Caption = 'Re/Set All'
|
||||
OnClick = btnReSetClick
|
||||
TabOrder = 2
|
||||
end
|
||||
inline fraExportPref1: TfraExportPref
|
||||
Left = 8
|
||||
Top = 8
|
||||
TabOrder = 3
|
||||
DesignLeft = 1719
|
||||
DesignTop = 168
|
||||
inherited lblField1: TLabel
|
||||
AnchorSideLeft.Control = fraExportPref1
|
||||
AnchorSideTop.Control = fraExportPref1
|
||||
end
|
||||
inherited chkAutoColumn: TCheckBox
|
||||
OnChange = chkAutoColumnChange
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -17,16 +17,17 @@ type
|
||||
btnCancel : TButton;
|
||||
btnReSet: TButton;
|
||||
CheckBox1: TCheckBox;
|
||||
fraExportPref1 : TfraExportPref;
|
||||
fraExportPref1: TfraExportPref;
|
||||
procedure btnOKClick(Sender : TObject);
|
||||
procedure btnReSetClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure chkAutoColumnChange(Sender: TObject);
|
||||
procedure FormShow(Sender : TObject);
|
||||
procedure fraExportPref1Click(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
public
|
||||
{ public declarations }
|
||||
Procedure HideWidths(Hid:Boolean);
|
||||
Procedure HideAll(Hid:Boolean);
|
||||
end;
|
||||
|
||||
var
|
||||
@ -36,19 +37,36 @@ var
|
||||
implementation
|
||||
{$R *.lfm}
|
||||
|
||||
uses dUtils;
|
||||
uses dUtils,fMain;
|
||||
|
||||
{ TfrmExportPref }
|
||||
Procedure TfrmExportPref.HideAll(Hid:Boolean);
|
||||
var i : integer;
|
||||
Begin
|
||||
for i := 0 to fraExportPref1.ComponentCount - 1 do
|
||||
if fraExportPref1.Components[i] is TEdit then
|
||||
tedit(fraExportPref1.Components[i]).Visible := not Hid;
|
||||
end;
|
||||
Procedure TfrmExportPref.HideWidths(Hid:Boolean);
|
||||
var i : integer;
|
||||
Begin
|
||||
for i := 0 to fraExportPref1.ComponentCount - 1 do
|
||||
if fraExportPref1.Components[i] is TEdit then
|
||||
if (StrToIntDef(tedit(fraExportPref1.Components[i]).Text,-1) > -1 ) then
|
||||
tedit(fraExportPref1.Components[i]).Visible := not Hid;
|
||||
end;
|
||||
|
||||
procedure TfrmExportPref.FormShow(Sender : TObject);
|
||||
begin
|
||||
dmUtils.LoadFontSettings(frmExportPref);
|
||||
fraExportPref1.LoadExportPref
|
||||
end;
|
||||
|
||||
procedure TfrmExportPref.fraExportPref1Click(Sender: TObject);
|
||||
begin
|
||||
|
||||
fraExportPref1.LoadExportPref;
|
||||
if not frmMain.ShowWidths then //this is ADIF export case
|
||||
Begin
|
||||
HideAll(True);
|
||||
fraExportPref1.chkAutoColumn.Visible := False;
|
||||
end
|
||||
else if fraExportPref1.chkAutoColumn.Checked = True then // HTML export but auto column checked
|
||||
HideWidths(true);
|
||||
end;
|
||||
|
||||
procedure TfrmExportPref.btnOKClick(Sender : TObject);
|
||||
@ -66,10 +84,17 @@ begin
|
||||
AllChk := not AllChk;
|
||||
end;
|
||||
|
||||
procedure TfrmExportPref.FormCreate(Sender: TObject);
|
||||
procedure TfrmExportPref.chkAutoColumnChange(Sender: TObject);
|
||||
begin
|
||||
|
||||
if frmMain.ShowWidths then // only in HTML export
|
||||
Begin
|
||||
if fraExportPref1.chkAutoColumn.Checked = True then
|
||||
HideWidths(True)
|
||||
else
|
||||
HideWidths(False);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
||||
|
@ -145,7 +145,7 @@ object frmExportProgress: TfrmExportProgress
|
||||
}
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
LCLVersion = '1.8.0.6'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object lblComment: TLabel
|
||||
Left = 0
|
||||
Height = 17
|
||||
@ -168,6 +168,6 @@ object frmExportProgress: TfrmExportProgress
|
||||
Enabled = False
|
||||
OnTimer = tmrExportTimer
|
||||
left = 23
|
||||
top = 28
|
||||
top = 32
|
||||
end
|
||||
end
|
||||
|
@ -1,7 +1,7 @@
|
||||
object frmFilter: TfrmFilter
|
||||
Left = -187
|
||||
Left = 0
|
||||
Height = 658
|
||||
Top = 162
|
||||
Top = 115
|
||||
Width = 817
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/h23.html#ah22'
|
||||
@ -488,7 +488,7 @@ object frmFilter: TfrmFilter
|
||||
Width = 95
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 6
|
||||
CharCase = ecUppercase
|
||||
OnChange = edtLocatorChange
|
||||
TabOrder = 0
|
||||
end
|
||||
object rbIncludeLoc: TRadioButton
|
||||
@ -1044,7 +1044,7 @@ object frmFilter: TfrmFilter
|
||||
Width = 95
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 6
|
||||
CharCase = ecUppercase
|
||||
OnChange = edtMyLocChange
|
||||
TabOrder = 0
|
||||
end
|
||||
object rbIncludeMyLoc: TRadioButton
|
||||
|
@ -143,6 +143,8 @@ type
|
||||
procedure btnSelectDXCCClick(Sender: TObject);
|
||||
procedure chkRememberChange(Sender: TObject);
|
||||
procedure cmbBandSelectorChange(Sender: TObject);
|
||||
procedure edtLocatorChange(Sender: TObject);
|
||||
procedure edtMyLocChange(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
procedure FormShow(Sender: TObject);
|
||||
@ -624,6 +626,24 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.edtLocatorChange(Sender: TObject);
|
||||
begin
|
||||
if rbExactlyLoc.Checked then
|
||||
Begin
|
||||
edtLocator.Text:=dmUtils.StdFormatLocator(edtLocator.Text);
|
||||
edtLocator.SelStart := Length(edtLocator.Text);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.edtMyLocChange(Sender: TObject);
|
||||
begin
|
||||
if rbExactlyMyLoc.Checked then
|
||||
Begin
|
||||
edtMyLoc.Text:=dmUtils.StdFormatLocator(edtMyLoc.Text);
|
||||
edtMyLoc.SelStart := Length(edtMyLoc.Text);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.FormKeyUp(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
begin
|
||||
|
@ -234,6 +234,7 @@ object frmGroupEdit: TfrmGroupEdit
|
||||
Top = 34
|
||||
Width = 312
|
||||
ItemHeight = 0
|
||||
OnChange = cmbValueChange
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
|
@ -35,6 +35,7 @@ type
|
||||
Panel1: TPanel;
|
||||
procedure btnApplyClick(Sender: TObject);
|
||||
procedure cmbFieldChange(Sender: TObject);
|
||||
procedure cmbValueChange(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
@ -100,6 +101,16 @@ begin
|
||||
end;
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfrmGroupEdit.cmbValueChange(Sender: TObject);
|
||||
begin
|
||||
if (cmbField.ItemIndex=23) or (cmbField.ItemIndex=24) then
|
||||
begin
|
||||
cmbValue.Text :=dmUtils.StdFormatLocator(cmbValue.Text);
|
||||
cmbValue.SelStart := Length(cmbValue.Text);
|
||||
end;
|
||||
end;
|
||||
|
||||
{eQSL sent 28
|
||||
eQSL sent date 29
|
||||
eQSL rcvd 30
|
||||
@ -371,7 +382,7 @@ begin
|
||||
exit
|
||||
end
|
||||
end;
|
||||
sql := 'my_loc='+QuotedStr(UpperCase(cmbValue.Text))
|
||||
sql := 'my_loc='+QuotedStr(cmbValue.Text)
|
||||
end;
|
||||
24 : begin
|
||||
if (cmbValue.Text <> '') then
|
||||
@ -391,7 +402,7 @@ begin
|
||||
exit
|
||||
end
|
||||
end;
|
||||
sql := 'loc='+QuotedStr(UpperCase(cmbValue.Text))
|
||||
sql := 'loc='+QuotedStr(cmbValue.Text)
|
||||
end;
|
||||
25 : begin
|
||||
sql := 'profile=' + IntToStr(dmData.GetNRFromProfile(cmbValue.Text))
|
||||
|
205
src/fMain.lfm
@ -1,17 +1,17 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 266
|
||||
Height = 626
|
||||
Top = 52
|
||||
Width = 874
|
||||
Left = -14
|
||||
Height = 669
|
||||
Top = 498
|
||||
Width = 986
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/index.html'
|
||||
HorzScrollBar.Page = 672
|
||||
VertScrollBar.Page = 248
|
||||
VertScrollBar.Page = 272
|
||||
ActiveControl = Panel2
|
||||
AutoScroll = True
|
||||
Caption = 'CQRLOG for Linux'
|
||||
ClientHeight = 601
|
||||
ClientWidth = 874
|
||||
ClientHeight = 644
|
||||
ClientWidth = 986
|
||||
Constraints.MinHeight = 148
|
||||
Constraints.MinWidth = 536
|
||||
Icon.Data = {
|
||||
@ -159,14 +159,14 @@ object frmMain: TfrmMain
|
||||
OnCreate = FormCreate
|
||||
OnKeyDown = FormKeyDown
|
||||
OnShow = FormShow
|
||||
LCLVersion = '2.0.2.0'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object sbMain: TStatusBar
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 582
|
||||
Width = 874
|
||||
Top = 625
|
||||
Width = 986
|
||||
Panels = <
|
||||
item
|
||||
Text = 'QSO:'
|
||||
@ -192,12 +192,12 @@ object frmMain: TfrmMain
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 40
|
||||
Top = 536
|
||||
Width = 874
|
||||
Top = 579
|
||||
Width = 986
|
||||
Align = alBottom
|
||||
BorderSpacing.Bottom = 6
|
||||
ClientHeight = 40
|
||||
ClientWidth = 874
|
||||
ClientWidth = 986
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
OnClick = pnlButtonsClick
|
||||
@ -234,7 +234,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = btnNewQSO
|
||||
AnchorSideRight.Control = pnlButtons
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 734
|
||||
Left = 846
|
||||
Height = 33
|
||||
Top = 5
|
||||
Width = 130
|
||||
@ -249,7 +249,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = btnNewQSO
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = btnClose
|
||||
Left = 594
|
||||
Left = 706
|
||||
Height = 33
|
||||
Top = 5
|
||||
Width = 130
|
||||
@ -264,7 +264,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = btnNewQSO
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = btnDeleteQSO
|
||||
Left = 454
|
||||
Left = 566
|
||||
Height = 33
|
||||
Top = 5
|
||||
Width = 130
|
||||
@ -295,14 +295,14 @@ object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Height = 38
|
||||
Top = 31
|
||||
Width = 874
|
||||
Width = 986
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 5
|
||||
BorderSpacing.InnerBorder = 5
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 38
|
||||
ClientWidth = 874
|
||||
ClientWidth = 986
|
||||
TabOrder = 1
|
||||
object lblQSOInLog: TLabel
|
||||
AnchorSideLeft.Control = Panel2
|
||||
@ -342,7 +342,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Control = Panel2
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = lblQSOInLog
|
||||
Left = 417
|
||||
Left = 473
|
||||
Height = 17
|
||||
Top = 11
|
||||
Width = 40
|
||||
@ -356,7 +356,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblDXCCWorked
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 467
|
||||
Left = 523
|
||||
Height = 17
|
||||
Top = 11
|
||||
Width = 27
|
||||
@ -371,7 +371,7 @@ object frmMain: TfrmMain
|
||||
object lblDXCCConfirmed: TLabel
|
||||
AnchorSideTop.Control = lblQSOInLog
|
||||
AnchorSideRight.Control = lblDXCCCmf
|
||||
Left = 728
|
||||
Left = 840
|
||||
Height = 17
|
||||
Top = 11
|
||||
Width = 73
|
||||
@ -389,7 +389,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblDXCCConfirmed
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 811
|
||||
Left = 923
|
||||
Height = 17
|
||||
Top = 11
|
||||
Width = 53
|
||||
@ -408,9 +408,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 403
|
||||
Height = 422
|
||||
Top = 69
|
||||
Width = 874
|
||||
Width = 986
|
||||
Align = alClient
|
||||
Color = clWindow
|
||||
Columns = <>
|
||||
@ -430,7 +430,7 @@ object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Height = 26
|
||||
Top = 0
|
||||
Width = 874
|
||||
Width = 986
|
||||
BorderWidth = 4
|
||||
EdgeOuter = esRaised
|
||||
Flat = False
|
||||
@ -712,13 +712,13 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 64
|
||||
Top = 472
|
||||
Width = 874
|
||||
Height = 88
|
||||
Top = 491
|
||||
Width = 986
|
||||
Align = alBottom
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 64
|
||||
ClientWidth = 874
|
||||
ClientHeight = 88
|
||||
ClientWidth = 986
|
||||
TabOrder = 5
|
||||
object lblCommentForQSO: TLabel
|
||||
AnchorSideLeft.Control = pnlDetails
|
||||
@ -753,12 +753,12 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblCommentForQSO
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 142
|
||||
Left = 138
|
||||
Height = 17
|
||||
Top = 10
|
||||
Width = 85
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 10
|
||||
BorderSpacing.Left = 6
|
||||
Layout = tlBottom
|
||||
ParentColor = False
|
||||
end
|
||||
@ -777,23 +777,22 @@ object frmMain: TfrmMain
|
||||
ParentColor = False
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 444
|
||||
Height = 64
|
||||
Left = 566
|
||||
Height = 62
|
||||
Top = 0
|
||||
Width = 186
|
||||
Width = 210
|
||||
Align = alRight
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 64
|
||||
ClientWidth = 186
|
||||
ClientHeight = 62
|
||||
ClientWidth = 210
|
||||
TabOrder = 0
|
||||
object lblQSLSDate: TLabel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 7
|
||||
Left = 0
|
||||
Height = 17
|
||||
Top = 10
|
||||
Width = 70
|
||||
BorderSpacing.Left = 7
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'QS_S date:'
|
||||
Layout = tlBottom
|
||||
@ -805,12 +804,12 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblQSLSDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 89
|
||||
Left = 76
|
||||
Height = 17
|
||||
Top = 10
|
||||
Width = 85
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 12
|
||||
BorderSpacing.Left = 6
|
||||
Layout = tlBottom
|
||||
ParentColor = False
|
||||
end
|
||||
@ -819,12 +818,12 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblQSLRDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 90
|
||||
Left = 77
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 86
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 12
|
||||
BorderSpacing.Left = 6
|
||||
Layout = tlBottom
|
||||
ParentColor = False
|
||||
end
|
||||
@ -832,7 +831,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Control = lblQSLSDate
|
||||
AnchorSideTop.Control = lblQSLSDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 7
|
||||
Left = 0
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 71
|
||||
@ -844,23 +843,22 @@ object frmMain: TfrmMain
|
||||
end
|
||||
end
|
||||
object Panel3: TPanel
|
||||
Left = 630
|
||||
Height = 64
|
||||
Left = 776
|
||||
Height = 62
|
||||
Top = 0
|
||||
Width = 244
|
||||
Width = 210
|
||||
Align = alRight
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 64
|
||||
ClientWidth = 244
|
||||
ClientHeight = 62
|
||||
ClientWidth = 210
|
||||
TabOrder = 1
|
||||
object lblLoTWQSLSDate: TLabel
|
||||
AnchorSideLeft.Control = Panel3
|
||||
AnchorSideTop.Control = Panel3
|
||||
Left = 7
|
||||
Left = 0
|
||||
Height = 17
|
||||
Top = 10
|
||||
Width = 110
|
||||
BorderSpacing.Left = 7
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'LoTW QS_S date:'
|
||||
Layout = tlBottom
|
||||
@ -872,12 +870,12 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblLoTWQSLSDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 134
|
||||
Left = 116
|
||||
Height = 17
|
||||
Top = 10
|
||||
Width = 90
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 17
|
||||
BorderSpacing.Left = 6
|
||||
Layout = tlBottom
|
||||
ParentColor = False
|
||||
end
|
||||
@ -887,20 +885,21 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideBottom.Control = lblLoTWQSLRDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 135
|
||||
Left = 117
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 91
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 17
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 10
|
||||
Layout = tlBottom
|
||||
ParentColor = False
|
||||
end
|
||||
object lblLoTWQSLRDate: TLabel
|
||||
AnchorSideLeft.Control = lblLoTWQSLSDate
|
||||
AnchorSideTop.Control = lblLoTWQSLSDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 7
|
||||
Left = 0
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 111
|
||||
@ -911,6 +910,100 @@ object frmMain: TfrmMain
|
||||
ParentFont = False
|
||||
end
|
||||
end
|
||||
object pnlDistance: TPanel
|
||||
Left = 0
|
||||
Height = 26
|
||||
Top = 62
|
||||
Width = 986
|
||||
Align = alBottom
|
||||
ClientHeight = 26
|
||||
ClientWidth = 986
|
||||
TabOrder = 2
|
||||
Visible = False
|
||||
object lblDistance: TLabel
|
||||
AnchorSideLeft.Control = pnlDistance
|
||||
AnchorSideTop.Control = pnlDistance
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 11
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 61
|
||||
BorderSpacing.Left = 10
|
||||
Caption = 'Distance:'
|
||||
ParentColor = False
|
||||
Visible = False
|
||||
end
|
||||
object lblDist: TLabel
|
||||
AnchorSideLeft.Control = lblDistance
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblDistance
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 78
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 42
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'lblDist'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblLongest: TLabel
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblDistance
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = pnlDistance
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 908
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 67
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 10
|
||||
Caption = 'lblLongest'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblLongestDist: TLabel
|
||||
AnchorSideTop.Control = lblDistance
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = lblLongest
|
||||
Left = 815
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 87
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
Caption = 'Longest QSO:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblSumDistances: TLabel
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = lblDistance
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = lblSumDist
|
||||
Left = 354
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 94
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
Caption = 'Total distance:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblSumDist: TLabel
|
||||
AnchorSideLeft.Control = pnlDistance
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = lblDistance
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 454
|
||||
Height = 17
|
||||
Top = 5
|
||||
Width = 79
|
||||
Caption = 'lblSumDist '
|
||||
ParentColor = False
|
||||
end
|
||||
end
|
||||
end
|
||||
object mnuMain: TMainMenu
|
||||
Images = imgMain1
|
||||
|
106
src/fMain.pas
@ -18,7 +18,7 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Menus,
|
||||
ActnList, ExtCtrls, StdCtrls, ComCtrls, DBGrids, Buttons, LCLType, IniFiles, process,
|
||||
Grids, DBCtrls, dLogUpload;
|
||||
Grids, DBCtrls, dLogUpload,db;
|
||||
|
||||
type
|
||||
|
||||
@ -112,6 +112,10 @@ type
|
||||
Image1: TImage;
|
||||
imgMain: TImageList;
|
||||
imgMain1: TImageList;
|
||||
lblDist: TLabel;
|
||||
lblDistance: TLabel;
|
||||
lblLongest: TLabel;
|
||||
lblLongestDist: TLabel;
|
||||
lblQSOInLog: TLabel;
|
||||
lblDXCCWorked: TLabel;
|
||||
lblCommentForQSO: TLabel;
|
||||
@ -124,6 +128,8 @@ type
|
||||
lblDXCCCmf: TLabel;
|
||||
lblDXCC: TLabel;
|
||||
lblQSOCount: TLabel;
|
||||
lblSumDist: TLabel;
|
||||
lblSumDistances: TLabel;
|
||||
MenuItem1: TMenuItem;
|
||||
MenuItem10: TMenuItem;
|
||||
MenuItem100: TMenuItem;
|
||||
@ -263,6 +269,7 @@ type
|
||||
dlgOpen: TOpenDialog;
|
||||
Panel1: TPanel;
|
||||
Panel3: TPanel;
|
||||
pnlDistance: TPanel;
|
||||
pnlDetails: TPanel;
|
||||
pnlButtons: TPanel;
|
||||
Panel2: TPanel;
|
||||
@ -423,16 +430,17 @@ type
|
||||
private
|
||||
InRefresh : Boolean;
|
||||
WhatUpNext : TWhereToUpload;
|
||||
|
||||
DistColumnIndex :integer;
|
||||
procedure ChechkSelRecords;
|
||||
{ private declarations }
|
||||
public
|
||||
ShowWidths : Boolean;
|
||||
procedure RefreshQSODXCCCount;
|
||||
procedure MarkQSLSend(symbol: string);
|
||||
procedure ShowFields;
|
||||
procedure ReloadGrid;
|
||||
procedure CheckAttachment;
|
||||
|
||||
function CalcQrb(Myloc,loc:string;showUnits:boolean):string;
|
||||
{ public declarations }
|
||||
end;
|
||||
|
||||
@ -449,7 +457,7 @@ uses fNewQSO, fPreferences, dUtils, dData, dDXCC, dDXCluster, fMarkQSL, fDXCCSta
|
||||
fQSODetails, fWAZITUStat, fIOTAStat, fDatabaseUpdate, fExLabelPrint,
|
||||
fImportLoTWWeb, fLoTWExport, fGroupEdit, fCustomStat, fSQLConsole, fCallAttachment,
|
||||
fEditDetails, fQSLViewer, uMyIni, fRebuildMembStat, fAbout, fBigSquareStat,
|
||||
feQSLUpload, feQSLDownload, fSOTAExport, fRotControl, fLogUploadStatus, fExportPref;
|
||||
feQSLUpload, feQSLDownload, fSOTAExport, fRotControl, fLogUploadStatus, fExportPref,uVersion;
|
||||
|
||||
procedure TfrmMain.ReloadGrid;
|
||||
begin
|
||||
@ -458,10 +466,30 @@ begin
|
||||
end;
|
||||
|
||||
procedure TfrmMain.RefreshQSODXCCCount;
|
||||
var
|
||||
SumDist: int64;
|
||||
Longest,
|
||||
MainLocCount : integer;
|
||||
qrb,
|
||||
qrc,
|
||||
Myloc,
|
||||
loc : String;
|
||||
begin
|
||||
lblQSOCount.Caption := IntToStr(dmData.GetQSOCount);
|
||||
lblDXCC.Caption := IntToStr(dmDXCC.DXCCCount);
|
||||
lblDXCCCmf.Caption := IntToStr(dmDXCC.DXCCCmfCount)
|
||||
lblDXCCCmf.Caption := IntToStr(dmDXCC.DXCCCmfCount);
|
||||
if pnlDistance.Visible then
|
||||
Begin
|
||||
dmData.GetQSODistanceSum(SumDist,Longest,MainLocCount);
|
||||
if cqrini.ReadBool('Program','ShowMiles',False) then
|
||||
lblSumDist.Caption := FloatToStr(dmUtils.KmToMiles(SumDist)) + 'mi'
|
||||
else
|
||||
lblSumDist.Caption := IntToStr(SumDist) + 'km';
|
||||
if cqrini.ReadBool('Program','ShowMiles',False) then
|
||||
lblLongest.Caption := FloatToStr(dmUtils.KmToMiles(Longest)) + 'mi'
|
||||
else
|
||||
lblLongest.Caption := IntToStr(Longest) + 'km';
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.acPreferencesExecute(Sender: TObject);
|
||||
@ -604,8 +632,9 @@ var
|
||||
begin
|
||||
tmp := '';
|
||||
sDate := '';
|
||||
dmUtils.DateInRightFormat(now, tmp, sDate);
|
||||
sbMain.Panels[0].Text := sDate;
|
||||
dmUtils.DateInRightFormat(now , tmp, sDate);
|
||||
//sbMain.Panels[0].Text :=sDate; //why we have 2 timers for showing date in panel???
|
||||
sbMain.Panels[0].Text :=uVersion.cBUILD_DATE;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.tmrUploadAllTimer(Sender: TObject);
|
||||
@ -781,7 +810,7 @@ begin
|
||||
sDate := '';
|
||||
Date := dmUtils.GetDateTime(0);
|
||||
dmUtils.DateInRightFormat(date, tmp, sDate);
|
||||
sbMain.Panels[4].Text := sDate + ' ' + TimeToStr(Date)
|
||||
sbMain.Panels[4].Text := sDate + ' ' + TimeToStr(Date);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.acAboutExecute(Sender: TObject);
|
||||
@ -1073,7 +1102,7 @@ begin
|
||||
while not dbgrdMain.DataSource.DataSet.EOF do
|
||||
begin
|
||||
dbgrdMain.SelectedRows.CurrentRowSelected := True;
|
||||
dbgrdMain.DataSource.DataSet.Next
|
||||
dbgrdMain.DataSource.DataSet.Next;
|
||||
end
|
||||
finally
|
||||
dbgrdMain.DataSource.Dataset.EnableControls;
|
||||
@ -1660,6 +1689,8 @@ begin
|
||||
end;
|
||||
dmData.IsFilter := False;
|
||||
dmData.IsSFilter := False;
|
||||
lblDist.Caption :='';
|
||||
lblDistance.Visible:=(lblDist.Caption <>'');
|
||||
RefreshQSODXCCCount
|
||||
end;
|
||||
|
||||
@ -1670,6 +1701,9 @@ end;
|
||||
|
||||
procedure TfrmMain.acCreateFilterExecute(Sender: TObject);
|
||||
begin
|
||||
lblDist.Caption :='';
|
||||
lblDistance.Visible:=(lblDist.Caption <>'');
|
||||
|
||||
with TfrmFilter.Create(self) do
|
||||
try
|
||||
ShowModal;
|
||||
@ -1700,7 +1734,7 @@ begin
|
||||
dlgSave.Filter := 'ADIF|*.adi;*.ADI';
|
||||
if dlgSave.Execute then
|
||||
begin
|
||||
|
||||
ShowWidths:=false;
|
||||
frmExportPref := TfrmExportPref.Create(frmMain);
|
||||
try
|
||||
if frmExportPref.ShowModal = mrCancel then
|
||||
@ -1729,7 +1763,7 @@ begin
|
||||
|
||||
if dlgSave.Execute then
|
||||
begin
|
||||
|
||||
ShowWidths:=true;
|
||||
frmExportPref := TfrmExportPref.Create(frmMain);
|
||||
try
|
||||
if frmExportPref.ShowModal = mrCancel then
|
||||
@ -1910,6 +1944,10 @@ begin
|
||||
dbtQSLSDate.DataField := 'qsls_date';
|
||||
dbtQSLRDate.DataField := 'qslr_date';
|
||||
|
||||
lblDist.Caption := '';
|
||||
lblSumDist.Caption := '';
|
||||
lblLongest.Caption := '';
|
||||
|
||||
sbMain.Panels[1].Text := 'Ver. ' + dmData.VersionString;
|
||||
sbMain.Panels[1].Width := 140;
|
||||
tmrTime.Enabled := True;
|
||||
@ -2028,6 +2066,7 @@ procedure TfrmMain.ShowFields;
|
||||
dbgrdMain.Columns[i].Alignment := taCenter;
|
||||
dbgrdMain.Columns[i].Title.Alignment := taCenter;
|
||||
end;
|
||||
|
||||
if (UpperCase(dbgrdMain.Columns[i].DisplayName) = 'WAZ') then
|
||||
begin
|
||||
dbgrdMain.Columns[i].Alignment := taCenter;
|
||||
@ -2086,6 +2125,8 @@ procedure TfrmMain.ShowFields;
|
||||
end;
|
||||
|
||||
begin
|
||||
pnlDistance.Visible := cqrini.ReadBool('Columns', 'Distance', False);
|
||||
|
||||
dbgrdMain.DataSource := dmData.dsrMain;
|
||||
dbgrdMain.ResetColWidths;
|
||||
dmUtils.LoadForm(frmMain);
|
||||
@ -2195,14 +2236,28 @@ end;
|
||||
|
||||
procedure TfrmMain.ChechkSelRecords;
|
||||
begin
|
||||
|
||||
if dbgrdMain.SelectedRows.Count > 1 then
|
||||
begin
|
||||
lblDist.Visible :=False;
|
||||
lblDistance.Visible:=False;
|
||||
sbMain.Panels[3].Text := IntToStr(dbgrdMain.SelectedRows.Count) + ' records selected'
|
||||
end
|
||||
else
|
||||
begin
|
||||
sbMain.Panels[3].Text := '';
|
||||
lblDist.Visible :=True;
|
||||
lblDistance.Visible:=True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.CheckAttachment;
|
||||
var
|
||||
qrb:String;
|
||||
f :integer;
|
||||
|
||||
begin
|
||||
|
||||
if not dmData.qCQRLOG.Active then
|
||||
exit;
|
||||
if dmData.qCQRLOG.RecordCount = 0 then
|
||||
@ -2219,9 +2274,34 @@ begin
|
||||
acQSLImage.Enabled := True
|
||||
else
|
||||
acQSLImage.Enabled := False
|
||||
end
|
||||
end;
|
||||
|
||||
if pnlDistance.Visible then
|
||||
begin
|
||||
qrb := CalcQrb(dmData.qCQRLOG.Fields[19].AsString,dmData.qCQRLOG.Fields[18].AsString,True);
|
||||
lblDistance.Visible:=(qrb<>'') and (sbMain.Panels[3].Text = '');
|
||||
lblDist.Caption := qrb
|
||||
end
|
||||
end;
|
||||
function TfrmMain.CalcQrb(Myloc,loc:string;showUnits:boolean):string;
|
||||
var
|
||||
qrb, //distance
|
||||
qrc: String; //direction
|
||||
Begin
|
||||
if length(Myloc) = 4 then Myloc := Myloc +'LL';
|
||||
if length(loc) = 4 then loc := loc +'LL';
|
||||
qrb:='';
|
||||
dmUtils.DistanceFromLocator(Myloc,loc,qrb,qrc);
|
||||
if qrb <>'' then
|
||||
if cqrini.ReadBool('Program','ShowMiles',False) then
|
||||
Begin
|
||||
qrb := FloatToStr(dmUtils.KmToMiles(StrToInt(qrb)));
|
||||
if showUnits then qrb:= qrb + 'mi';
|
||||
end
|
||||
else
|
||||
if showUnits then qrb := qrb + 'km';
|
||||
Result := qrb;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
object frmNewQSO: TfrmNewQSO
|
||||
Left = 35
|
||||
Left = 159
|
||||
Height = 709
|
||||
Top = 64
|
||||
Top = 208
|
||||
Width = 997
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/index.html'
|
||||
@ -2137,7 +2137,7 @@ object frmNewQSO: TfrmNewQSO
|
||||
OnKeyPress = FormKeyPress
|
||||
OnShow = FormShow
|
||||
OnWindowStateChange = FormWindowStateChange
|
||||
LCLVersion = '2.0.2.0'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object sbNewQSO: TStatusBar
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
@ -3027,15 +3027,14 @@ object frmNewQSO: TfrmNewQSO
|
||||
Width = 72
|
||||
BorderSpacing.Left = 5
|
||||
BorderSpacing.Top = 2
|
||||
CharCase = ecUppercase
|
||||
MaxLength = 10
|
||||
OnChange = edtGridChange
|
||||
OnEnter = edtGridEnter
|
||||
OnExit = edtGridExit
|
||||
OnKeyDown = edtGridKeyDown
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 7
|
||||
Text = 'JO80OB'
|
||||
end
|
||||
object edtPWR: TEdit
|
||||
AnchorSideLeft.Control = edtGrid
|
||||
@ -3557,11 +3556,11 @@ object frmNewQSO: TfrmNewQSO
|
||||
Height = 135
|
||||
Top = 376
|
||||
Width = 938
|
||||
ActivePage = tabDXCCStat
|
||||
ActivePage = tabSatellite
|
||||
Align = alBottom
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Top = 40
|
||||
TabIndex = 0
|
||||
TabIndex = 1
|
||||
TabOrder = 28
|
||||
object tabDXCCStat: TTabSheet
|
||||
Caption = 'DXCC statistic'
|
||||
@ -3664,11 +3663,10 @@ object frmNewQSO: TfrmNewQSO
|
||||
Width = 128
|
||||
BorderSpacing.Left = 10
|
||||
BorderSpacing.Top = 2
|
||||
OnChange = cmbPropagationChange
|
||||
OnChange = edtRXFreqChange
|
||||
OnExit = edtRXFreqExit
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
Text = 'edtRXFreq'
|
||||
end
|
||||
object btnClearSatellite: TButton
|
||||
AnchorSideLeft.Control = edtRXFreq
|
||||
|
@ -393,6 +393,7 @@ type
|
||||
procedure edtDateEnter(Sender: TObject);
|
||||
procedure edtDXCCRefEnter(Sender: TObject);
|
||||
procedure edtEndTimeEnter(Sender: TObject);
|
||||
procedure edtGridChange(Sender: TObject);
|
||||
procedure edtGridEnter(Sender: TObject);
|
||||
procedure edtHisRSTExit(Sender: TObject);
|
||||
procedure edtHisRSTKeyPress(Sender : TObject; var Key : char);
|
||||
@ -404,6 +405,7 @@ type
|
||||
procedure edtQSL_VIAEnter(Sender: TObject);
|
||||
procedure edtQTHEnter(Sender: TObject);
|
||||
procedure edtRemQSOEnter(Sender: TObject);
|
||||
procedure edtRXFreqChange(Sender: TObject);
|
||||
procedure edtRXFreqExit(Sender: TObject);
|
||||
procedure edtStartTimeEnter(Sender: TObject);
|
||||
procedure edtStateEnter(Sender: TObject);
|
||||
@ -625,6 +627,7 @@ type
|
||||
procedure SelTextFix(Edit : TEdit; var Key : Char);
|
||||
|
||||
function CheckFreq(freq : String) : String;
|
||||
procedure WaitWeb(secs:integer);
|
||||
|
||||
public
|
||||
QTHfromCb : Boolean;
|
||||
@ -718,6 +721,7 @@ var
|
||||
c_ErrMsg : String;
|
||||
c_SyncText : String;
|
||||
c_running : Boolean = False;
|
||||
c_lock : Boolean = False;
|
||||
Azimuth : String;
|
||||
|
||||
minimalize : Boolean;
|
||||
@ -740,6 +744,7 @@ uses dUtils, fChangeLocator, dDXCC, dDXCluster, dData, fMain, fSelectDXCC, fGray
|
||||
fBigSquareStat, fSCP, fRotControl, fLogUploadStatus, fRbnMonitor, fException, fCommentToCall,
|
||||
fRemind, fContest, fXfldigi, dMembership, dSatellite;
|
||||
|
||||
|
||||
procedure TQSLTabThread.Execute;
|
||||
var
|
||||
data : string;
|
||||
@ -768,7 +773,19 @@ begin
|
||||
Synchronize(@frmNewQSO.SynDXCCTab)
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfrmNewQSO.WaitWeb(secs:integer);
|
||||
var
|
||||
l:integer;
|
||||
Begin
|
||||
//set c_lock false before calling info fetch!
|
||||
for l:=1 to secs*10 do //wait for web response sec timeout
|
||||
Begin
|
||||
if (( not c_lock) and c_running )then c_lock := true;
|
||||
sleep(100);
|
||||
Application.ProcessMessages;
|
||||
if ( c_lock and (not c_running ))then break;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmNewQSO.SynDXCCTab;
|
||||
begin
|
||||
@ -1074,6 +1091,7 @@ begin
|
||||
QTHfromCb := False;
|
||||
lblAmbiguous.Visible := False;
|
||||
old_call := '';
|
||||
idcall := ''; //without this 2ESC when cursor is at cmbfreq(Auto=unchecked) restores club->award text after clearall
|
||||
old_time := '';
|
||||
old_rstr := '';
|
||||
old_rsts := '';
|
||||
@ -1894,8 +1912,7 @@ var
|
||||
Buf,
|
||||
prik,
|
||||
data:string;
|
||||
chkDuplicates,
|
||||
c_lock: boolean;
|
||||
chkDuplicates :boolean;
|
||||
i:longint;
|
||||
l:integer;
|
||||
|
||||
@ -1940,13 +1957,7 @@ begin
|
||||
edtCall.Text := uppercase(data);
|
||||
c_lock :=false;
|
||||
edtCallExit(nil); //does info fetch
|
||||
for l:=1 to 50 do //wait for web response 5sec timeout
|
||||
Begin
|
||||
if (( not c_lock) and c_running )then c_lock := true;
|
||||
sleep(100);
|
||||
Application.ProcessMessages;
|
||||
if ( c_lock and (not c_running ))then break;
|
||||
end;
|
||||
WaitWeb(5); //wait for web response 5sec timeout
|
||||
end;
|
||||
'GRIDSQUARE' :Begin
|
||||
data := uppercase(data);
|
||||
@ -2448,9 +2459,10 @@ begin
|
||||
old_cfreq := '';
|
||||
old_cmode := '';
|
||||
edtCall.Text := call;
|
||||
c_lock:=False;
|
||||
edtCallExit(nil); //<--------this will fetch web info
|
||||
if dmData.DebugLevel>=1 then Writeln('Call was not there already');
|
||||
sleep(1000); // give time for web
|
||||
WaitWeb(2); // give time for web
|
||||
end;
|
||||
|
||||
//these can be altered always
|
||||
@ -2621,9 +2633,10 @@ begin
|
||||
if edtCall.Text <> call then //call (and web info) maybe there already ok from status packet
|
||||
Begin
|
||||
edtCall.Text := call;
|
||||
c_lock:=False;
|
||||
edtCallExit(nil); //<--------this will fetch web info
|
||||
if dmData.DebugLevel>=1 then Writeln('Call was not there already');
|
||||
sleep(1000); // give time for web
|
||||
WaitWeb(2); // give time for web
|
||||
end;
|
||||
//---------------------------------------------LOCATOR-------
|
||||
loc:= trim(StrBuf(index));
|
||||
@ -4087,6 +4100,12 @@ begin
|
||||
edtEndTime.SelectAll
|
||||
end;
|
||||
|
||||
procedure TfrmNewQSO.edtGridChange(Sender: TObject);
|
||||
begin
|
||||
edtGrid.Text := dmUtils.StdFormatLocator(edtGrid.Text);
|
||||
edtGrid.SelStart := Length(edtGrid.Text);
|
||||
end;
|
||||
|
||||
procedure TfrmNewQSO.edtGridEnter(Sender: TObject);
|
||||
begin
|
||||
edtGrid.SelectAll
|
||||
@ -4437,6 +4456,21 @@ begin
|
||||
edtRemQSO.SelectAll
|
||||
end;
|
||||
|
||||
procedure TfrmNewQSO.edtRXFreqChange(Sender: TObject);
|
||||
begin
|
||||
//prevents typing in too large number value for database
|
||||
if (length(edtRXFreq.Text)>6) then
|
||||
if ( (pos(',',edtRXFreq.Text) = 0) and (pos('.',edtRXFreq.Text) = 0) )then
|
||||
begin
|
||||
edtRXFreq.Text:= copy(edtRXFreq.Text,1,6);
|
||||
edtRXFreq.SelStart := Length(edtRXFreq.Text);
|
||||
end;
|
||||
//no jokes...
|
||||
if (pos('999999.9999',edtRXFreq.Text)>0) or (pos('999999,9999',edtRXFreq.Text)>0) then
|
||||
edtRXFreq.Text:= '';
|
||||
frmNewQSO.cmbPropagationChange(nil);
|
||||
end;
|
||||
|
||||
procedure TfrmNewQSO.edtRXFreqExit(Sender: TObject);
|
||||
begin
|
||||
edtRXFreq.Text := CheckFreq(edtRXFreq.Text);
|
||||
@ -4989,11 +5023,11 @@ begin
|
||||
edtCall.SetFocus
|
||||
end
|
||||
else
|
||||
edtCall.Text := ''; // OnChange calls ClearAll;
|
||||
edtCall.Text := ''; // OnChange calls ClearAll;
|
||||
EscFirstTime := False;
|
||||
old_ccall := '';
|
||||
old_cfreq := '';
|
||||
old_cmode := ''
|
||||
old_cmode := '';
|
||||
end
|
||||
else begin
|
||||
if Assigned(CWint) then
|
||||
|
@ -1,7 +1,7 @@
|
||||
object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
Left = 548
|
||||
Height = 404
|
||||
Top = 298
|
||||
Left = 522
|
||||
Height = 425
|
||||
Top = 146
|
||||
Width = 395
|
||||
HorzScrollBar.Page = 394
|
||||
VertScrollBar.Page = 403
|
||||
@ -9,19 +9,19 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
BorderIcons = [biSystemMenu]
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'frmNewQTHProfile'
|
||||
ClientHeight = 404
|
||||
ClientHeight = 425
|
||||
ClientWidth = 395
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '1.8.2.0'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object lblLocator: TLabel
|
||||
AnchorSideTop.Control = edtProfNr
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 9
|
||||
Height = 17
|
||||
Top = 69
|
||||
Width = 53
|
||||
Top = 76
|
||||
Width = 48
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'Locator'
|
||||
ParentColor = False
|
||||
@ -31,8 +31,8 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 9
|
||||
Height = 17
|
||||
Top = 125
|
||||
Width = 29
|
||||
Top = 139
|
||||
Width = 28
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'QTH'
|
||||
ParentColor = False
|
||||
@ -42,8 +42,8 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 177
|
||||
Height = 17
|
||||
Top = 69
|
||||
Width = 73
|
||||
Top = 68
|
||||
Width = 70
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'Equipment'
|
||||
ParentColor = False
|
||||
@ -53,8 +53,8 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 9
|
||||
Height = 17
|
||||
Top = 244
|
||||
Width = 59
|
||||
Top = 258
|
||||
Width = 57
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'Remarks'
|
||||
ParentColor = False
|
||||
@ -64,7 +64,7 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
Left = 9
|
||||
Height = 17
|
||||
Top = 13
|
||||
Width = 100
|
||||
Width = 95
|
||||
BorderSpacing.Bottom = 2
|
||||
Caption = 'Profile number'
|
||||
ParentColor = False
|
||||
@ -73,12 +73,12 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Control = lblLocator
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 27
|
||||
Top = 88
|
||||
Height = 34
|
||||
Top = 95
|
||||
Width = 92
|
||||
BorderSpacing.Top = 2
|
||||
CharCase = ecUppercase
|
||||
MaxLength = 6
|
||||
OnChange = edtLocatorChange
|
||||
TabOrder = 1
|
||||
end
|
||||
object mQTH: TMemo
|
||||
@ -86,7 +86,7 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 9
|
||||
Height = 90
|
||||
Top = 144
|
||||
Top = 158
|
||||
Width = 150
|
||||
BorderSpacing.Top = 2
|
||||
MaxLength = 250
|
||||
@ -98,7 +98,7 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 177
|
||||
Height = 146
|
||||
Top = 88
|
||||
Top = 87
|
||||
Width = 208
|
||||
BorderSpacing.Top = 2
|
||||
MaxLength = 250
|
||||
@ -110,7 +110,7 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 9
|
||||
Height = 90
|
||||
Top = 263
|
||||
Top = 277
|
||||
Width = 376
|
||||
BorderSpacing.Top = 2
|
||||
ScrollBars = ssAutoBoth
|
||||
@ -120,8 +120,8 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Control = mRemarks
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 28
|
||||
Height = 31
|
||||
Top = 363
|
||||
Height = 35
|
||||
Top = 377
|
||||
Width = 60
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 10
|
||||
@ -135,9 +135,9 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Control = mRemarks
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 288
|
||||
Height = 31
|
||||
Top = 363
|
||||
Width = 60
|
||||
Height = 35
|
||||
Top = 377
|
||||
Width = 62
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 10
|
||||
BorderSpacing.InnerBorder = 1
|
||||
@ -149,9 +149,9 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
end
|
||||
object chkVisible: TCheckBox
|
||||
Left = 177
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 35
|
||||
Width = 149
|
||||
Width = 146
|
||||
Caption = 'Show profile in list'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
@ -161,11 +161,12 @@ object frmNewQTHProfile: TfrmNewQTHProfile
|
||||
AnchorSideTop.Control = lblProfileNumber
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 9
|
||||
Height = 27
|
||||
Height = 34
|
||||
Top = 32
|
||||
Width = 93
|
||||
BorderSpacing.Top = 2
|
||||
CharCase = ecUppercase
|
||||
NumbersOnly = True
|
||||
OnKeyDown = edtProfNrKeyDown
|
||||
TabOrder = 0
|
||||
end
|
||||
|
@ -26,6 +26,7 @@ type
|
||||
mRemarks: TMemo;
|
||||
mEquipment: TMemo;
|
||||
mQTH: TMemo;
|
||||
procedure edtLocatorChange(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure btnSaveClick(Sender: TObject);
|
||||
@ -99,5 +100,11 @@ begin
|
||||
Editing := False
|
||||
end;
|
||||
|
||||
procedure TfrmNewQTHProfile.edtLocatorChange(Sender: TObject);
|
||||
begin
|
||||
edtLocator.Text := dmUtils.StdFormatLocator(edtLocator.Text);
|
||||
edtLocator.SelStart := Length(edtLocator.Text);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -1,37 +1,37 @@
|
||||
object frmPreferences: TfrmPreferences
|
||||
Left = 169
|
||||
Left = 100
|
||||
Height = 659
|
||||
Top = 65
|
||||
Width = 1000
|
||||
Top = 395
|
||||
Width = 1098
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/h1.html'
|
||||
HorzScrollBar.Page = 761
|
||||
VertScrollBar.Page = 450
|
||||
HorzScrollBar.Page = 834
|
||||
VertScrollBar.Page = 544
|
||||
ActiveControl = lbPreferences
|
||||
AutoScroll = True
|
||||
BorderIcons = [biSystemMenu]
|
||||
Caption = 'Preferences'
|
||||
ClientHeight = 659
|
||||
ClientWidth = 1000
|
||||
ClientWidth = 1098
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '2.0.2.0'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object pgPreferences: TPageControl
|
||||
Left = 160
|
||||
Height = 659
|
||||
Top = 0
|
||||
Width = 752
|
||||
ActivePage = tabVisibleColumns
|
||||
Width = 850
|
||||
ActivePage = tabXplanet
|
||||
Align = alClient
|
||||
TabIndex = 3
|
||||
TabIndex = 16
|
||||
TabOrder = 0
|
||||
OnChange = pgPreferencesChange
|
||||
object tabProgram: TTabSheet
|
||||
Caption = 'Program'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object Label60: TLabel
|
||||
Left = 364
|
||||
Height = 17
|
||||
@ -321,7 +321,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabStation: TTabSheet
|
||||
Caption = 'Station'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object Label1: TLabel
|
||||
Left = 11
|
||||
Height = 17
|
||||
@ -381,7 +381,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
Top = 107
|
||||
Width = 128
|
||||
CharCase = ecUppercase
|
||||
OnChange = edtLocChange
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
||||
@ -390,7 +390,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Caption = 'New QSO'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object Label82: TLabel
|
||||
AnchorSideLeft.Control = edtRecetQSOs
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
@ -832,7 +832,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabVisibleColumns: TTabSheet
|
||||
Caption = 'Visible columns'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object chkDate: TCheckBox
|
||||
AnchorSideLeft.Control = tabVisibleColumns
|
||||
AnchorSideTop.Control = tabVisibleColumns
|
||||
@ -1014,11 +1014,11 @@ object frmPreferences: TfrmPreferences
|
||||
end
|
||||
object chkIOTA: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkMyLoc
|
||||
AnchorSideTop.Control = chkDistance
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 84
|
||||
Top = 110
|
||||
Width = 56
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'IOTA'
|
||||
@ -1030,7 +1030,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 110
|
||||
Top = 136
|
||||
Width = 66
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Award'
|
||||
@ -1042,7 +1042,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 136
|
||||
Top = 162
|
||||
Width = 72
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'County'
|
||||
@ -1054,7 +1054,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 162
|
||||
Top = 188
|
||||
Width = 66
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Power'
|
||||
@ -1066,7 +1066,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 188
|
||||
Top = 214
|
||||
Width = 62
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'DXCC'
|
||||
@ -1078,7 +1078,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 214
|
||||
Top = 240
|
||||
Width = 139
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Comment to QSO'
|
||||
@ -1090,7 +1090,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 240
|
||||
Top = 266
|
||||
Width = 56
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'WAZ'
|
||||
@ -1102,7 +1102,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 266
|
||||
Top = 292
|
||||
Width = 48
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'ITU'
|
||||
@ -1114,7 +1114,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 292
|
||||
Top = 318
|
||||
Width = 60
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'State'
|
||||
@ -1305,7 +1305,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 318
|
||||
Top = 344
|
||||
Width = 121
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Satellite name'
|
||||
@ -1317,7 +1317,7 @@ object frmPreferences: TfrmPreferences
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 344
|
||||
Top = 370
|
||||
Width = 113
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'RX frequency'
|
||||
@ -1360,10 +1360,10 @@ object frmPreferences: TfrmPreferences
|
||||
TabOrder = 42
|
||||
end
|
||||
object chkSTX_str: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkRXFreq
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkContestName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 370
|
||||
Width = 118
|
||||
@ -1372,10 +1372,10 @@ object frmPreferences: TfrmPreferences
|
||||
TabOrder = 43
|
||||
end
|
||||
object chkSRX_str: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkSTX_str
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 396
|
||||
Width = 118
|
||||
@ -1383,11 +1383,23 @@ object frmPreferences: TfrmPreferences
|
||||
Caption = 'ContMSG rcvd'
|
||||
TabOrder = 44
|
||||
end
|
||||
object chkDistance: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkMyLoc
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 84
|
||||
Width = 133
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Distance (in pnl)'
|
||||
TabOrder = 45
|
||||
end
|
||||
end
|
||||
object tabBands: TTabSheet
|
||||
Caption = 'Bands'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object cb136kHz: TCheckBox
|
||||
Left = 14
|
||||
Height = 23
|
||||
@ -1610,7 +1622,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabTRXcontrol: TTabSheet
|
||||
Caption = 'TRX control'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object btnChangeDefaultFreq: TButton
|
||||
Left = 472
|
||||
Height = 25
|
||||
@ -2388,7 +2400,7 @@ object frmPreferences: TfrmPreferences
|
||||
object TabROTcontrol: TTabSheet
|
||||
Caption = 'ROT control'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox41: TGroupBox
|
||||
Left = 7
|
||||
Height = 88
|
||||
@ -3094,7 +3106,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabModes: TTabSheet
|
||||
Caption = 'Modes'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox35: TGroupBox
|
||||
Left = 14
|
||||
Height = 73
|
||||
@ -3429,7 +3441,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabQTHProfiles: TTabSheet
|
||||
Caption = 'QTH Profiles'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object chkUseProfiles: TCheckBox
|
||||
Left = 9
|
||||
Height = 23
|
||||
@ -3534,289 +3546,19 @@ object frmPreferences: TfrmPreferences
|
||||
object tabExport: TTabSheet
|
||||
Caption = 'Export'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
inline fraExportSettings: TfraExportPref
|
||||
Left = 16
|
||||
Height = 504
|
||||
ClientWidth = 840
|
||||
inline fraExportPref1: TfraExportPref
|
||||
Top = 8
|
||||
Width = 640
|
||||
ClientHeight = 504
|
||||
ClientWidth = 640
|
||||
DesignLeft = 623
|
||||
DesignTop = 214
|
||||
inherited chkProfile: TCheckBox
|
||||
Top = 326
|
||||
Width = 67
|
||||
end
|
||||
inherited chkAscTime: TCheckBox
|
||||
Left = 8
|
||||
Top = 448
|
||||
Width = 197
|
||||
end
|
||||
inherited chkExCont: TCheckBox
|
||||
Width = 89
|
||||
end
|
||||
inherited chkexQTH: TCheckBox
|
||||
Width = 54
|
||||
end
|
||||
inherited chkexName: TCheckBox
|
||||
Width = 65
|
||||
end
|
||||
inherited chkexRSTR: TCheckBox
|
||||
Width = 83
|
||||
end
|
||||
inherited chkexRSTS: TCheckBox
|
||||
Width = 83
|
||||
end
|
||||
inherited chkexFreq: TCheckBox
|
||||
Width = 54
|
||||
end
|
||||
inherited chkexMode: TCheckBox
|
||||
Width = 62
|
||||
end
|
||||
inherited chkexCall: TCheckBox
|
||||
Width = 51
|
||||
end
|
||||
inherited chkexTimeoff: TCheckBox
|
||||
Width = 80
|
||||
end
|
||||
inherited chkexTimeon: TCheckBox
|
||||
Width = 79
|
||||
end
|
||||
inherited chkexDate: TCheckBox
|
||||
Width = 57
|
||||
end
|
||||
inherited edtWDate: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWTimeOn: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWTimeOff: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWCall: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWMode: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWFreq: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWRstS: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWRstR: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWName: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWQTH: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited Label46: TLabel
|
||||
Height = 17
|
||||
Width = 31
|
||||
end
|
||||
inherited Label49: TLabel
|
||||
Height = 17
|
||||
Width = 38
|
||||
end
|
||||
inherited Label47: TLabel
|
||||
Height = 17
|
||||
Width = 31
|
||||
end
|
||||
inherited Label50: TLabel
|
||||
Height = 17
|
||||
Width = 38
|
||||
end
|
||||
inherited Label48: TLabel
|
||||
Height = 17
|
||||
Width = 31
|
||||
end
|
||||
inherited Label51: TLabel
|
||||
Height = 17
|
||||
Width = 38
|
||||
end
|
||||
inherited chkexQSLS: TCheckBox
|
||||
Width = 83
|
||||
end
|
||||
inherited chkexQSLR: TCheckBox
|
||||
Width = 111
|
||||
end
|
||||
inherited chkexQSLVIA: TCheckBox
|
||||
Width = 113
|
||||
end
|
||||
inherited chkexLoc: TCheckBox
|
||||
Width = 74
|
||||
end
|
||||
inherited chkexMyLoc: TCheckBox
|
||||
Width = 95
|
||||
end
|
||||
inherited chkexIOTA: TCheckBox
|
||||
Width = 56
|
||||
end
|
||||
inherited chkexAward: TCheckBox
|
||||
Width = 66
|
||||
end
|
||||
inherited chkexCounty: TCheckBox
|
||||
Width = 72
|
||||
end
|
||||
inherited chkexPower: TCheckBox
|
||||
Width = 66
|
||||
end
|
||||
inherited chkexDXCC: TCheckBox
|
||||
Width = 62
|
||||
end
|
||||
inherited chkexRemarks: TCheckBox
|
||||
Width = 83
|
||||
end
|
||||
inherited edtWRemarks: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWDXCC: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWPower: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWCounty: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWAward: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWIOTA: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWMyLoc: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWLoc: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWQSLVIA: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWQSLR: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWQSLS: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited chkexeQSLRDate: TCheckBox
|
||||
Width = 130
|
||||
end
|
||||
inherited chkexeQSLR: TCheckBox
|
||||
Width = 120
|
||||
end
|
||||
inherited chkexeQSLSDate: TCheckBox
|
||||
Width = 129
|
||||
end
|
||||
inherited chkexeQSLS: TCheckBox
|
||||
Width = 120
|
||||
end
|
||||
inherited chkexQSLRDate: TCheckBox
|
||||
Width = 116
|
||||
end
|
||||
inherited chkexQSLSDate: TCheckBox
|
||||
Width = 116
|
||||
end
|
||||
inherited chkexLQSLRDate: TCheckBox
|
||||
Width = 133
|
||||
end
|
||||
inherited chkexLQSLR: TCheckBox
|
||||
Width = 123
|
||||
end
|
||||
inherited chkexLQSLSDate: TCheckBox
|
||||
Width = 132
|
||||
end
|
||||
inherited chkexLQSLS: TCheckBox
|
||||
Width = 123
|
||||
end
|
||||
inherited chkexState: TCheckBox
|
||||
Width = 60
|
||||
end
|
||||
inherited chkexNote: TCheckBox
|
||||
Width = 57
|
||||
end
|
||||
inherited chkexITU: TCheckBox
|
||||
Width = 48
|
||||
end
|
||||
inherited chkexWAZ: TCheckBox
|
||||
Width = 56
|
||||
end
|
||||
inherited edtWWAZ: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWITU: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWNote: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWState: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWLQSLS: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWLQSLSDate: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWLQSLR: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWLQSLRDate: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWQSLSDate: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWQSLRDate: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWeQSLS: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWeQSLSDate: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWeQSLR: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWeQSLRDate: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited chkExPropagation: TCheckBox
|
||||
Width = 104
|
||||
end
|
||||
inherited chkExSat: TCheckBox
|
||||
Width = 121
|
||||
end
|
||||
inherited chkExRXFreq: TCheckBox
|
||||
Width = 113
|
||||
end
|
||||
inherited edtWProp: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWSatName: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited edtWRxFreq: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited chkexContest: TCheckBox
|
||||
Width = 76
|
||||
inherited lblField1: TLabel
|
||||
AnchorSideLeft.Control = fraExportPref1
|
||||
AnchorSideTop.Control = fraExportPref1
|
||||
end
|
||||
end
|
||||
end
|
||||
object tabDXCluster: TTabSheet
|
||||
Caption = 'DXCluster'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object gbDXCColor: TGroupBox
|
||||
AnchorSideLeft.Control = tabDXCluster
|
||||
AnchorSideTop.Control = tabDXCluster
|
||||
@ -4271,7 +4013,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabFont: TTabSheet
|
||||
Caption = 'Fonts'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox7: TGroupBox
|
||||
Left = 14
|
||||
Height = 352
|
||||
@ -4482,7 +4224,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabWazItu: TTabSheet
|
||||
Caption = 'WAZ, ITU zones'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox8: TGroupBox
|
||||
Left = 14
|
||||
Height = 230
|
||||
@ -4625,7 +4367,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabIOTA: TTabSheet
|
||||
Caption = 'IOTA'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox10: TGroupBox
|
||||
Left = 22
|
||||
Height = 168
|
||||
@ -4682,7 +4424,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabMemebership: TTabSheet
|
||||
Caption = 'Membership'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox11: TGroupBox
|
||||
Left = 14
|
||||
Height = 80
|
||||
@ -4975,7 +4717,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabBandMap: TTabSheet
|
||||
Caption = 'Bandmap'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox16: TGroupBox
|
||||
Left = 13
|
||||
Height = 61
|
||||
@ -5229,7 +4971,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabXplanet: TTabSheet
|
||||
Caption = 'xplanet support'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox21: TGroupBox
|
||||
Left = 14
|
||||
Height = 89
|
||||
@ -5238,7 +4980,7 @@ object frmPreferences: TfrmPreferences
|
||||
Caption = ' Path for the xplanet '
|
||||
ClientHeight = 71
|
||||
ClientWidth = 519
|
||||
TabOrder = 0
|
||||
TabOrder = 10
|
||||
object edtXplanetPath: TEdit
|
||||
Left = 6
|
||||
Height = 34
|
||||
@ -5481,14 +5223,15 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 424
|
||||
Width = 521
|
||||
Caption = ' Center locator for xplanet (if different from default)'
|
||||
ClientHeight = 63
|
||||
ClientWidth = 515
|
||||
ClientHeight = 71
|
||||
ClientWidth = 519
|
||||
TabOrder = 0
|
||||
object edtXplanetLoc: TEdit
|
||||
Left = 6
|
||||
Height = 25
|
||||
Height = 34
|
||||
Top = 15
|
||||
Width = 96
|
||||
OnChange = edtXplanetLocChange
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
@ -5496,7 +5239,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabZipCode: TTabSheet
|
||||
Caption = 'Zip code tracking'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox25: TGroupBox
|
||||
Left = 6
|
||||
Height = 104
|
||||
@ -5753,7 +5496,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabLoTW: TTabSheet
|
||||
Caption = 'LoTW/eQSL support'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object Label10: TLabel
|
||||
Left = 271
|
||||
Height = 34
|
||||
@ -5930,7 +5673,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabCWInterface: TTabSheet
|
||||
Caption = 'CW interface'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object Label83: TLabel
|
||||
Left = 15
|
||||
Height = 17
|
||||
@ -6260,7 +6003,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabFldigi1: TTabSheet
|
||||
Caption = 'fldigi/wsjt interface'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox31: TGroupBox
|
||||
Left = 12
|
||||
Height = 328
|
||||
@ -6900,7 +6643,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabAutoBackup: TTabSheet
|
||||
Caption = 'Exit & Auto backup'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox32: TGroupBox
|
||||
Left = 8
|
||||
Height = 370
|
||||
@ -7048,7 +6791,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabExtViewers: TTabSheet
|
||||
Caption = 'External viewers'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object Label99: TLabel
|
||||
Left = 23
|
||||
Height = 17
|
||||
@ -7125,7 +6868,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabCallbook: TTabSheet
|
||||
Caption = 'Callbook support'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox38: TGroupBox
|
||||
Left = 13
|
||||
Height = 160
|
||||
@ -7190,7 +6933,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabRBN: TTabSheet
|
||||
Caption = 'RBN support'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object chkRBNAutoConn: TCheckBox
|
||||
Left = 408
|
||||
Height = 23
|
||||
@ -7403,7 +7146,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabOnlineLog: TTabSheet
|
||||
Caption = 'Online log upload'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object GroupBox44: TGroupBox
|
||||
Left = 13
|
||||
Height = 179
|
||||
@ -7705,7 +7448,7 @@ object frmPreferences: TfrmPreferences
|
||||
object tabCondx: TTabSheet
|
||||
Caption = 'Propagation'
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
ClientWidth = 840
|
||||
object rbCondxAsImage: TRadioButton
|
||||
Left = 25
|
||||
Height = 23
|
||||
@ -7776,7 +7519,7 @@ object frmPreferences: TfrmPreferences
|
||||
end
|
||||
object Panel1: TPanel
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 912
|
||||
Left = 1010
|
||||
Height = 659
|
||||
Top = 0
|
||||
Width = 88
|
||||
@ -7784,6 +7527,7 @@ object frmPreferences: TfrmPreferences
|
||||
ClientHeight = 659
|
||||
ClientWidth = 88
|
||||
TabOrder = 1
|
||||
OnClick = Panel1Click
|
||||
object btnOK: TButton
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
@ -7872,12 +7616,12 @@ object frmPreferences: TfrmPreferences
|
||||
object dlgFont: TFontDialog
|
||||
MinFontSize = 0
|
||||
MaxFontSize = 0
|
||||
left = 936
|
||||
top = 264
|
||||
left = 1040
|
||||
top = 280
|
||||
end
|
||||
object dlgOpen: TOpenDialog
|
||||
left = 936
|
||||
top = 208
|
||||
left = 1040
|
||||
top = 216
|
||||
end
|
||||
object dlgColor: TColorDialog
|
||||
Color = clBlack
|
||||
@ -7903,7 +7647,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ColorS=F0FBFF'
|
||||
'ColorT=A4A0A0'
|
||||
)
|
||||
left = 936
|
||||
top = 328
|
||||
left = 1040
|
||||
top = 344
|
||||
end
|
||||
end
|
||||
|
@ -120,6 +120,7 @@ type
|
||||
cb60m: TCheckBox;
|
||||
cb30cm: TCheckBox;
|
||||
cgLimit: TCheckGroup;
|
||||
chkDistance: TCheckBox;
|
||||
chkSTX: TCheckBox;
|
||||
chkSRX: TCheckBox;
|
||||
chkSTX_str: TCheckBox;
|
||||
@ -616,7 +617,7 @@ type
|
||||
edtName: TEdit;
|
||||
edtRST_R: TEdit;
|
||||
dlgFont: TFontDialog;
|
||||
fraExportSettings : TfraExportPref;
|
||||
fraExportPref1: TfraExportPref;
|
||||
gbProfiles1: TGroupBox;
|
||||
grbSerialR2: TGroupBox;
|
||||
grbSerialR3: TGroupBox;
|
||||
@ -673,6 +674,7 @@ type
|
||||
GroupBox52: TGroupBox;
|
||||
gbDXCConnect: TGroupBox;
|
||||
gbDXCSpots: TGroupBox;
|
||||
GroupBox53: TGroupBox;
|
||||
GroupBox7: TGroupBox;
|
||||
GroupBox8: TGroupBox;
|
||||
GroupBox9: TGroupBox;
|
||||
@ -1019,6 +1021,7 @@ type
|
||||
procedure DateEditCallEditingDone(Sender: TObject);
|
||||
procedure DateEditLocEditingDone(Sender: TObject);
|
||||
procedure edtK3NGSerSpeedChange(Sender: TObject);
|
||||
procedure edtLocChange(Sender: TObject);
|
||||
procedure edtR1RigCtldArgsChange(Sender: TObject);
|
||||
procedure edtR1RigCtldPortChange(Sender : TObject);
|
||||
procedure edtR2RigCtldArgsChange(Sender : TObject);
|
||||
@ -1030,6 +1033,7 @@ type
|
||||
procedure edtWinMinSpeedChange(Sender: TObject);
|
||||
procedure edtWinPortChange(Sender: TObject);
|
||||
procedure edtWinSpeedChange(Sender: TObject);
|
||||
procedure edtXplanetLocChange(Sender: TObject);
|
||||
procedure lbPreferencesClick(Sender: TObject);
|
||||
procedure btnDefineProfileClick(Sender: TObject);
|
||||
procedure btnHelpClick(Sender: TObject);
|
||||
@ -1057,6 +1061,7 @@ type
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure edtPoll2Exit(Sender: TObject);
|
||||
procedure edtPoll1Exit(Sender: TObject);
|
||||
procedure Panel1Click(Sender: TObject);
|
||||
procedure pgPreferencesChange(Sender: TObject);
|
||||
procedure pnlQSOColorClick(Sender : TObject);
|
||||
private
|
||||
@ -1164,6 +1169,7 @@ begin
|
||||
cqrini.WriteBool('Columns', 'QSL_VIA', chkQSL_VIA.Checked);
|
||||
cqrini.WriteBool('Columns', 'Locator', chkLoc.Checked);
|
||||
cqrini.WriteBool('Columns', 'MyLoc', chkMyLoc.Checked);
|
||||
cqrini.WriteBool('Columns', 'Distance', chkDistance.Checked);
|
||||
cqrini.WriteBool('Columns', 'IOTA', chkIOTA.Checked);
|
||||
cqrini.WriteBool('Columns', 'Award', chkAward.Checked);
|
||||
cqrini.WriteBool('Columns', 'Power', chkPower.Checked);
|
||||
@ -1579,7 +1585,7 @@ begin
|
||||
frmNewQSO.InitializeCW
|
||||
end;
|
||||
|
||||
fraExportSettings.SaveExportPref;
|
||||
fraExportPref1.SaveExportPref;
|
||||
|
||||
dmUtils.TimeOffset := StrToCurr(edtOffset.Text);
|
||||
dmUtils.GrayLineOffset := StrToCurr(edtGrayLineOffset.Text);
|
||||
@ -2368,6 +2374,12 @@ begin
|
||||
WinKeyerChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtLocChange(Sender: TObject);
|
||||
begin
|
||||
edtLoc.Text := dmUtils.StdFormatLocator(edtLoc.Text);
|
||||
edtLoc.SelStart := Length(edtLoc.Text);
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtR1RigCtldArgsChange(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
@ -2424,6 +2436,12 @@ begin
|
||||
WinKeyerChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtXplanetLocChange(Sender: TObject);
|
||||
begin
|
||||
edtXplanetLoc.Text := dmUtils.StdFormatLocator(edtXplanetLoc.Text);
|
||||
edtXplanetLoc.SelStart := Length(edtXplanetLoc.Text);
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.lbPreferencesClick(Sender: TObject);
|
||||
begin
|
||||
pgPreferences.ActivePageIndex := lbPreferences.ItemIndex;
|
||||
@ -2525,6 +2543,7 @@ begin
|
||||
chkQSL_VIA.Checked := cqrini.ReadBool('Columns', 'QSL_VIA', False);
|
||||
chkLoc.Checked := cqrini.ReadBool('Columns', 'Locator', False);
|
||||
chkMyLoc.Checked := cqrini.ReadBool('Columns', 'MyLoc', False);
|
||||
chkDistance.Checked := cqrini.ReadBool('Columns', 'Distance', False);
|
||||
chkIOTA.Checked := cqrini.ReadBool('Columns', 'IOTA', False);
|
||||
chkAward.Checked := cqrini.ReadBool('Columns', 'Award', False);
|
||||
chkCounty.Checked := cqrini.ReadBool('Columns', 'County', False);
|
||||
@ -2933,7 +2952,7 @@ begin
|
||||
|
||||
wasOnlineLogSupportEnabled := chkHaUpEnabled.Checked or chkClUpEnabled.Checked or chkHrUpEnabled.Checked;
|
||||
|
||||
fraExportSettings.LoadExportPref;
|
||||
fraExportPref1.LoadExportPref;
|
||||
|
||||
lbPreferences.Selected[pgPreferences.ActivePageIndex] := True;
|
||||
edtCW1.Width := 60;
|
||||
@ -2965,6 +2984,11 @@ begin
|
||||
edtPoll1.Text := '500';
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.Panel1Click(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.pgPreferencesChange(Sender: TObject);
|
||||
begin
|
||||
lbPreferences.Selected[pgPreferences.ActivePageIndex] := True;
|
||||
|
@ -1,209 +1,303 @@
|
||||
object frmQSLExpPref: TfrmQSLExpPref
|
||||
Left = 489
|
||||
Height = 383
|
||||
Top = 323
|
||||
Width = 517
|
||||
Left = 519
|
||||
Height = 450
|
||||
Top = 42
|
||||
Width = 530
|
||||
Caption = 'Choose fields for export'
|
||||
ClientHeight = 383
|
||||
ClientWidth = 517
|
||||
ClientHeight = 450
|
||||
ClientWidth = 530
|
||||
OnShow = FormShow
|
||||
LCLVersion = '1.2.4.0'
|
||||
LCLVersion = '2.0.4.0'
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 8
|
||||
Height = 368
|
||||
Top = 8
|
||||
Width = 416
|
||||
ClientHeight = 364
|
||||
ClientWidth = 412
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 6
|
||||
Height = 434
|
||||
Top = 12
|
||||
Width = 418
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 12
|
||||
ClientHeight = 432
|
||||
ClientWidth = 416
|
||||
TabOrder = 0
|
||||
object chkTimeOn: TCheckBox
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 43
|
||||
Height = 23
|
||||
Top = 68
|
||||
Width = 79
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Time on'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
TabOrder = 0
|
||||
end
|
||||
object chkDate: TCheckBox
|
||||
AnchorSideLeft.Control = lblDateFormat
|
||||
AnchorSideTop.Control = lblDateFormat
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 12
|
||||
Width = 58
|
||||
Height = 23
|
||||
Top = 42
|
||||
Width = 57
|
||||
BorderSpacing.Top = 11
|
||||
Caption = 'Date'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
TabOrder = 1
|
||||
end
|
||||
object chkTimeOff: TCheckBox
|
||||
AnchorSideLeft.Control = chkTimeOn
|
||||
AnchorSideTop.Control = chkTimeOn
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 75
|
||||
Width = 82
|
||||
Height = 23
|
||||
Top = 94
|
||||
Width = 80
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Time off'
|
||||
TabOrder = 2
|
||||
end
|
||||
object chkCallSign: TCheckBox
|
||||
AnchorSideLeft.Control = chkTimeOff
|
||||
AnchorSideTop.Control = chkTimeOff
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 107
|
||||
Height = 23
|
||||
Top = 120
|
||||
Width = 79
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'CallSign'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
TabOrder = 3
|
||||
end
|
||||
object chkMode: TCheckBox
|
||||
AnchorSideLeft.Control = chkCallSign
|
||||
AnchorSideTop.Control = chkCallSign
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 139
|
||||
Width = 65
|
||||
Height = 23
|
||||
Top = 146
|
||||
Width = 62
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Mode'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
TabOrder = 4
|
||||
end
|
||||
object chkFreq: TCheckBox
|
||||
AnchorSideLeft.Control = chkCallSign
|
||||
AnchorSideTop.Control = chkMode
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 171
|
||||
Width = 57
|
||||
Height = 23
|
||||
Top = 172
|
||||
Width = 54
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Freq'
|
||||
TabOrder = 5
|
||||
end
|
||||
object chkRST_S: TCheckBox
|
||||
AnchorSideLeft.Control = chkFreq
|
||||
AnchorSideTop.Control = chkFreq
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 203
|
||||
Height = 23
|
||||
Top = 206
|
||||
Width = 83
|
||||
BorderSpacing.Top = 11
|
||||
Caption = 'RST sent'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
TabOrder = 6
|
||||
end
|
||||
object chkRST_R: TCheckBox
|
||||
AnchorSideLeft.Control = chkRST_S
|
||||
AnchorSideTop.Control = chkRST_S
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 235
|
||||
Height = 23
|
||||
Top = 241
|
||||
Width = 82
|
||||
BorderSpacing.Top = 12
|
||||
Caption = 'RST Rec.'
|
||||
TabOrder = 7
|
||||
end
|
||||
object chkName: TCheckBox
|
||||
AnchorSideLeft.Control = chkRST_R
|
||||
AnchorSideTop.Control = chkRST_R
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 267
|
||||
Width = 66
|
||||
Height = 23
|
||||
Top = 276
|
||||
Width = 65
|
||||
BorderSpacing.Top = 12
|
||||
Caption = 'Name'
|
||||
TabOrder = 8
|
||||
end
|
||||
object chkQTH: TCheckBox
|
||||
AnchorSideLeft.Control = chkName
|
||||
AnchorSideTop.Control = chkName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 299
|
||||
Width = 55
|
||||
Height = 23
|
||||
Top = 302
|
||||
Width = 54
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QTH'
|
||||
TabOrder = 9
|
||||
end
|
||||
object chkQSL_S: TCheckBox
|
||||
AnchorSideLeft.Control = cbxDateFormat
|
||||
AnchorSideTop.Control = cbxDateFormat
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 43
|
||||
Width = 85
|
||||
Height = 23
|
||||
Top = 42
|
||||
Width = 83
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL sent'
|
||||
TabOrder = 10
|
||||
end
|
||||
object chkQSL_VIA: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_R
|
||||
AnchorSideTop.Control = chkQSL_R
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 107
|
||||
Width = 115
|
||||
Height = 23
|
||||
Top = 94
|
||||
Width = 113
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL manager'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
TabOrder = 11
|
||||
end
|
||||
object chkLoc: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkQSL_VIA
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 139
|
||||
Width = 79
|
||||
Height = 23
|
||||
Top = 120
|
||||
Width = 74
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Locator'
|
||||
TabOrder = 12
|
||||
end
|
||||
object chkMyLoc: TCheckBox
|
||||
AnchorSideLeft.Control = chkLoc
|
||||
AnchorSideTop.Control = chkLoc
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 171
|
||||
Width = 98
|
||||
Height = 23
|
||||
Top = 146
|
||||
Width = 95
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'My locator'
|
||||
TabOrder = 13
|
||||
end
|
||||
object chkIOTA: TCheckBox
|
||||
AnchorSideLeft.Control = chkDistance
|
||||
AnchorSideTop.Control = chkDistance
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 203
|
||||
Width = 58
|
||||
Height = 23
|
||||
Top = 198
|
||||
Width = 56
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'IOTA'
|
||||
TabOrder = 14
|
||||
end
|
||||
object chkAward: TCheckBox
|
||||
AnchorSideLeft.Control = chkIOTA
|
||||
AnchorSideTop.Control = chkIOTA
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 235
|
||||
Width = 70
|
||||
Height = 23
|
||||
Top = 224
|
||||
Width = 66
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Award'
|
||||
TabOrder = 15
|
||||
end
|
||||
object chkPower: TCheckBox
|
||||
AnchorSideLeft.Control = chkAward
|
||||
AnchorSideTop.Control = chkAward
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 267
|
||||
Width = 69
|
||||
Height = 23
|
||||
Top = 250
|
||||
Width = 66
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Power'
|
||||
TabOrder = 16
|
||||
end
|
||||
object chkRemarks: TCheckBox
|
||||
AnchorSideLeft.Control = chkPower
|
||||
AnchorSideTop.Control = chkPower
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 299
|
||||
Width = 243
|
||||
Height = 23
|
||||
Top = 276
|
||||
Width = 236
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Comment to QSO/own comment'
|
||||
TabOrder = 17
|
||||
end
|
||||
object chkQSL_R: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_S
|
||||
AnchorSideTop.Control = chkQSL_S
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 75
|
||||
Width = 113
|
||||
Height = 23
|
||||
Top = 68
|
||||
Width = 111
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL received'
|
||||
TabOrder = 18
|
||||
end
|
||||
object chkQSLMsg: TCheckBox
|
||||
AnchorSideLeft.Control = chkRemarks
|
||||
AnchorSideTop.Control = chkRemarks
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 24
|
||||
Top = 333
|
||||
Width = 187
|
||||
Height = 23
|
||||
Top = 302
|
||||
Width = 183
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL message (PSE/TNX)'
|
||||
TabOrder = 19
|
||||
end
|
||||
object chkBand: TCheckBox
|
||||
AnchorSideLeft.Control = chkQTH
|
||||
AnchorSideTop.Control = chkQTH
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 24
|
||||
Top = 333
|
||||
Width = 60
|
||||
Height = 23
|
||||
Top = 328
|
||||
Width = 59
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Band'
|
||||
Checked = True
|
||||
State = cbChecked
|
||||
TabOrder = 20
|
||||
end
|
||||
object cbxDateFormat: TComboBox
|
||||
AnchorSideLeft.Control = lblDateFormat
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblDateFormat
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 166
|
||||
Height = 29
|
||||
Height = 34
|
||||
Hint = 'Change the format of date for export'
|
||||
Top = 6
|
||||
Top = 5
|
||||
Width = 232
|
||||
BorderSpacing.Left = 73
|
||||
BorderSpacing.Top = 6
|
||||
ItemHeight = 0
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
@ -222,11 +316,16 @@ object frmQSLExpPref: TfrmQSLExpPref
|
||||
Text = 'yyyy-mm-dd'
|
||||
end
|
||||
object tgSplitRST_S: TToggleBox
|
||||
Left = 102
|
||||
Height = 24
|
||||
AnchorSideLeft.Control = chkRST_S
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = chkRST_S
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 100
|
||||
Height = 32
|
||||
Hint = 'Split RST in three fields.'
|
||||
Top = 203
|
||||
Width = 50
|
||||
Top = 201
|
||||
Width = 60
|
||||
BorderSpacing.Left = 3
|
||||
Caption = 'Split'
|
||||
OnClick = tgSplit_Click
|
||||
ParentShowHint = False
|
||||
@ -234,32 +333,154 @@ object frmQSLExpPref: TfrmQSLExpPref
|
||||
TabOrder = 22
|
||||
end
|
||||
object tgSplitRST_R: TToggleBox
|
||||
Left = 102
|
||||
Height = 24
|
||||
AnchorSideLeft.Control = chkRST_R
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = chkRST_R
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 99
|
||||
Height = 32
|
||||
Hint = 'Split RST in three fields.'
|
||||
Top = 235
|
||||
Width = 50
|
||||
Top = 236
|
||||
Width = 60
|
||||
BorderSpacing.Left = 3
|
||||
Caption = 'Split'
|
||||
OnClick = tgSplit_Click
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 23
|
||||
end
|
||||
object lblDateFormat: TLabel
|
||||
AnchorSideLeft.Control = GroupBox1
|
||||
AnchorSideTop.Control = GroupBox1
|
||||
Left = 14
|
||||
Height = 17
|
||||
Top = 14
|
||||
Width = 79
|
||||
BorderSpacing.Left = 14
|
||||
BorderSpacing.Top = 14
|
||||
Caption = 'Date format'
|
||||
ParentColor = False
|
||||
end
|
||||
object chkDistance: TCheckBox
|
||||
AnchorSideLeft.Control = chkMyLoc
|
||||
AnchorSideTop.Control = chkMyLoc
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 23
|
||||
Top = 172
|
||||
Width = 83
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Distance'
|
||||
TabOrder = 24
|
||||
end
|
||||
object chkPropagation: TCheckBox
|
||||
AnchorSideLeft.Control = chkBand
|
||||
AnchorSideTop.Control = chkBand
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 23
|
||||
Top = 354
|
||||
Width = 104
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Propagation'
|
||||
TabOrder = 25
|
||||
end
|
||||
object chkSatellite: TCheckBox
|
||||
AnchorSideLeft.Control = chkPropagation
|
||||
AnchorSideTop.Control = chkPropagation
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 23
|
||||
Top = 380
|
||||
Width = 80
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Satellite'
|
||||
TabOrder = 26
|
||||
end
|
||||
object chkContestname: TCheckBox
|
||||
AnchorSideLeft.Control = chkSatellite
|
||||
AnchorSideTop.Control = chkSatellite
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 14
|
||||
Height = 23
|
||||
Top = 406
|
||||
Width = 119
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Contest Name'
|
||||
TabOrder = 27
|
||||
end
|
||||
object chkContestNrS: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSLMsg
|
||||
AnchorSideTop.Control = chkQSLMsg
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 23
|
||||
Top = 328
|
||||
Width = 128
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Contest Nr Sent'
|
||||
TabOrder = 28
|
||||
end
|
||||
object chkContestMsgS: TCheckBox
|
||||
AnchorSideLeft.Control = chkContestNrS
|
||||
AnchorSideTop.Control = chkContestNrS
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 23
|
||||
Top = 354
|
||||
Width = 140
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Contest Msg Sent'
|
||||
TabOrder = 29
|
||||
end
|
||||
object chkContestNrR: TCheckBox
|
||||
AnchorSideLeft.Control = chkContestMsgS
|
||||
AnchorSideTop.Control = chkContestMsgS
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 23
|
||||
Top = 380
|
||||
Width = 131
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Contest Nr Rcvd'
|
||||
TabOrder = 30
|
||||
end
|
||||
object chkContestMsgR: TCheckBox
|
||||
AnchorSideLeft.Control = chkContestNrR
|
||||
AnchorSideTop.Control = chkContestNrR
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 166
|
||||
Height = 23
|
||||
Top = 406
|
||||
Width = 139
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'ContestMsg Rcvd'
|
||||
TabOrder = 31
|
||||
end
|
||||
end
|
||||
object btnOK: TButton
|
||||
Left = 432
|
||||
AnchorSideTop.Control = GroupBox1
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 437
|
||||
Height = 25
|
||||
Top = 8
|
||||
Top = 12
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 18
|
||||
Caption = 'OK'
|
||||
OnClick = btnOKClick
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnCancel: TButton
|
||||
Left = 432
|
||||
AnchorSideLeft.Control = btnOK
|
||||
AnchorSideTop.Control = btnOK
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 437
|
||||
Height = 25
|
||||
Top = 40
|
||||
Top = 43
|
||||
Width = 75
|
||||
BorderSpacing.Top = 6
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
|
@ -14,6 +14,14 @@ type
|
||||
TfrmQSLExpPref = class(TForm)
|
||||
btnOK : TButton;
|
||||
btnCancel : TButton;
|
||||
chkContestname: TCheckBox;
|
||||
chkPropagation: TCheckBox;
|
||||
chkContestNrS: TCheckBox;
|
||||
chkContestMsgS: TCheckBox;
|
||||
chkContestNrR: TCheckBox;
|
||||
chkContestMsgR: TCheckBox;
|
||||
chkSatellite: TCheckBox;
|
||||
chkDistance: TCheckBox;
|
||||
chkQSLMsg : TCheckBox;
|
||||
chkBand : TCheckBox;
|
||||
chkAward : TCheckBox;
|
||||
@ -37,6 +45,7 @@ type
|
||||
chkTimeOn : TCheckBox;
|
||||
cbxDateFormat: TComboBox;
|
||||
GroupBox1 : TGroupBox;
|
||||
lblDateFormat: TLabel;
|
||||
tgSplitRST_S: TToggleBox;
|
||||
tgSplitRST_R: TToggleBox;
|
||||
procedure btnOKClick(Sender : TObject);
|
||||
@ -74,29 +83,49 @@ begin
|
||||
chkName.Checked := cqrini.ReadBool('QSLExport', 'Name', False);
|
||||
chkQTH.Checked := cqrini.ReadBool('QSLExport', 'QTH', False);
|
||||
chkBand.Checked := cqrini.ReadBool('QSLExport', 'Band', True);
|
||||
chkPropagation.Checked := cqrini.ReadBool('QSLExport', 'Propagation', False);
|
||||
chkSatellite.Checked := cqrini.ReadBool('QSLExport', 'Satellite', False);
|
||||
chkContestname.Checked := cqrini.ReadBool('QSLExport', 'ContestName', False);
|
||||
chkQSL_S.Checked := cqrini.ReadBool('QSLExport', 'QSL_S', False);
|
||||
chkQSL_R.Checked := cqrini.ReadBool('QSLExport', 'QSL_R', False);
|
||||
chkQSL_VIA.Checked := cqrini.ReadBool('QSLExport', 'QSL_VIA', True);
|
||||
chkLoc.Checked := cqrini.ReadBool('QSLExport', 'Locator', False);
|
||||
chkMyLoc.Checked := cqrini.ReadBool('QSLExport', 'MyLoc', False);
|
||||
chkDistance.Checked := cqrini.ReadBool('QSLExport', 'Distance', False);
|
||||
chkIOTA.Checked := cqrini.ReadBool('QSLExport', 'IOTA', False);
|
||||
chkAward.Checked := cqrini.ReadBool('QSLExport', 'Award', False);
|
||||
chkPower.Checked := cqrini.ReadBool('QSLExport', 'Power', False);
|
||||
chkRemarks.Checked := cqrini.ReadBool('QSLExport', 'Remarks', True);
|
||||
chkQSLMsg.Checked := cqrini.ReadBool('QSLExport', 'QSLMsg', True);
|
||||
chkContestNrS.Checked := cqrini.ReadBool('QSLExport', 'ContestNrS',False );
|
||||
chkContestMsgS.Checked := cqrini.ReadBool('QSLExport', 'ContestMsgS',False );
|
||||
chkContestNrR.Checked := cqrini.ReadBool('QSLExport', 'ContestNrR', False);
|
||||
chkContestMsgR.Checked := cqrini.ReadBool('QSLExport', 'ContestMsgR', False);
|
||||
tgSplit_Click(Sender);
|
||||
end;
|
||||
|
||||
procedure TfrmQSLExpPref.tgSplit_Click(Sender: TObject);
|
||||
begin
|
||||
if tgSplitRST_S.Checked = True then
|
||||
tgSplitRST_S.Color := clLime
|
||||
begin
|
||||
tgSplitRST_S.Font.Color := clGreen;
|
||||
tgSplitRST_S.Font.Style :=[fsBold];
|
||||
end
|
||||
else
|
||||
tgSplitRST_S.Color := clDefault;
|
||||
begin
|
||||
tgSplitRST_S.Font.Color := clDefault;
|
||||
tgSplitRST_S.Font.Style :=[];
|
||||
end;
|
||||
if tgSplitRST_R.Checked = True then
|
||||
tgSplitRST_R.Color := clLime
|
||||
begin
|
||||
tgSplitRST_R.Font.Color := clGreen;
|
||||
tgSplitRST_R.Font.Style :=[fsBold];
|
||||
end
|
||||
else
|
||||
tgSplitRST_R.Color := clDefault;
|
||||
begin
|
||||
tgSplitRST_R.Font.Color := clDefault;
|
||||
tgSplitRST_R.Font.Style :=[];
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmQSLExpPref.btnOKClick(Sender : TObject);
|
||||
@ -115,16 +144,25 @@ begin
|
||||
cqrini.WriteBool('QSLExport', 'Name', chkName.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'QTH', chkQTH.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Band', chkBand.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Propagation', chkPropagation.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Satellite', chkSatellite.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'ContestName', chkContestname.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'QSL_S', chkQSL_S.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'QSL_R', chkQSL_R.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'QSL_VIA', chkQSL_VIA.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Locator', chkLoc.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'MyLoc', chkMyLoc.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Distance', chkDistance.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'IOTA', chkIOTA.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Award', chkAward.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Power', chkPower.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'Remarks', chkRemarks.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'QSLMsg', chkQSLMsg.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'ContestNrS', chkContestNrS.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'ContestMsgS', chkContestMsgS.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'ContestNrR', chkContestNrR.Checked);
|
||||
cqrini.WriteBool('QSLExport', 'ContestMsgR', chkContestMsgR.Checked);
|
||||
cqrini.SaveToDisk;
|
||||
ModalResult := mrOK
|
||||
end;
|
||||
|
||||
|
@ -285,8 +285,11 @@ begin
|
||||
HTTP.MimeType := 'multipart/form-data; boundary=' + Bound;
|
||||
//eQSL server can handle only 1000QSO per minute
|
||||
HTTP.Timeout := 100000*((QSOCount div 1000)+1);
|
||||
Writeln('Timeout:',HTTP.Timeout div 1000, 's');
|
||||
Writeln('QSO count:',QSOCount);
|
||||
if dmData.DebugLevel>=1 then
|
||||
begin
|
||||
Writeln('Timeout:',HTTP.Timeout div 1000, 's');
|
||||
Writeln('QSO count:',QSOCount);
|
||||
end;
|
||||
Result := HTTP.HTTPMethod('POST', URL);
|
||||
if Result then
|
||||
ResultData.LoadFromStream(HTTP.Document)
|
||||
|
2183
src/frExportPref.lfm
@ -12,7 +12,11 @@ type
|
||||
{ TfraExportPref }
|
||||
|
||||
TfraExportPref = class(TFrame)
|
||||
chkexContest: TCheckBox;
|
||||
chkAutoColumn: TCheckBox;
|
||||
chkexContestName: TCheckBox;
|
||||
chkexContestMsg: TCheckBox;
|
||||
chkexContestNr: TCheckBox;
|
||||
chkexDistance: TCheckBox;
|
||||
chkExRXFreq : TCheckBox;
|
||||
chkExSat : TCheckBox;
|
||||
chkExPropagation : TCheckBox;
|
||||
@ -54,6 +58,36 @@ type
|
||||
chkexWAZ : TCheckBox;
|
||||
chkProfile : TCheckBox;
|
||||
chkAscTime : TCheckBox;
|
||||
edtWAward1: TEdit;
|
||||
edtWCall1: TEdit;
|
||||
edtWContestMsg1: TEdit;
|
||||
edtWContestName1: TEdit;
|
||||
edtWContestNr1: TEdit;
|
||||
edtWCounty1: TEdit;
|
||||
edtWDistance1: TEdit;
|
||||
edtWDXCC1: TEdit;
|
||||
edtWeQSLR1: TEdit;
|
||||
edtWeQSLRDate1: TEdit;
|
||||
edtWeQSLS1: TEdit;
|
||||
edtWeQSLSDate1: TEdit;
|
||||
edtWIOTA1: TEdit;
|
||||
edtWITU1: TEdit;
|
||||
edtWLoc1: TEdit;
|
||||
edtWLQSLR1: TEdit;
|
||||
edtWLQSLRDate1: TEdit;
|
||||
edtWLQSLS1: TEdit;
|
||||
edtWLQSLSDate1: TEdit;
|
||||
edtWMyLoc1: TEdit;
|
||||
edtWNote1: TEdit;
|
||||
edtWPower1: TEdit;
|
||||
edtWProfile: TEdit;
|
||||
edtWContinent1: TEdit;
|
||||
edtWProfile1: TEdit;
|
||||
edtWDate1: TEdit;
|
||||
edtWDistance: TEdit;
|
||||
edtWFreq1: TEdit;
|
||||
edtWMode1: TEdit;
|
||||
edtWName1: TEdit;
|
||||
edtWProp : TEdit;
|
||||
edtWAward : TEdit;
|
||||
edtWCall : TEdit;
|
||||
@ -77,7 +111,22 @@ type
|
||||
edtWName : TEdit;
|
||||
edtWNote : TEdit;
|
||||
edtWPower : TEdit;
|
||||
edtWContestName: TEdit;
|
||||
edtWContestNr: TEdit;
|
||||
edtWContestMsg: TEdit;
|
||||
edtWProp1: TEdit;
|
||||
edtWQSLR1: TEdit;
|
||||
edtWQSLRDate1: TEdit;
|
||||
edtWQSLS1: TEdit;
|
||||
edtWQSLSDate1: TEdit;
|
||||
edtWQSLVIA1: TEdit;
|
||||
edtWQTH1: TEdit;
|
||||
edtWRemarks1: TEdit;
|
||||
edtWRstR1: TEdit;
|
||||
edtWRstS1: TEdit;
|
||||
edtWRxFreq : TEdit;
|
||||
edtWContinent: TEdit;
|
||||
edtWRxFreq1: TEdit;
|
||||
edtWSatName : TEdit;
|
||||
edtWQSLR : TEdit;
|
||||
edtWQSLRDate : TEdit;
|
||||
@ -88,22 +137,38 @@ type
|
||||
edtWRemarks : TEdit;
|
||||
edtWRstR : TEdit;
|
||||
edtWRstS : TEdit;
|
||||
edtWSatName1: TEdit;
|
||||
edtWState : TEdit;
|
||||
edtWState1: TEdit;
|
||||
edtWTimeOff : TEdit;
|
||||
edtWTimeOff1: TEdit;
|
||||
edtWTimeOn : TEdit;
|
||||
edtWTimeOn1: TEdit;
|
||||
edtWWAZ : TEdit;
|
||||
Label46 : TLabel;
|
||||
Label47 : TLabel;
|
||||
Label48 : TLabel;
|
||||
Label49 : TLabel;
|
||||
Label50 : TLabel;
|
||||
Label51 : TLabel;
|
||||
edtWWAZ1: TEdit;
|
||||
lblField1 : TLabel;
|
||||
lblField2 : TLabel;
|
||||
lblField3 : TLabel;
|
||||
lblWidth1 : TLabel;
|
||||
lblWidth2 : TLabel;
|
||||
lblWidth3 : TLabel;
|
||||
lblHTML1: TLabel;
|
||||
lblHTML2: TLabel;
|
||||
lblHTML3: TLabel;
|
||||
private
|
||||
{ private declarations }
|
||||
public
|
||||
procedure SaveExportPref;
|
||||
procedure LoadExportPref;
|
||||
end;
|
||||
{
|
||||
NOTE !!!
|
||||
If you update any component property of this frame (.lfm), but do not add or remove any component,
|
||||
changes do not update to inheriting form(s).
|
||||
Only 100% sure way to update all to inheriting form is to delete frame from form and then add it
|
||||
again with lazarus GUI toolbar "form" button. When this is done all form actions linked to frame components
|
||||
are lost and they must be relinked again manually.
|
||||
}
|
||||
|
||||
implementation
|
||||
{$R *.lfm}
|
||||
@ -127,6 +192,7 @@ begin
|
||||
cqrini.WriteBool('Export', 'QSL_VIA', chkexQSLVIA.Checked);
|
||||
cqrini.WriteBool('Export', 'Locator', chkexLoc.Checked);
|
||||
cqrini.WriteBool('Export', 'MyLoc', chkexMyLoc.Checked);
|
||||
cqrini.WriteBool('Export', 'Distance', chkexDistance.Checked);
|
||||
cqrini.WriteBool('Export', 'IOTA', chkexIOTA.Checked);
|
||||
cqrini.WriteBool('Export', 'Award', chkexAward.Checked);
|
||||
cqrini.WriteBool('Export', 'County', chkexCounty.Checked);
|
||||
@ -142,7 +208,7 @@ begin
|
||||
cqrini.WriteBool('Export', 'LQSLSDate', chkexLQSLSDate.Checked);
|
||||
cqrini.WriteBool('Export', 'LQSLR', chkexLQSLR.Checked);
|
||||
cqrini.WriteBool('Export', 'LQSLRDate', chkexLQSLRDate.Checked);
|
||||
cqrini.WriteBool('Export', 'Cont', chkExCont.Checked);
|
||||
cqrini.WriteBool('Export', 'Continent', chkExCont.Checked);
|
||||
cqrini.WriteBool('Export', 'QSLSDate', chkexQSLSDate.Checked);
|
||||
cqrini.WriteBool('Export', 'QSLRDate', chkexQSLRDate.Checked);
|
||||
cqrini.WriteBool('Export', 'eQSLS', chkexeQSLS.Checked);
|
||||
@ -153,8 +219,12 @@ begin
|
||||
cqrini.WriteBool('Export', 'Prop', chkExPropagation.Checked);
|
||||
cqrini.WriteBool('Export', 'RxFreq', chkExRXFreq.Checked);
|
||||
cqrini.WriteBool('Export', 'SatName', chkExSat.Checked);
|
||||
cqrini.WriteBool('Export', 'Contest', chkexContest.Checked);
|
||||
cqrini.WriteBool('Export', 'Contestname', chkexContestName.Checked);
|
||||
cqrini.WriteBool('Export', 'ContestNr', chkexContestNr.Checked);
|
||||
cqrini.WriteBool('Export', 'ContestMsg', chkexContestMsg.Checked);
|
||||
cqrini.WriteBool('Export', 'HTMLAutoColumn', chkAutoColumn.Checked);
|
||||
|
||||
//group "none"
|
||||
cqrini.WriteString('Export', 'WDate', edtWDate.Text);
|
||||
cqrini.WriteString('Export', 'Wtime_on', edtWTimeOn.Text);
|
||||
cqrini.WriteString('Export', 'Wtime_off', edtWTimeOff.Text);
|
||||
@ -170,6 +240,7 @@ begin
|
||||
cqrini.WriteString('Export', 'WQSL_VIA', edtWQSLVIA.Text);
|
||||
cqrini.WriteString('Export', 'WLocator', edtWLoc.Text);
|
||||
cqrini.WriteString('Export', 'WMyLoc', edtWMyLoc.Text);
|
||||
cqrini.WriteString('Export', 'WDistance', edtWDistance.Text);
|
||||
cqrini.WriteString('Export', 'WIOTA', edtWIOTA.Text);
|
||||
cqrini.WriteString('Export', 'WAward', edtWAward.Text);
|
||||
cqrini.WriteString('Export', 'WCounty', edtWCounty.Text);
|
||||
@ -193,6 +264,101 @@ begin
|
||||
cqrini.WriteString('Export', 'WProp', edtWProp.Text);
|
||||
cqrini.WriteString('Export', 'WRxFreq', edtWRxFreq.Text);
|
||||
cqrini.WriteString('Export', 'WSatName', edtWSatName.Text);
|
||||
cqrini.WriteString('Export', 'WContinent', edtWContinent.Text);
|
||||
cqrini.WriteString('Export', 'WProfile', edtWProfile.Text);
|
||||
cqrini.WriteString('Export', 'WContestName', edtWContestName.Text);
|
||||
cqrini.WriteString('Export', 'WContestNr', edtWContestNr.Text);
|
||||
cqrini.WriteString('Export', 'WContestMsg', edtWContestMsg.Text);
|
||||
cqrini.WriteString('Export', 'WDate', edtWDate.Text);
|
||||
cqrini.WriteString('Export', 'Wtime_on', edtWTimeOn.Text);
|
||||
cqrini.WriteString('Export', 'Wtime_off', edtWTimeOff.Text);
|
||||
cqrini.WriteString('Export', 'WCallSign', edtWCall.Text);
|
||||
cqrini.WriteString('Export', 'WMode', edtWMode.Text);
|
||||
cqrini.WriteString('Export', 'WFreq', edtWFreq.Text);
|
||||
cqrini.WriteString('Export', 'WRST_S', edtWRstS.Text);
|
||||
cqrini.WriteString('Export', 'WRST_R', edtWRstR.Text);
|
||||
cqrini.WriteString('Export', 'WName', edtWName.Text);
|
||||
cqrini.WriteString('Export', 'WQTH', edtWQTH.Text);
|
||||
cqrini.WriteString('Export', 'WQSL_S', edtWQSLS.Text);
|
||||
cqrini.WriteString('Export', 'WQSL_R', edtWQSLR.Text);
|
||||
cqrini.WriteString('Export', 'WQSL_VIA', edtWQSLVIA.Text);
|
||||
cqrini.WriteString('Export', 'WLocator', edtWLoc.Text);
|
||||
cqrini.WriteString('Export', 'WMyLoc', edtWMyLoc.Text);
|
||||
cqrini.WriteString('Export', 'WDistance', edtWDistance.Text);
|
||||
cqrini.WriteString('Export', 'WIOTA', edtWIOTA.Text);
|
||||
cqrini.WriteString('Export', 'WAward', edtWAward.Text);
|
||||
cqrini.WriteString('Export', 'WCounty', edtWCounty.Text);
|
||||
cqrini.WriteString('Export', 'WPower', edtWPower.Text);
|
||||
cqrini.WriteString('Export', 'WDXCC', edtWDXCC.Text);
|
||||
cqrini.WriteString('Export', 'WRemarks', edtWRemarks.Text);
|
||||
cqrini.WriteString('Export', 'WWAZ', edtWWAZ.Text);
|
||||
cqrini.WriteString('Export', 'WITU', edtWITU.Text);
|
||||
cqrini.WriteString('Export', 'WNote', edtWNote.Text);
|
||||
cqrini.WriteString('Export', 'WState', edtWState.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLS', edtWLQSLS.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLSDate', edtWLQSLSDate.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLR', edtWLQSLR.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLRDate', edtWLQSLRDate.Text);
|
||||
cqrini.WriteString('Export', 'WQSLSDate', edtWQSLSDate.Text);
|
||||
cqrini.WriteString('Export', 'WQSLRDate', edtWQSLRDate.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLS', edtWeQSLS.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLSDate', edtWeQSLSDate.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLR', edtWeQSLR.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLRDate', edtWeQSLRDate.Text);
|
||||
cqrini.WriteString('Export', 'WProp', edtWProp.Text);
|
||||
cqrini.WriteString('Export', 'WRxFreq', edtWRxFreq.Text);
|
||||
cqrini.WriteString('Export', 'WSatName', edtWSatName.Text);
|
||||
cqrini.WriteString('Export', 'WContinent', edtWContinent.Text);
|
||||
cqrini.WriteString('Export', 'WProfile', edtWProfile.Text);
|
||||
cqrini.WriteString('Export', 'WContestName', edtWContestName.Text);
|
||||
cqrini.WriteString('Export', 'WContestNr', edtWContestNr.Text);
|
||||
cqrini.WriteString('Export', 'WContestMsg', edtWContestMsg.Text);
|
||||
|
||||
//group "one"
|
||||
cqrini.WriteString('Export', 'WDate1', edtWDate1.Text);
|
||||
cqrini.WriteString('Export', 'Wtime_on1', edtWTimeOn1.Text);
|
||||
cqrini.WriteString('Export', 'Wtime_off1', edtWTimeOff1.Text);
|
||||
cqrini.WriteString('Export', 'WCallSign1', edtWCall1.Text);
|
||||
cqrini.WriteString('Export', 'WMode1', edtWMode1.Text);
|
||||
cqrini.WriteString('Export', 'WFreq1', edtWFreq1.Text);
|
||||
cqrini.WriteString('Export', 'WRST_S1', edtWRstS1.Text);
|
||||
cqrini.WriteString('Export', 'WRST_R1', edtWRstR1.Text);
|
||||
cqrini.WriteString('Export', 'WName1', edtWName1.Text);
|
||||
cqrini.WriteString('Export', 'WQTH1', edtWQTH1.Text);
|
||||
cqrini.WriteString('Export', 'WQSL_S1', edtWQSLS1.Text);
|
||||
cqrini.WriteString('Export', 'WQSL_R1', edtWQSLR1.Text);
|
||||
cqrini.WriteString('Export', 'WQSL_VIA1', edtWQSLVIA1.Text);
|
||||
cqrini.WriteString('Export', 'WLocator1', edtWLoc1.Text);
|
||||
cqrini.WriteString('Export', 'WMyLoc1', edtWMyLoc1.Text);
|
||||
cqrini.WriteString('Export', 'WDistance1', edtWDistance1.Text);
|
||||
cqrini.WriteString('Export', 'WIOTA1', edtWIOTA1.Text);
|
||||
cqrini.WriteString('Export', 'WAward1', edtWAward1.Text);
|
||||
cqrini.WriteString('Export', 'WCounty1', edtWCounty1.Text);
|
||||
cqrini.WriteString('Export', 'WPower1', edtWPower1.Text);
|
||||
cqrini.WriteString('Export', 'WDXCC1', edtWDXCC1.Text);
|
||||
cqrini.WriteString('Export', 'WRemarks1', edtWRemarks1.Text);
|
||||
cqrini.WriteString('Export', 'WWAZ1', edtWWAZ1.Text);
|
||||
cqrini.WriteString('Export', 'WITU1', edtWITU1.Text);
|
||||
cqrini.WriteString('Export', 'WNote1', edtWNote1.Text);
|
||||
cqrini.WriteString('Export', 'WState1', edtWState1.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLS1', edtWLQSLS1.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLSDate1', edtWLQSLSDate1.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLR1', edtWLQSLR1.Text);
|
||||
cqrini.WriteString('Export', 'WLQSLRDate1', edtWLQSLRDate1.Text);
|
||||
cqrini.WriteString('Export', 'WQSLSDate1', edtWQSLSDate1.Text);
|
||||
cqrini.WriteString('Export', 'WQSLRDate1', edtWQSLRDate1.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLS1', edtWeQSLS1.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLSDate1', edtWeQSLSDate1.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLR1', edtWeQSLR1.Text);
|
||||
cqrini.WriteString('Export', 'WeQSLRDate1', edtWeQSLRDate1.Text);
|
||||
cqrini.WriteString('Export', 'WProp1', edtWProp1.Text);
|
||||
cqrini.WriteString('Export', 'WRxFreq1', edtWRxFreq1.Text);
|
||||
cqrini.WriteString('Export', 'WSatName1', edtWSatName1.Text);
|
||||
cqrini.WriteString('Export', 'WContinent1', edtWContinent1.Text);
|
||||
cqrini.WriteString('Export', 'WProfile1', edtWProfile1.Text);
|
||||
cqrini.WriteString('Export', 'WContestName1', edtWContestName1.Text);
|
||||
cqrini.WriteString('Export', 'WContestNr1', edtWContestNr1.Text);
|
||||
cqrini.WriteString('Export', 'WContestMsg1', edtWContestMsg1.Text);
|
||||
end;
|
||||
|
||||
procedure TfraExportPref.LoadExportPref;
|
||||
@ -212,6 +378,7 @@ begin
|
||||
chkexQSLVIA.Checked := cqrini.ReadBool('Export', 'QSL_VIA', True);
|
||||
chkexLoc.Checked := cqrini.ReadBool('Export', 'Locator', False);
|
||||
chkexMyLoc.Checked := cqrini.ReadBool('Export', 'MyLoc', False);
|
||||
chkexDistance.Checked := cqrini.ReadBool('Export', 'Distance', False);
|
||||
chkexIOTA.Checked := cqrini.ReadBool('Export', 'IOTA', False);
|
||||
chkexAward.Checked := cqrini.ReadBool('Export', 'Award', False);
|
||||
chkexCounty.Checked := cqrini.ReadBool('Export', 'County', False);
|
||||
@ -227,7 +394,7 @@ begin
|
||||
chkexLQSLSDate.Checked := cqrini.ReadBool('Export', 'LQSLSDate', False);
|
||||
chkexLQSLR.Checked := cqrini.ReadBool('Export', 'LQSLR', False);
|
||||
chkexLQSLRDate.Checked := cqrini.ReadBool('Export', 'LQSLRDate', False);
|
||||
chkExCont.Checked := cqrini.ReadBool('Export', 'Cont', False);
|
||||
chkExCont.Checked := cqrini.ReadBool('Export', 'Continent', False);
|
||||
chkexQSLSDate.Checked := cqrini.ReadBool('Export', 'QSLSDate', False);
|
||||
chkexQSLRDate.Checked := cqrini.ReadBool('Export', 'QSLRDate', False);
|
||||
chkexeQSLS.Checked := cqrini.ReadBool('Export', 'eQSLS', False);
|
||||
@ -238,47 +405,104 @@ begin
|
||||
chkExPropagation.Checked := cqrini.ReadBool('Export', 'Prop', False);
|
||||
chkExRXFreq.Checked := cqrini.ReadBool('Export', 'RxFreq', False);
|
||||
chkExSat.Checked := cqrini.ReadBool('Export', 'SatName', False);
|
||||
chkexContest.Checked := cqrini.ReadBool('Export', 'Contest', False);
|
||||
chkexContestName.Checked := cqrini.ReadBool('Export', 'Contestname', False);
|
||||
chkexContestNr.Checked := cqrini.ReadBool('Export', 'ContestNr',False);
|
||||
chkexContestMsg.Checked := cqrini.ReadBool('Export', 'ContestMsg', False);
|
||||
chkAutoColumn.Checked := cqrini.ReadBool('Export', 'HTMLAutoColumn', False);
|
||||
|
||||
|
||||
edtWDate.Text := cqrini.ReadString('Export', 'WDate', '50');
|
||||
edtWTimeOn.Text := cqrini.ReadString('Export', 'Wtime_on', '50');
|
||||
edtWTimeOff.Text := cqrini.ReadString('Export', 'Wtime_off', '50');
|
||||
edtWCall.Text := cqrini.ReadString('Export', 'WCallSign', '50');
|
||||
edtWMode.Text := cqrini.ReadString('Export', 'WMode', '50');
|
||||
edtWFreq.Text := cqrini.ReadString('Export', 'WFreq', '50');
|
||||
edtWRstS.Text := cqrini.ReadString('Export', 'WRST_S', '50');
|
||||
edtWRstR.Text := cqrini.ReadString('Export', 'WRST_R', '30');
|
||||
edtWName.Text := cqrini.ReadString('Export', 'WName', '50');
|
||||
edtWQTH.Text := cqrini.ReadString('Export', 'WQTH', '80');
|
||||
edtWQSLS.Text := cqrini.ReadString('Export', 'WQSL_S', '10');
|
||||
edtWQSLR.Text := cqrini.ReadString('Export', 'WQSL_R', '10');
|
||||
edtWQSLVIA.Text := cqrini.ReadString('Export', 'WQSL_VIA', '20');
|
||||
edtWLoc.Text := cqrini.ReadString('Export', 'WLocator', '30');
|
||||
edtWMyLoc.Text := cqrini.ReadString('Export', 'WMyLoc', '30');
|
||||
edtWIOTA.Text := cqrini.ReadString('Export', 'WIOTA', '40');
|
||||
edtWAward.Text := cqrini.ReadString('Export', 'WAward', '40');
|
||||
edtWCounty.Text := cqrini.ReadString('Export', 'WCounty', '40');
|
||||
edtWPower.Text := cqrini.ReadString('Export', 'WPower', '40');
|
||||
edtWDXCC.Text := cqrini.ReadString('Export', 'WDXCC', '40');
|
||||
//group "none"
|
||||
edtWDate.Text := cqrini.ReadString('Export', 'WDate', '10');
|
||||
edtWTimeOn.Text := cqrini.ReadString('Export', 'Wtime_on', '5');
|
||||
edtWTimeOff.Text := cqrini.ReadString('Export', 'Wtime_off', '5');
|
||||
edtWCall.Text := cqrini.ReadString('Export', 'WCallSign', '10');
|
||||
edtWMode.Text := cqrini.ReadString('Export', 'WMode', '6');
|
||||
edtWFreq.Text := cqrini.ReadString('Export', 'WFreq', '10');
|
||||
edtWRstS.Text := cqrini.ReadString('Export', 'WRST_S', '4');
|
||||
edtWRstR.Text := cqrini.ReadString('Export', 'WRST_R', '4');
|
||||
edtWName.Text := cqrini.ReadString('Export', 'WName', '20');
|
||||
edtWQTH.Text := cqrini.ReadString('Export', 'WQTH', '20');
|
||||
edtWQSLS.Text := cqrini.ReadString('Export', 'WQSL_S', '2');
|
||||
edtWQSLR.Text := cqrini.ReadString('Export', 'WQSL_R', '2');
|
||||
edtWQSLVIA.Text := cqrini.ReadString('Export', 'WQSL_VIA', '10');
|
||||
edtWLoc.Text := cqrini.ReadString('Export', 'WLocator', '6');
|
||||
edtWMyLoc.Text := cqrini.ReadString('Export', 'WMyLoc', '6');
|
||||
edtWDistance.Text := cqrini.ReadString('Export', 'WDistance', '5');
|
||||
edtWIOTA.Text := cqrini.ReadString('Export', 'WIOTA', '7');
|
||||
edtWAward.Text := cqrini.ReadString('Export', 'WAward', '10');
|
||||
edtWCounty.Text := cqrini.ReadString('Export', 'WCounty', '10');
|
||||
edtWPower.Text := cqrini.ReadString('Export', 'WPower', '4');
|
||||
edtWDXCC.Text := cqrini.ReadString('Export', 'WDXCC', '4');
|
||||
edtWRemarks.Text := cqrini.ReadString('Export', 'WRemarks', '100');
|
||||
edtWWAZ.Text := cqrini.ReadString('Export', 'WWAZ', '20');
|
||||
edtWITU.Text := cqrini.ReadString('Export', 'WITU', '20');
|
||||
edtWNote.Text := cqrini.ReadString('Export', 'WNote', '40');
|
||||
edtWState.Text := cqrini.ReadString('Export', 'WState', '40');
|
||||
edtWLQSLS.Text := cqrini.ReadString('Export', 'WLQSLS', '50');
|
||||
edtWLQSLSDate.Text := cqrini.ReadString('Export', 'WLQSLSDate', '50');
|
||||
edtWLQSLR.Text := cqrini.ReadString('Export', 'WLQSLR', '50');
|
||||
edtWLQSLRDate.Text := cqrini.ReadString('Export', 'WLQSLRDate', '50');
|
||||
edtWQSLSDate.Text := cqrini.ReadString('Export', 'WQSLSDate', '50');
|
||||
edtWQSLRDate.Text := cqrini.ReadString('Export', 'WQSLRDate', '50');
|
||||
edtWeQSLS.Text := cqrini.ReadString('Export', 'WeQSLS', '50');
|
||||
edtWeQSLSDate.Text := cqrini.ReadString('Export', 'WeQSLSDate', '50');
|
||||
edtWeQSLR.Text := cqrini.ReadString('Export', 'WeQSLR', '50');
|
||||
edtWeQSLRDate.Text := cqrini.ReadString('Export', 'WeQSLRDate', '50');
|
||||
edtWProp.Text := cqrini.ReadString('Export', 'WProp', '50');
|
||||
edtWRxFreq.Text := cqrini.ReadString('Export', 'WRxFreq', '50');
|
||||
edtWSatName.Text := cqrini.ReadString('Export', 'WSatName', '50')
|
||||
edtWWAZ.Text := cqrini.ReadString('Export', 'WWAZ', '3');
|
||||
edtWITU.Text := cqrini.ReadString('Export', 'WITU', '3');
|
||||
edtWNote.Text := cqrini.ReadString('Export', 'WNote', '50');
|
||||
edtWState.Text := cqrini.ReadString('Export', 'WState', '10');
|
||||
edtWLQSLS.Text := cqrini.ReadString('Export', 'WLQSLS', '2');
|
||||
edtWLQSLSDate.Text := cqrini.ReadString('Export', 'WLQSLSDate', '10');
|
||||
edtWLQSLR.Text := cqrini.ReadString('Export', 'WLQSLR', '2');
|
||||
edtWLQSLRDate.Text := cqrini.ReadString('Export', 'WLQSLRDate', '10');
|
||||
edtWQSLSDate.Text := cqrini.ReadString('Export', 'WQSLSDate', '10');
|
||||
edtWQSLRDate.Text := cqrini.ReadString('Export', 'WQSLRDate', '10');
|
||||
edtWeQSLS.Text := cqrini.ReadString('Export', 'WeQSLS', '2');
|
||||
edtWeQSLSDate.Text := cqrini.ReadString('Export', 'WeQSLSDate', '10');
|
||||
edtWeQSLR.Text := cqrini.ReadString('Export', 'WeQSLR', '2');
|
||||
edtWeQSLRDate.Text := cqrini.ReadString('Export', 'WeQSLRDate', '10');
|
||||
edtWProp.Text := cqrini.ReadString('Export', 'WProp', '6');
|
||||
edtWRxFreq.Text := cqrini.ReadString('Export', 'WRxFreq', '10');
|
||||
edtWSatName.Text := cqrini.ReadString('Export', 'WSatName', '10');
|
||||
edtWContinent.Text := cqrini.ReadString('Export', 'WContinent', '2');
|
||||
edtWProfile.Text := cqrini.ReadString('Export', 'WProfile', '20');
|
||||
edtWContestName.Text := cqrini.ReadString('Export', 'WContestName', '20');
|
||||
edtWContestNr.Text := cqrini.ReadString('Export', 'WContestNr', '4');
|
||||
edtWContestMsg.Text := cqrini.ReadString('Export', 'WContestMsg', '10');
|
||||
|
||||
//group "one"
|
||||
edtWDate1.Text := cqrini.ReadString('Export', 'WDate1', 'Date');
|
||||
edtWTimeOn1.Text := cqrini.ReadString('Export', 'Wtime_on1', 'Time on');
|
||||
edtWTimeOff1.Text := cqrini.ReadString('Export', 'Wtime_off1', 'Time off');
|
||||
edtWCall1.Text := cqrini.ReadString('Export', 'WCallSign1', 'Call');
|
||||
edtWMode1.Text := cqrini.ReadString('Export', 'WMode1', 'Mode');
|
||||
edtWFreq1.Text := cqrini.ReadString('Export', 'WFreq1', 'Freq');
|
||||
edtWRstS1.Text := cqrini.ReadString('Export', 'WRST_S1', 'RSTs');
|
||||
edtWRstR1.Text := cqrini.ReadString('Export', 'WRST_R1', 'RSTr');
|
||||
edtWName1.Text := cqrini.ReadString('Export', 'WName1', 'Name');
|
||||
edtWQTH1.Text := cqrini.ReadString('Export', 'WQTH1', 'QTH');
|
||||
edtWQSLS1.Text := cqrini.ReadString('Export', 'WQSL_S1', 'QSLs');
|
||||
edtWQSLR1.Text := cqrini.ReadString('Export', 'WQSL_R1', 'QSLr');
|
||||
edtWQSLVIA1.Text := cqrini.ReadString('Export', 'WQSL_VIA1', 'QSL via');
|
||||
edtWLoc1.Text := cqrini.ReadString('Export', 'WLocator1', 'Loc');
|
||||
edtWMyLoc1.Text := cqrini.ReadString('Export', 'WMyLoc1', 'MyLoc');
|
||||
edtWDistance1.Text := cqrini.ReadString('Export', 'WDistance1', 'QRB');
|
||||
edtWIOTA1.Text := cqrini.ReadString('Export', 'WIOTA1', 'IOTA');
|
||||
edtWAward1.Text := cqrini.ReadString('Export', 'WAward1', 'Award');
|
||||
edtWCounty1.Text := cqrini.ReadString('Export', 'WCounty1', 'County');
|
||||
edtWPower1.Text := cqrini.ReadString('Export', 'WPower1', 'Pwr');
|
||||
edtWDXCC1.Text := cqrini.ReadString('Export', 'WDXCC1', 'DXCC');
|
||||
edtWRemarks1.Text := cqrini.ReadString('Export', 'WRemarks1', 'Cmnt');
|
||||
edtWWAZ1.Text := cqrini.ReadString('Export', 'WWAZ1', 'WAZ');
|
||||
edtWITU1.Text := cqrini.ReadString('Export', 'WITU1', 'ITU');
|
||||
edtWNote1.Text := cqrini.ReadString('Export', 'WNote1', 'Note');
|
||||
edtWState1.Text := cqrini.ReadString('Export', 'WState1', 'State');
|
||||
edtWLQSLS1.Text := cqrini.ReadString('Export', 'WLQSLS1', 'LQSLs');
|
||||
edtWLQSLSDate1.Text := cqrini.ReadString('Export', 'WLQSLSDate1', 'LQSLSdat');
|
||||
edtWLQSLR1.Text := cqrini.ReadString('Export', 'WLQSLR1', 'LQSLr');
|
||||
edtWLQSLRDate1.Text := cqrini.ReadString('Export', 'WLQSLRDate1', 'LQSLRdat');
|
||||
edtWQSLSDate1.Text := cqrini.ReadString('Export', 'WQSLSDate1', 'QSLSdat');
|
||||
edtWQSLRDate1.Text := cqrini.ReadString('Export', 'WQSLRDate1', 'QSLRdat');
|
||||
edtWeQSLS1.Text := cqrini.ReadString('Export', 'WeQSLS1', 'eQSLs');
|
||||
edtWeQSLSDate1.Text := cqrini.ReadString('Export', 'WeQSLSDate1', 'eQSLSdat');
|
||||
edtWeQSLR1.Text := cqrini.ReadString('Export', 'WeQSLR1', 'eQSLr');
|
||||
edtWeQSLRDate1.Text := cqrini.ReadString('Export', 'WeQSLRDate1', 'eQSLRdat');
|
||||
edtWProp1.Text := cqrini.ReadString('Export', 'WProp1', 'Propag');
|
||||
edtWRxFreq1.Text := cqrini.ReadString('Export', 'WRxFreq1', 'RX Freq');
|
||||
edtWSatName1.Text := cqrini.ReadString('Export', 'WSatName1', 'Satellite');
|
||||
edtWContinent1.Text := cqrini.ReadString('Export', 'WContinent1', 'Contin');
|
||||
edtWProfile1.Text := cqrini.ReadString('Export', 'WProfile1', 'Profile');
|
||||
edtWContestName1.Text := cqrini.ReadString('Export', 'WContestName1', 'Contest');
|
||||
edtWContestNr1.Text := cqrini.ReadString('Export', 'WContestNr1', 'Cont Nr');
|
||||
edtWContestMsg1.Text := cqrini.ReadString('Export', 'WContestMsg1', 'Cont Msg');
|
||||
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -49,7 +49,9 @@ begin
|
||||
InitCriticalSection(crit);
|
||||
fIniFileName := IniFile;
|
||||
ini := TMemIniFile.Create(IniFile);
|
||||
lini := TMemIniFile.Create(LocalIniFile)
|
||||
lini := TMemIniFile.Create(LocalIniFile);
|
||||
ini.CacheUpdates :=false; //should be as default, but is it?
|
||||
lini.CacheUpdates :=false;
|
||||
end;
|
||||
|
||||
function TMyIni.ReadString(const Section, Ident, Default: string): string;
|
||||
|
@ -9,7 +9,7 @@ const
|
||||
cMINOR = 3;
|
||||
cRELEAS = 0;
|
||||
cBUILD = 3;
|
||||
cBUILD_DATE = '2019-08-21';
|
||||
cBUILD_DATE = '2019-09-30';
|
||||
|
||||
implementation
|
||||
|
||||
|