This is a big update.
Thanks for Andreas, Dl7OAP, for his great help. Without his help, this would not have been done. Here are the main parts: -Fix: Table freqmem update should now work with both MySql and MariDb and take account that beta testers may already have column "info" in their freqmem db. -Add: Wsjtx monitor now handles new FT4 mode properly -Add: N1MM remote now makes Qrz/HamQth search during logging. With slow internet connections it minght fail, but at least it adds zone/DXCC information that comes from cqrlog itself. -Add: Qso list/filter remembers last used settings if checked to "remember". No need to set all again from beginning if there was small error in filter design at first try. Pressing OK saves settings. Clear filter-button clears filter and pressing OK after that shows again all qsos. -Add: New columns for contest exchange and freqmem info upgrades database to version 16 All corresponding views (contest, qso list,NewQso,ADIF ex/Import,TRXControl,log filter) updated to use new columns. --Some new CW macros. -Add: Contest form has simple dupe check. Call turning red after leaving call edit box if worked at same band and mode. Needs new log for each contest, or if same log used for all, setting date and cehckbox of "preferences/fldigi/wsjtx interface"-"WB4 chk starts from"-"call"-"contest start date" -Add: Qso list has now all contest columns (set by preferences/visble columns) -Add: ADIF export and import can handle contest tags.(Select in "Choose fields to export"). -Add: Qso list/filter has now contest related search columns, too. -Fix: CQ-monitor: Follow call editing resulted right to left typing order for letters (not for numbers). Now all restored to left-to-right order. -FiX: Help files updated.Squashed commit of the following: commit ff0493923fbe083ceed1265373abba9834f86f66 Author: OH1KH <oh1kh@sral.fi> Date: Thu May 2 19:53:05 2019 +0300 final checks commit 7b5438b03b03f60436ddd413c86b269125302781 Author: Andreas Puschendorf Date: Thu May 2 14:41:50 2019 +0200 Squashed commit of the following: commit deb341af57da0eaaff6ab9d2d476a353c9216de1 Merge: 2f64d724e34f1e
Author: Andreas Puschendorf Date: Thu May 2 14:34:05 2019 +0200 Merge branch 'master' into integrationOfNewContestDbFieldsInGui commit 2f64d720bc644fa27cc4d6cd102792afd70c7950 Author: Andreas Puschendorf Date: Thu May 2 14:28:32 2019 +0200 Revert "improved the update script for field info in table freqmem" This reverts commit 8d5384819ab0995985e3b79e3c60daabda749b6a. commit 33f29036387bdc602e4be853f8b9058985f339e4 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 30 22:02:12 2019 +0200 refactor adif in fMonWsjtx.pas commit b6ec5eb7fdf4b1140de1b664c2eaa5a6e2479ff3 Author: OH1KH <oh1kh@sral.fi> Date: Tue Apr 30 17:51:53 2019 +0300 period timer for FT4 commit 634cca519f9236f52c7d1be31588d93a85f32245 Author: OH1KH <oh1kh@sral.fi> Date: Tue Apr 30 17:10:23 2019 +0300 FT4 mode timers commit 59c4b3a0f903665c59686a9f05726173e448ccd0 Author: OH1KH <oh1kh@sral.fi> Date: Tue Apr 30 16:46:50 2019 +0300 FT4 mode letter commit 7d8415a8c6ea081e561f0766db307daa4519ab8c Author: OH1KH <oh1kh@sral.fi> Date: Sun Apr 28 10:31:16 2019 +0300 Fixed addRadioMemory form tabulation order commit b5f64426e3669f3048b8d22ff98b64f3fdab6b9a Author: OH1KH <oh1kh@sral.fi> Date: Fri Apr 26 13:38:01 2019 +0300 added qrz/hamqth info fetch to n1mm remote commit 21ab222aee20b515a688d45b48552446a6dd9bcf Author: OH1KH <oh1kh@sral.fi> Date: Thu Apr 25 20:50:26 2019 +0300 Moved View/Edit close from contest/btSave to contest/edtCallExit commit 957ab8d820f14d414b51bd83fa65a40fd5f16f3e Author: OH1KH <oh1kh@sral.fi> Date: Wed Apr 24 13:30:13 2019 +0300 Added contest + other tags to n1mm remote commit d2b444f9ed42197642c6f44b7b7c8062e950eb0d Merge: 80bc124 bb24e96 Author: OH1KH <oh1kh@sral.fi> Date: Tue Apr 23 09:05:59 2019 +0300 Merge branch 'integrationOfNewContestDbFieldsInGui' of github.com:OH1KH/cqrlog into integrationOfNewContestDbFieldsInGui commit 80bc124aa83fe59b1c0252e88d6d4ce560e44575 Author: OH1KH <oh1kh@sral.fi> Date: Tue Apr 23 09:05:40 2019 +0300 New mode FT4 added to utils, monwsjtx sill needs mode letter commit bb24e969a9939369a21d9143fc06509959f0bc5f Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Mon Apr 22 22:09:22 2019 +0200 correct encoding and directory of ContestName.tab commit 0b75cbb804287757a27dfc58fa3b0379ad070528 Author: OH1KH <oh1kh@sral.fi> Date: Mon Apr 22 18:55:06 2019 +0300 small help addition commit 81136fc576513822fea97e41f0ec1a5e6912b75a Author: OH1KH <oh1kh@sral.fi> Date: Mon Apr 22 11:35:44 2019 +0300 revert frmContest/contestname|description to combobox commit f016409b0548b7f159d914233c2c3862ff418b9b Author: OH1KH <oh1kh@sral.fi> Date: Mon Apr 22 09:25:04 2019 +0300 reverted ContestName.tab path to root. Added chkRemember to filter. Fixed filter help. commit 8c9079c9e89c89724270ed53364c3a01bc15808d Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sun Apr 21 21:12:53 2019 +0200 fix bug when contest qso is not saved due to viewmode or editmode of newqso-form commit 25c4fdd8b67388c5e56da519f7ff3f605facbb01 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sun Apr 21 13:06:06 2019 +0200 Revert "call dupe check in contest gui only in the last 2 days of log" This reverts commit 692e7e8c60a3ca5dffb774b2f6adc053ee3358ac. commit ea485ac4c5d6280680a2c10e4b0766348e38e39f Merge: 409cc68 083be1e Author: OH1KH <oh1kh@sral.fi> Date: Sun Apr 21 10:16:07 2019 +0300 Merge branch 'integrationOfNewContestDbFieldsInGui' of github.com:OH1KH/cqrlog into integrationOfNewContestDbFieldsInGui pulled commit 409cc68b1c79dddb895cb7540368e4f7480df676 Author: OH1KH <oh1kh@sral.fi> Date: Sun Apr 21 10:15:14 2019 +0300 Fixed contestname.tab loading in filter and contest forms commit 083be1ef8fdb1a7d4f79647b6ea1c4ec47ab0a89 Merge: 692e7e8c99c21b
Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sun Apr 21 09:05:38 2019 +0200 Merge branch 'master' into integrationOfNewContestDbFieldsInGui commit 692e7e8c60a3ca5dffb774b2f6adc053ee3358ac Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sat Apr 20 23:01:32 2019 +0200 call dupe check in contest gui only in the last 2 days of log commit 384629cc0b6d49762b563a057747470177716959 Merge: 4e778ea 585d704 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sat Apr 20 21:44:12 2019 +0200 Merge branch 'integrationOfNewContestDbFieldsInGui' of https://github.com/OH1KH/cqrlog into integrationOfNewContestDbFieldsInGui commit 4e778ea28ed9e4d72bc7bbbfa358eb1ad8c159b7 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sat Apr 20 21:43:54 2019 +0200 add colum autosize to form fsqlconsole and fmain commit 2758e20fbe191b396579a9dda0465fe820726d04 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sat Apr 20 19:37:50 2019 +0200 add ContestName.tab to lastupgradecheck commit 585d70499e5344cda890d00ca122749309347669 Author: OH1KH <oh1kh@sral.fi> Date: Sat Apr 20 19:52:25 2019 +0300 Updated some help files commit cab588b93c8c8d3180acf5ebec9d6ce19fd54f03 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Fri Apr 19 21:00:30 2019 +0200 add sat_name.tab and prop_mode.tab to lastupgradecheck. new sat_name.tab in tar file leads to cty.tar download every app start commit d7c1c729aec75606f1c96e0b2d9331a25e4d1e7a Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Fri Apr 19 20:31:49 2019 +0200 add some mouse over text in filter gui and move complete msg out of the way of filepath commit 008edf3fed9e1cd0b3868e48a235e41c497251fc Author: OH1KH <oh1kh@sral.fi> Date: Fri Apr 19 12:04:49 2019 +0300 Fix filter help commit c0140256d841828ee0926cd8f037e0b0c89caab4 Author: OH1KH <oh1kh@sral.fi> Date: Fri Apr 19 11:45:03 2019 +0300 Added empty selection to top of contestname list commit 6ff80cb2f62ccbe29499c46757d490ace021ab57 Author: OH1KH <oh1kh@sral.fi> Date: Fri Apr 19 11:36:16 2019 +0300 Filter: autosave last used filter. Added button clear filter commit 21021f1939c1e801efb5ca508663df58f7f73216 Author: OH1KH <oh1kh@sral.fi> Date: Thu Apr 18 20:03:15 2019 +0300 Filter:strxString case insensitive, adifimport:anchor/layout qso inlog->yes,no,cancel commit dd8dba7517628e13efbedfca5723380a351a60c2 Author: OH1KH <oh1kh@sral.fi> Date: Thu Apr 18 10:39:24 2019 +0300 Filter save,load and search works now with contest columns commit 9497a93e58ae62ea13000555837d5ec011695f63 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Wed Apr 17 23:20:05 2019 +0200 typo fixes and correction of comment commit ace491c802c67b91f156ae35bbc422d1da9e3cac Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Wed Apr 17 23:07:16 2019 +0200 fix ContestName.tab now copy to root of cqrlog and read from root for filling combobox commit 36acfa62691fbf99c548b59261c12e7a801decc9 Author: OH1KH <oh1kh@sral.fi> Date: Wed Apr 17 20:55:17 2019 +0300 Filter layout with contest columns, no filter code yet commit 4dab0a92588909a8602535da52fdbc08143f7b98 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 16 22:06:26 2019 +0200 add adif import for contest fields commit ac619eed36b58e19ca2576410853d7890ffbb231 Merge: c8afe3229112ef
Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Mon Apr 15 19:59:40 2019 +0200 Merge branch 'master' into integrationOfNewContestDbFieldsInGui commit c8afe32158f138126182b9784bfbb108900c7604 Author: OH1KH <oh1kh@sral.fi> Date: Sat Apr 13 16:24:31 2019 +0300 limit serialNRReceived from FT8 contest modes to 6chrs commit a88d20211f9123acd534b4af9270b8e659faab07 Author: OH1KH <oh1kh@sral.fi> Date: Wed Apr 10 16:48:51 2019 +0300 Made shorter name for NewQso gbContest and it is visible only if contest form is visible commit d943e75550e6444aec1917d3ab94b1aee7da399d Author: OH1KH <oh1kh@sral.fi> Date: Tue Apr 9 17:08:50 2019 +0300 630M database creation fix commit 2468d3ac00911c5d280f437d698cd2654579858b Author: OH1KH <oh1kh@sral.fi> Date: Sun Apr 7 16:40:08 2019 +0300 Added pref/visible columns selections for contest columns commit 00c9f9086d2aace35a0fe92ccbe460817be4cfa8 Author: OH1KH <oh1kh@sral.fi> Date: Sun Apr 7 15:19:24 2019 +0300 FIX pressing ESC in contest form caused also B sending. Force stx_string to upcase in input field commit d7a9970b17593d3fb466f992fc8ab65373b5506a Merge: ea070bb 6eaec22 Author: OH1KH <oh1kh@sral.fi> Date: Fri Apr 5 18:07:48 2019 +0300 Merge branch 'integrationOfNewContestDbFieldsInGui' of github.com:OH1KH/cqrlog into integrationOfNewContestDbFieldsInGui . commit ea070bb58dee3a5c87965a2183ce15f7fba6cdac Author: OH1KH <oh1kh@sral.fi> Date: Fri Apr 5 18:06:46 2019 +0300 wsjt-spec mode use new contest fields.Fix "'' is not valid date"-error in wsjtx logging commit 6eaec227089dd8e48dddfb2e51966ef74a233769 Merge: cebac6eb505f77
Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Thu Apr 4 20:55:22 2019 +0200 Merge branch 'master' into integrationOfNewContestDbFieldsInGui commit cebac6ebfb8ffacd7169c4710312cebeae99048b Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Thu Apr 4 20:36:30 2019 +0200 add ContestName.tab for contest combo box - ../ctyfiles/Contestname.tab Format CONTEST_ID|CONTEST_DESCRIPTION - only CONTEST_ID is saved to database - when no file is found, default contest list (ADIF 3.0.9) is used commit 5f8636e7e6215dbc824260820f17ef426886295a Author: OH1KH <oh1kh@sral.fi> Date: Thu Apr 4 17:00:00 2019 +0300 Fixed every second press of empty cwkey sends 'b' with hamlib keyer commit 67c3a2a1165689df98d79d9463653537660243fb Author: OH1KH <oh1kh@sral.fi> Date: Thu Apr 4 13:26:56 2019 +0300 CW macros nearly work. Empty CWmemory sends B every other press commit 3b05eaa9d09f791e3fcd69dd69c885a44c3285a3 Author: OH1KH <oh1kh@sral.fi> Date: Wed Apr 3 20:25:38 2019 +0300 Contestname:autocomplete, lfm:anchoring, frm:dupe check commit 5503c40ad1c386582d934036581a4e14f40b7c1e Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Wed Apr 3 18:10:28 2019 +0200 remove old srx/stx generation with pipe and space and clean death contest code commit 3c56f1b94307d5acb387a9c576bbe719c77493f0 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 2 23:23:47 2019 +0200 fix bug that html export shows now data for contest fields commit 61f75555df5ada93129db0d2339a30e9514c425b Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 2 22:47:03 2019 +0200 fix bug where adif export was generated but show now contest data commit 7c0ce64b9e92ee4c38eae1920c4ffe31c7d9a1bc Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 2 22:37:54 2019 +0200 adif/html export with new contest fields commit 43a189efddf6bdc8b84cff675ca72bb111a26727 Merge: f3cba04 8d53848 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 2 17:27:52 2019 +0200 Merge branch 'cqrlogDatabaseVersion16' into integrationOfNewContestDbFieldsInGui commit 8d5384819ab0995985e3b79e3c60daabda749b6a Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 2 17:26:54 2019 +0200 improved the update script for field info in table freqmem commit f3cba040ebb425d1150452733ef3d063464a9af2 Merge: 91b05db d99ec3c Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 2 16:55:00 2019 +0200 Merge branch 'cqrlogDatabaseVersion16' into integrationOfNewContestDbFieldsInGui commit d99ec3cb92c751d9a74c29f98fd26452ee74ea53 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Tue Apr 2 16:54:18 2019 +0200 remove submode field commit 91b05db74f0af98f9014a27bc1decd15972ed521 Merge: 960ec8c a9b11a8 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Mon Apr 1 19:20:04 2019 +0200 Merge branch 'cqrlogDatabaseVersion16' into integrationOfNewContestDbFieldsInGui commit a9b11a81e1dad95dd1535554e73bb3d980f87765 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Mon Apr 1 19:19:25 2019 +0200 modify field log_changes.cmd to varchar(20) commit 960ec8c6ed1b6644749e9b02adbd557daf291afa Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Mon Apr 1 13:23:59 2019 +0200 activate only relevant fields in tab-circle of contest-gui commit 76a364a7b09579a5f9f82dedea5c29f0506d2fe9 Merge: af5dd9463a9950
Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Mon Apr 1 10:05:57 2019 +0200 Merge branch 'master' into integrationOfNewContestDbFieldsInGui commit 876e2170133766f393c4155a0cee28c9c65d099a Merge: 76a2ad363a9950
Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Mon Apr 1 09:50:17 2019 +0200 Merge branch 'master' into cqrlogDatabaseVersion16 commit af5dd94bff6d60ea6a2dd92004fb284dc2d73ac4 Merge: 93dbe4f 76a2ad3 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sun Mar 31 09:26:11 2019 +0200 Merge branch 'cqrlogDatabaseVersion16' into integrationOfNewContestDbFieldsInGui commit 76a2ad3c6ae8a5d9727010948cb133da642adf52 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sun Mar 31 09:20:04 2019 +0200 db new log get new fields commit 93dbe4f0882c01c735c5e1c38672d121991ef98b Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sat Mar 30 20:09:01 2019 +0100 upgrade gui of contest and newqso to new contest database fields NewQSO GUI - group box for contestname, srx, stx, stx_string, strx_string - field length in gui is restricted to max length of database field - implement save, editing, view - add mouse over hints Contest GUI - add contestname as combobox with ADIF 3.0.9 CONTEST_ID as selection, but also freestyle possible - contestname will stay - save qso saves to new contest fields in database - add mouse over hints - field length in gui is restricted for new db fields to max length of database field commit 22f0be0b9e3e87ba764759c6b3ae3f60050f587e Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sat Mar 30 18:48:38 2019 +0100 upgrade database with new fields for contest, submode and trxcontrol in detail -table freqmem > info varchar(25) -table cqrlog_main > contestname varchar(40) -table cqrlog_main > stx varchar(6) -table cqrlog_main > srx varchar(6) -table cqrlog_main > stx_string varchar(50) -table cqrlog_main > srx_string varchar(50) -table cqrlog_main > submode varchar(20) -database errorhandling for beta users because freqmem.info field allready exists -add new fields to database views commit b4689590ed1f23ebd49bdfa727fce3bf8e3af7e1 Author: Andreas Puschendorf <andreas@puschendorf.net> Date: Sat Mar 30 18:48:38 2019 +0100 upgrade database with new fields for contest, submode and trxcontrol in detail -table freqmem > info varchar(25) -table cqrlog_main > contestname varchar(40) -table cqrlog_main > stx varchar(6) -table cqrlog_main > srx varchar(6) -table cqrlog_main > stx_string varchar(50) -table cqrlog_main > srx_string varchar(50) -table cqrlog_main > submode varchar(20) -database errorhandling for beta users because freqmem.info field allready exists -add new fields to database views
224
ctyfiles/ContestName.tab
Normal file
@ -0,0 +1,224 @@
|
||||
070-160M-SPRINT|PODXS Great Pumpkin Sprint
|
||||
070-3-DAY|PODXS Three Day Weekend
|
||||
070-31-FLAVORS|PODXS 31 Flavors
|
||||
070-40M-SPRINT|PODXS 40m Firecracker Sprint
|
||||
070-80M-SPRINT|PODXS 80m Jay Hudak Memorial Sprint
|
||||
070-PSKFEST|PODXS PSKFest
|
||||
070-ST-PATS-DAY|PODXS St. Patricks Day
|
||||
070-VALENTINE-SPRINT|PODXS Valentine Sprint
|
||||
10-RTTY|Ten-Meter RTTY Contest (2011 onwards)
|
||||
1010-OPEN-SEASON|Open Season Ten Meter QSO Party
|
||||
7QP|7th-Area QSO Party
|
||||
AL-QSO-PARTY|Alabama QSO Party
|
||||
ALL-ASIAN-DX-CW|JARL All Asian DX Contest (CW)
|
||||
ALL-ASIAN-DX-PHONE|JARL All Asian DX Contest (PHONE)
|
||||
ANARTS-RTTY|ANARTS WW RTTY
|
||||
ANATOLIAN-RTTY|Anatolian WW RTTY
|
||||
AP-SPRINT|Asia - Pacific Sprint
|
||||
AR-QSO-PARTY|Arkansas QSO Party
|
||||
ARI-DX|ARI DX Contest
|
||||
ARRL-10|ARRL 10 Meter Contest
|
||||
ARRL-160|ARRL 160 Meter Contest
|
||||
ARRL-222|ARRL 222 MHz and Up Distance Contest
|
||||
ARRL-DX-CW|ARRL International DX Contest (CW)
|
||||
ARRL-DX-SSB|ARRL International DX Contest (Phone)
|
||||
ARRL-EME|ARRL EME contest
|
||||
ARRL-FIELD-DAY|ARRL Field Day
|
||||
ARRL-RR-CW|ARRL Rookie Roundup (CW)
|
||||
ARRL-RR-RTTY|ARRL Rookie Roundup (RTTY)
|
||||
ARRL-RR-SSB|ARRL Rookie Roundup (Phone)
|
||||
ARRL-RTTY|ARRL RTTY Round-Up
|
||||
ARRL-SCR|ARRL School Club Roundup
|
||||
ARRL-SS-CW|ARRL November Sweepstakes (CW)
|
||||
ARRL-SS-SSB|ARRL November Sweepstakes (Phone)
|
||||
ARRL-UHF-AUG|ARRL August UHF Contest
|
||||
ARRL-VHF-JAN|ARRL January VHF Sweepstakes
|
||||
ARRL-VHF-JUN|ARRL June VHF QSO Party
|
||||
ARRL-VHF-SEP|ARRL September VHF QSO Party
|
||||
AZ-QSO-PARTY|Arizona QSO Party
|
||||
BARTG-RTTY|BARTG Spring RTTY Contest
|
||||
BARTG-SPRINT|BARTG Sprint Contest
|
||||
BC-QSO-PARTY|British Columbia QSO Party
|
||||
CA-QSO-PARTY|California QSO Party
|
||||
CIS-DX|CIS DX Contest
|
||||
CO-QSO-PARTY|Colorado QSO Party
|
||||
CQ-160-CW|CQ WW 160 Meter DX Contest (CW)
|
||||
CQ-160-SSB|CQ WW 160 Meter DX Contest (SSB)
|
||||
CQ-M|CQ-M International DX Contest
|
||||
CQ-VHF|CQ World-Wide VHF Contest
|
||||
CQ-WPX-CW|CQ WW WPX Contest (CW)
|
||||
CQ-WPX-RTTY|CQ/RJ WW RTTY WPX Contest
|
||||
CQ-WPX-SSB|CQ WW WPX Contest (SSB)
|
||||
CQ-WW-CW|CQ WW DX Contest (CW)
|
||||
CQ-WW-RTTY|CQ/RJ WW RTTY DX Contest
|
||||
CQ-WW-SSB|CQ WW DX Contest (SSB)
|
||||
CT-QSO-PARTY|Connecticut QSO Party
|
||||
CVA-DX-CW|Concurso Verde e Amarelo DX CW Contest
|
||||
CVA-DX-SSB|Concurso Verde e Amarelo DX CW Contest
|
||||
CWOPS-CW-OPEN|CWops CW Open Competition
|
||||
CWOPS-CWT|CWops Mini-CWT Test
|
||||
DARC-WAEDC-CW|WAE DX Contest (CW)
|
||||
DARC-WAEDC-RTTY|WAE DX Contest (RTTY)
|
||||
DARC-WAEDC-SSB|WAE DX Contest (SSB)
|
||||
DARC-WAG|DARC Worked All Germany
|
||||
DE-QSO-PARTY|Delaware QSO Party
|
||||
DL-DX-RTTY|DL-DX RTTY Contest
|
||||
DMC-RTTY|DMC RTTY Contest
|
||||
EA-CNCW|Concurso Nacional de Telegrafía
|
||||
EA-DME|Municipios Españoles
|
||||
EA-PSK63|EA PSK63
|
||||
EA-RTTY|Unión de Radioaficionados Españoles RTTY Contest
|
||||
EA-SMRE-CW|Su Majestad El Rey de España - CW
|
||||
EA-SMRE-SSB|Su Majestad El Rey de España - SSB
|
||||
EA-VHF-ATLANTIC|Atlántico V-UHF
|
||||
EA-VHF-COM|Combinado de V-UHF
|
||||
EA-VHF-COSTA-SOL|Costa del Sol V-UHF
|
||||
EA-VHF-EA|Nacional VHF
|
||||
EA-VHF-EA1RCS|Segovia EA1RCS V-UHF
|
||||
EA-VHF-QSL|QSL V-UHF & 50MHz
|
||||
EA-VHF-SADURNI|Sant Sadurni V-UHF
|
||||
EA-WW-RTTY|Unión de Radioaficionados Españoles RTTY Contest
|
||||
EPC-PSK63|PSK63 QSO Party
|
||||
EU Sprint|EU Sprint
|
||||
EU-HF|EU HF Championship
|
||||
EU-PSK-DX|EU PSK DX Contest
|
||||
EUCW160M|European CW Association 160m CW Party
|
||||
FALL SPRINT|FISTS Fall Sprint
|
||||
FL-QSO-PARTY|Florida QSO Party
|
||||
GA-QSO-PARTY|Georgia QSO Party
|
||||
HA-DX|Hungarian DX Contest
|
||||
HELVETIA|Helvetia Contest
|
||||
HI-QSO-PARTY|Hawaiian QSO Party
|
||||
HOLYLAND|IARC Holyland Contest
|
||||
IA-QSO-PARTY|Iowa QSO Party
|
||||
IARU-FIELD-DAY|DARC IARU Region 1 Field Day
|
||||
IARU-HF|IARU HF World Championship
|
||||
ID-QSO-PARTY|Idaho QSO Party
|
||||
IL QSO Party|Illinois QSO Party
|
||||
IN-QSO-PARTY|Indiana QSO Party
|
||||
JARTS-WW-RTTY|JARTS WW RTTY
|
||||
JIDX-CW|Japan International DX Contest (CW)
|
||||
JIDX-SSB|Japan International DX Contest (SSB)
|
||||
JT-DX-RTTY|Mongolian RTTY DX Contest
|
||||
KS-QSO-PARTY|Kansas QSO Party
|
||||
KY-QSO-PARTY|Kentucky QSO Party
|
||||
LA-QSO-PARTY|Louisiana QSO Party
|
||||
LDC-RTTY|DRCG Long Distance Contest (RTTY)
|
||||
LZ DX|LZ DX Contest
|
||||
MAR-QSO-PARTY|Maritimes QSO Party
|
||||
MD-QSO-PARTY|Maryland QSO Party
|
||||
ME-QSO-PARTY|Maine QSO Party
|
||||
MI-QSO-PARTY|Michigan QSO Party
|
||||
MIDATLANTIC-QSO-PARTY|Mid-Atlantic QSO Party
|
||||
MN-QSO-PARTY|Minnesota QSO Party
|
||||
MO-QSO-PARTY|Missouri QSO Party
|
||||
MS-QSO-PARTY|Mississippi QSO Party
|
||||
MT-QSO-PARTY|Montana QSO Party
|
||||
NA-SPRINT-CW|North America Sprint (CW)
|
||||
NA-SPRINT-RTTY|North America Sprint (RTTY)
|
||||
NA-SPRINT-SSB|North America Sprint (Phone)
|
||||
NAQP-CW|North America QSO Party (CW)
|
||||
NAQP-RTTY|North America QSO Party (RTTY)
|
||||
NAQP-SSB|North America QSO Party (Phone)
|
||||
NC-QSO-PARTY|North Carolina QSO Party
|
||||
ND-QSO-PARTY|North Dakota QSO Party
|
||||
NE-QSO-PARTY|Nebraska QSO Party
|
||||
NEQP|New England QSO Party
|
||||
NH-QSO-PARTY|New Hampshire QSO Party
|
||||
NJ-QSO-PARTY|New Jersey QSO Party
|
||||
NM-QSO-PARTY|New Mexico QSO Party
|
||||
NRAU-BALTIC-CW|NRAU-Baltic Contest (CW)
|
||||
NRAU-BALTIC-SSB|NRAU-Baltic Contest (SSB)
|
||||
NV-QSO-PARTY|Nevada QSO Party
|
||||
NY-QSO-PARTY|New York QSO Party
|
||||
OCEANIA-DX-CW|Oceania DX Contest (CW)
|
||||
OCEANIA-DX-SSB|Oceania DX Contest (SSB)
|
||||
OH-QSO-PARTY|Ohio QSO Party
|
||||
OK-DX-RTTY|Czech Radio Club OK DX Contest
|
||||
OK-OM-DX|Czech Radio Club OK-OM DX Contest
|
||||
OK-QSO-PARTY|Oklahoma QSO Party
|
||||
OMISS-QSO-PARTY|Old Man International Sideband Society QSO Party
|
||||
ON-QSO-PARTY|Ontario QSO Party
|
||||
OR-QSO-PARTY|Oregon QSO Party
|
||||
PA-QSO-PARTY|Pennsylvania QSO Party
|
||||
PACC|Dutch PACC Contest
|
||||
PSK-DEATHMATCH|MDXA PSK DeathMatch (2005-2010)
|
||||
QC-QSO-PARTY|Quebec QSO Party
|
||||
RAC|Canadian Amateur Radio Society Contest
|
||||
RAC-CANADA-DAY|RAC Canada Day Contest
|
||||
RAC-CANADA-WINTER|RAC Canada Winter Contest
|
||||
RDAC|Russian District Award Contest
|
||||
RDXC|Russian DX Contest
|
||||
REF-160M|Reseau des Emetteurs Francais 160m Contest
|
||||
REF-CW|Reseau des Emetteurs Francais Contest (CW)
|
||||
REF-SSB|Reseau des Emetteurs Francais Contest (SSB)
|
||||
REP-PORTUGAL-DAY-HF|Rede dos Emissores Portugueses Portugal Day HF Contest
|
||||
RI-QSO-PARTY|Rhode Island QSO Party
|
||||
RSGB-160|1.8MHz Contest
|
||||
RSGB-21/28-CW|21/28 MHz Contest (CW)
|
||||
RSGB-21/28-SSB|21/28 MHz Contest (SSB)
|
||||
RSGB-80M-CC|80m Club Championships
|
||||
RSGB-AFS-CW|Affiliated Societies Team Contest (CW)
|
||||
RSGB-AFS-SSB|Affiliated Societies Team Contest (SSB)
|
||||
RSGB-CLUB-CALLS|Club Calls
|
||||
RSGB-COMMONWEALTH|Commonwealth Contest
|
||||
RSGB-IOTA|IOTA Contest
|
||||
RSGB-LOW-POWER|Low Power Field Day
|
||||
RSGB-NFD|National Field Day
|
||||
RSGB-ROPOCO|RoPoCo
|
||||
RSGB-SSB-FD|SSB Field Day
|
||||
RUSSIAN-RTTY|Russian Radio RTTY Worldwide Contest
|
||||
SAC-CW|Scandinavian Activity Contest (CW)
|
||||
SAC-SSB|Scandinavian Activity Contest (SSB)
|
||||
SARTG-RTTY|SARTG WW RTTY
|
||||
SC-QSO-PARTY|South Carolina QSO Party
|
||||
SCC-RTTY|SCC RTTY Championship
|
||||
SD-QSO-PARTY|South Dakota QSO Party
|
||||
SMP-AUG|SSA Portabeltest
|
||||
SMP-MAY|SSA Portabeltest
|
||||
SP-DX-RTTY|PRC SPDX Contest (RTTY)
|
||||
SPAR-WINTER-FD|SPAR Winter Field Day
|
||||
SPDXContest|SP DX Contest
|
||||
SPRING SPRINT|FISTS Spring Sprint
|
||||
SR-MARATHON|Scottish-Russian Marathon
|
||||
STEW-PERRY|Stew Perry Topband Distance Challenge
|
||||
SUMMER SPRINT|FISTS Summer Sprint
|
||||
TARA-GRID-DIP|TARA Grid Dip PSK-RTTY Shindig
|
||||
TARA-RTTY|TARA RTTY Mêlée
|
||||
TARA-RUMBLE|TARA Rumble PSK Contest
|
||||
TARA-SKIRMISH|TARA Skirmish Digital Prefix Contest
|
||||
TEN-RTTY|Ten-Meter RTTY Contest (before 2011)
|
||||
TMC-RTTY|The Makrothen Contest
|
||||
TN-QSO-PARTY|Tennessee QSO Party
|
||||
TX-QSO-PARTY|Texas QSO Party
|
||||
UBA-DX-CW|UBA Contest (CW)
|
||||
UBA-DX-SSB|UBA Contest (SSB)
|
||||
UK-DX-BPSK63|European PSK Club BPSK63 Contest
|
||||
UK-DX-RTTY|UK DX RTTY Contest
|
||||
UKR-CHAMP-RTTY|Open Ukraine RTTY Championship
|
||||
UKRAINIAN DX|Ukrainian DX
|
||||
UKSMG-6M-MARATHON|UKSMG 6m Marathon
|
||||
UKSMG-SUMMER-ES|UKSMG Summer Es Contest
|
||||
URE-DX|Ukrainian DX Contest
|
||||
US-COUNTIES-QSO|Mobile Amateur Awards Club
|
||||
UT-QSO-PARTY|Utah QSO Party
|
||||
VA-QSO-PARTY|Virginia QSO Party
|
||||
VENEZ-IND-DAY|RCV Venezuelan Independence Day Contest
|
||||
VIRGINIA QSO PARTY|Virginia QSO Party
|
||||
VOLTA-RTTY|Alessandro Volta RTTY DX Contest
|
||||
WA-QSO-PARTY|Washington QSO Party
|
||||
WI-QSO-PARTY|Wisconsin QSO Party
|
||||
WIA-HARRY ANGEL|WIA Harry Angel Memorial 80m Sprint
|
||||
WIA-JMMFD|WIA John Moyle Memorial Field Day
|
||||
WIA-OCDX|WIA Oceania DX (OCDX) Contest
|
||||
WIA-REMEMBRANCE|WIA Remembrance Day
|
||||
WIA-ROSS HULL|WIA Ross Hull Memorial VHF/UHF Contest
|
||||
WIA-TRANS TASMAN|WIA Trans Tasman Low Bands Challenge
|
||||
WIA-VHF/UHF FD|WIA VHF UHF Field Days
|
||||
WIA-VK SHIRES|WIA VK Shires
|
||||
WINTER SPRINT|FISTS Winter Sprint
|
||||
WV-QSO-PARTY|West Virginia QSO Party
|
||||
WY-QSO-PARTY|Wyoming QSO Party
|
||||
XE-INTL-RTTY|Mexico International Contest (RTTY)
|
||||
YOHFDX|YODX HF contest
|
||||
YUDXC|YU DX Contest
|
@ -35,7 +35,7 @@
|
||||
</p>
|
||||
<p>
|
||||
<b>RECOMMENDATION:</b> Make new log for each contest, do not allow qrz/hamqth search. It slows things.
|
||||
<b>Note:</b> This is <b>NOT</b> a contest logging add-on!!!
|
||||
<b>Note:</b> This is <b>NOT</b> a contest logging add-on!!! It is a contest-notepad.
|
||||
It is meant to be a tool for "Sunday contesters working in Tourist Class". Do not expect wonders!
|
||||
</p><p>
|
||||
Form Contest is just a "child form" for NewQSO to make qso logging faster when working in contests.
|
||||
@ -73,18 +73,13 @@ Or hit ENTER after rxnumber if no additional message is exchanged.
|
||||
<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>
|
||||
<p>
|
||||
Contest numbers and messages are saved in log into RST fields separated by spaces like. 599 001 MSG
|
||||
This has two benefits:
|
||||
<ul>
|
||||
<li> CW macros work without any programming change. If you set “send RST”-macro it sends also contest
|
||||
number and message, and when not in contest it sends just RST.
|
||||
How ever a small modification to original is made. If you use %rs for RST it will send 5NN. Now
|
||||
modified version sends also T for zero. So you will have 599 001 like 5NN TT1.</li>
|
||||
<li> Backup of logs work without any change. RST field just are a bit longer</li>
|
||||
</ul>
|
||||
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).
|
||||
<br>
|
||||
CW macros Have some new items. Look them from <a href="h26.html">CW Operation</a>
|
||||
</p>
|
||||
<p>
|
||||
ADIF export is modified so that it separates RST fields to right tags.<br><br>
|
||||
ADIF exports fields to right tags.<br><br>
|
||||
<RST_SENT:3>599<STX:3>001<br>
|
||||
<RST_RCVD:3>599<SRX:3>002<br>
|
||||
<RST_SENT:3>599<STX:3>003<STX_STRING:2>SA<br>
|
||||
|
@ -71,7 +71,7 @@
|
||||
<tr>
|
||||
<td width="35%">Ctrl-K</td>
|
||||
<td width="65%">Remote mode for N1MM logger</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="35%">Ctrl-L</td>
|
||||
<td width="65%">Change your QRA locator</td>
|
||||
@ -168,6 +168,15 @@
|
||||
<td width="35%">F12</td>
|
||||
<td width="65%">Create filter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="35%">Shift-F10</td>
|
||||
<td width="65%">QRZ/HamQTH Callbook/IK3QAR qsl manager page search (opens in browser)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="35%">Shift-F12</td>
|
||||
<td width="65%">Cancel filter</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td width="35%">Ctrl-D</td>
|
||||
<td width="65%">DXCC statistics <font color="blue"><strong>**</strong></font></td>
|
||||
@ -267,6 +276,10 @@
|
||||
continent, DXCC reference, geographical coordinates (in decimal form),
|
||||
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>
|
||||
|
||||
|
||||
You can add a general long note to your log with the Ctrl-N key (from
|
||||
the logging screen or from the 'File' menu option).<br><br>
|
||||
<img src="img/h2.png" border="0"><br><br>
|
||||
@ -330,8 +343,8 @@ best digimode softwares available.<br>
|
||||
<br>The most important thing is a <a href="h1.html#ch2">proper setup</a> of the remote mode. For <em>fldigi<em> you have 2 different ways to setup remote .<br>
|
||||
For <em>wsjt-x</em>, setup is done at same tab of preferences as <em>fldigi<em>. For operating with wsjt-x see: <a href="wsjt.html">Wsjt-x operation</a>
|
||||
<br><br> To use <em>fldigi</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for fldigi(or CTRL+M).
|
||||
<br> To use <em>wsjt-x</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for wsjt.<br><br>
|
||||
|
||||
<br> To use <em>wsjt-x</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for wsjt.
|
||||
<br> To use <em>N1MM logger</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for N1MM logger.<br><br>
|
||||
<img src="img/h104.png"><br><br>
|
||||
The logging screen changes to indicate that CQRLOG is now working in 'Remote mode!' and
|
||||
can be controlled either from <em>fldigi</em> or can "dictate" the mode and frequency
|
||||
|
@ -29,20 +29,26 @@
|
||||
<div style="text-align: left;"><strong>CQRLOG for LINUX by OK7AN & OK1RR</strong></div>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
<a name="ah21"><h2><strong>Filtering</strong></h2></a>
|
||||
CQRLOG offers a wide variety of filtering options allowing you to select and export records
|
||||
<p>CQRLOG offers a wide variety of filtering options allowing you to select and export records
|
||||
(for awards etc.) in ADIF or HTML formats.<br><br>
|
||||
<img src="img/h49.png"><br><br>
|
||||
To get clean start use button <strong>Clear Filter</strong> before setting your filter values.<br>
|
||||
If <strong>Remember filter</strong> checkbox is checked filter remembers last settings (saved in ~/.config/cqrlog/FilterSettings.fil)
|
||||
, so there is no need to create filter every time from beginning
|
||||
after opened again from Qso list/Filter.
|
||||
<br>Only filters that you plan to need later in future needs to be saved by <strong>Save filter</strong> button.
|
||||
<br>Immediate press of <strong>OK</strong> after button <strong>Clear Filter</strong> is pressed removes all previous filtering if <strong>Remember filter</strong> checkbox is checked.
|
||||
</p><img src="img/h49.png"><br><br>
|
||||
Most of the fields have an option to select records based on an exact match or on a substring
|
||||
contained in the selected field, i.e. if you want to select all WA3 stations, put WA3 into
|
||||
the <b>Callsign</b> box and click the <b>Include</b> radio button. Note, please, that if you select
|
||||
contacts with members of a particular club or from your own database, you should choose
|
||||
the time span (<b>date from-to</b>) to make the <b>Membership</b> option active.
|
||||
<br>Selecting <b>Band</b> from bandselector will preset <b>Freq from:</b> and <b>Freq to:</b> as band start and end frequencies (Defined in Preferences/Bands/Frequencies).
|
||||
<br> Once filter values are selected you can make them reversed by checking chekbox <strong>NOT</strong>. I.E. making filter like <strong>mode FT8</strong>
|
||||
will show all FT8 qsos, but if you check <strong>NOT</strong> it shows all other mode qsos, but not FT8 ones.
|
||||
<br><br> Once filter values are selected you can make them reversed by checking chekbox <strong>Reverse filter (NOT)</strong>. I.E. making filter like <strong>mode FT8</strong>
|
||||
will show all FT8 qsos, but if you check <strong>Reverse filter (NOT)</strong> it shows all other mode qsos, but not FT8 ones.
|
||||
<br><br>
|
||||
Pressing calendar icon is easy way to set date. Double click on selected date closes calendar and sets the date. Pressing ESC closes calendar, but does not set date. Date can also be typed in manually.
|
||||
<br>
|
||||
<br><br>
|
||||
<img src="img/h101b.png"><br><br>
|
||||
The sorting order can be selected from the following options:<<br>
|
||||
<img src="img/h50.png"><br><br>
|
||||
|
@ -43,17 +43,24 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td bgcolor=#ffffcc valign="top">
|
||||
%mc - my callsign<br>
|
||||
%mn - my name<br>
|
||||
%ml - my locator<br>
|
||||
%mq - my qth<br>
|
||||
%r - rst to be sent<br>
|
||||
%n - his name<br>
|
||||
%c - his callsign<br>
|
||||
| - half space<br>
|
||||
%h - greetings (GM/GA/GE) calculated from local time of worked station<br>
|
||||
%rs - rst to be sent, 9 replaced with N<br>
|
||||
|
||||
<ul>
|
||||
<li>%mc - my callsign</li>
|
||||
<li>%mn - my name</li>
|
||||
<li>%mq - my qth</li>
|
||||
<li>%ml - my locator</li>
|
||||
<li>%r - rst send</li>
|
||||
<li>%rs - rst send sends N instead of 9<br>(sends also 0 as T, but that does not exist in normal report)</li>
|
||||
<br>
|
||||
<li>%n - name</li>
|
||||
<li>%c - callsign</li>
|
||||
<li>%h - greeting GM/GA/GE calculated from the %c station location time</li>
|
||||
<br>
|
||||
<li>%xn - contest exchenge serial number</li>
|
||||
<li>%xm - contest exchange message</li>
|
||||
<li>%xns - contest exchenge serial number sends 9->N and 0->T</li>
|
||||
<li>%xrs - full contest exchange RST+SerialNR+Message sends 9->N and 0->T.<br>
|
||||
(May be used always instead of %rs as if serNR and Message are empty just sends plain report.)</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -64,6 +64,9 @@
|
||||
<img src=img/h45.png><br><br>
|
||||
Choose 'ADIF'. An usual a dialog appears (depending on the desktop used). Choose a
|
||||
location and file name.<br><br>
|
||||
<img src=img/h45b.png><br><br>
|
||||
<img src=img/h45c.png><br><br>
|
||||
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>
|
||||
|
12
help/h5.html
@ -33,14 +33,22 @@
|
||||
<a name="ah37"><em><strong>My radio control (CAT) does not work</strong></em>
|
||||
<ul>
|
||||
<li><strong>Check your ports.</strong> You must be a member of the user group,
|
||||
which has permission to use ttyS* or ttyUSB* devices.
|
||||
which has permission to use ttyS* or ttyUSB* devices.<br>
|
||||
Open command console and give "ls -l your serial port name" and "groups" commands.<br>
|
||||
There must be same group, usually "dialout" in both results.<br><br>
|
||||
[saku@hamtpad ~]$ ls -l /dev/ttyUSB0<br>
|
||||
crw-rw----. 1 root <strong>dialout</strong> 188, 0 13. 4. 09:39 /dev/ttyUSB0<br>
|
||||
[saku@hamtpad ~]$ groups<br>
|
||||
saku <strong>dialout</strong> lock<br>
|
||||
[saku@hamtpad ~]$<br><br>
|
||||
If not try google with "your_linux_distribution_name add user to dial group" to get information how to do the fix.<br>
|
||||
</li>
|
||||
<li><strong>Check that your radio is properly set up </strong>
|
||||
<a href="h1.html#ah7"><em>(see here)</em></a>. Click the 'Settings' button and
|
||||
check the port settings - ttyS* or ttyUSB* number and <strong>all</strong>
|
||||
communication parameters.
|
||||
</li>
|
||||
<li><strong>Is the poll rate set too fast?</strong> Try a lower setting (higher number).</li>
|
||||
<li><strong>Is the poll rate set too fast?</strong> Try a lower setting (higher number). Your qsos usually lasts longer than 5 seconds so even ẃith value 5000 the right frequency is there before you save your qso.</li>
|
||||
</ul>
|
||||
<br>
|
||||
<p align=center><img src=img/line.png></p>
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 20 KiB |
BIN
help/img/h29.png
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 83 KiB |
BIN
help/img/h45b.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
help/img/h45c.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
help/img/h49.png
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 56 KiB |
BIN
help/img/h66.png
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 75 KiB |
BIN
help/img/h8.png
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 85 KiB |
BIN
help/img/h9.png
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 64 KiB |
BIN
help/img/h95.png
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 72 KiB |
BIN
help/img/h9b.png
Normal file
After Width: | Height: | Size: 43 KiB |
300
src/dData.pas
@ -273,13 +273,15 @@ type
|
||||
loc, my_loc,county,award,remarks : String; adif : Integer;
|
||||
idcall,state,cont : String; qso_dxcc : Boolean; profile : Integer;
|
||||
nclub1,nclub2,nclub3,nclub4,nclub5, PropMode, Satellite : String;
|
||||
RxFreq : Currency);
|
||||
RxFreq : Currency;srx : String;stx : String;srx_string : String;stx_string : String;
|
||||
contestname : String);
|
||||
|
||||
procedure EditQSO(date : TDateTime; time_on,time_off,call : String; freq : Currency;mode,rst_s,
|
||||
rst_r, stn_name,qth,qsl_s,qsl_r,qsl_via,iota,pwr : String; itu,waz : Integer;
|
||||
loc, my_loc,county,award,remarks : String; adif : Word; idcall,state,cont : String;
|
||||
qso_dxcc : Boolean; profile : Integer; PropMode, Satellite : String;
|
||||
RxFreq : Currency; idx : LongInt);
|
||||
RxFreq : Currency; idx : LongInt;srx : String;stx : String;srx_string : String;stx_string : String;
|
||||
contestname : String);
|
||||
procedure SaveComment(call,text : String);
|
||||
procedure DeleteComment(id : Integer);
|
||||
procedure PrepareImport;
|
||||
@ -1282,7 +1284,8 @@ procedure TdmData.SaveQSO(date : TDateTime; time_on,time_off,call : String; freq
|
||||
loc, my_loc,county,award,remarks : String; adif : Integer;
|
||||
idcall,state,cont : String; qso_dxcc : Boolean; profile : Integer;
|
||||
nclub1,nclub2,nclub3,nclub4,nclub5, PropMode, Satellite : String;
|
||||
RxFreq : Currency);
|
||||
RxFreq : Currency;srx : String;stx : String;srx_string : String;stx_string : String;
|
||||
contestname : String);
|
||||
var
|
||||
qsodate : String;
|
||||
band : String;
|
||||
@ -1317,7 +1320,8 @@ begin
|
||||
Q.SQL.Text := 'insert into cqrlog_main (qsodate,time_on,time_off,callsign,freq,mode,'+
|
||||
'rst_s,rst_r,name,qth,qsl_s,qsl_r,qsl_via,iota,pwr,itu,waz,loc,my_loc,'+
|
||||
'county,award,remarks,adif,idcall,state,qso_dxcc,band,profile,cont,club_nr1,'+
|
||||
'club_nr2,club_nr3,club_nr4,club_nr5, prop_mode, satellite, rxfreq) values('+QuotedStr(qsodate) +
|
||||
'club_nr2,club_nr3,club_nr4,club_nr5, prop_mode, satellite, rxfreq, srx, stx,'+
|
||||
'srx_string, stx_string, contestname) values('+QuotedStr(qsodate) +
|
||||
','+QuotedStr(time_on)+','+QuotedStr(time_off)+
|
||||
','+QuotedStr(call)+','+FloatToStr(freq)+
|
||||
','+QuotedStr(mode)+','+QuotedStr(rst_s)+
|
||||
@ -1335,7 +1339,7 @@ begin
|
||||
','+QuotedStr(band)+','+ IntToStr(profile) +','+QuotedStr(cont)+
|
||||
','+QuotedStr(nclub1)+','+QuotedStr(nclub2)+','+QuotedStr(nclub3)+
|
||||
','+QuotedStr(nclub4)+','+QuotedStr(nclub5)+','+QuotedStr(PropMode)+','+QuotedStr(Satellite)+','+rx_freq+
|
||||
')';
|
||||
','+QuotedStr(srx)+','+QuotedStr(stx)+','+QuotedStr(srx_string)+','+QuotedStr(stx_string)+','+QuotedStr(contestname)+')';
|
||||
if fDebugLevel >=1 then
|
||||
Writeln(Q.SQL.Text);
|
||||
Q.ExecSQL;
|
||||
@ -1346,7 +1350,8 @@ procedure TdmData.EditQSO(date : TDateTime; time_on,time_off,call : String; freq
|
||||
rst_r, stn_name,qth,qsl_s,qsl_r,qsl_via,iota,pwr : String; itu,waz : Integer;
|
||||
loc, my_loc,county,award,remarks : String; adif : Word; idcall,state,cont : String;
|
||||
qso_dxcc : Boolean; profile : Integer; PropMode, Satellite : String;
|
||||
RxFreq : Currency; idx : LongInt);
|
||||
RxFreq : Currency; idx : LongInt;srx : String;stx : String;srx_string : String;stx_string : String;
|
||||
contestname : String);
|
||||
var
|
||||
qsodate : String;
|
||||
band : String;
|
||||
@ -1388,7 +1393,8 @@ begin
|
||||
', qth = ' + QuotedStr(Trim(qth)) + ', award = ' + QuotedStr(award) +', band = ' + QuotedStr(band) +
|
||||
', profile = ' + IntToStr(profile) + ', idcall = ' + QuotedStr(idcall) + ', state=' + QuotedStr(state) +
|
||||
', cont = ' + QuotedStr(cont)+ ', prop_mode = ' + QuotedStr(PropMode) + ', satellite = ' + QuotedStr(Satellite)+
|
||||
', rxfreq = ' + rx_freq +
|
||||
', rxfreq = ' + rx_freq + ', stx = ' + QuotedStr(stx)+ ', stx_string = ' + QuotedStr(stx_string) + ', srx = ' + QuotedStr(srx)+
|
||||
', srx_string = ' + QuotedStr(srx_string) + ', contestname = ' + QuotedStr(contestname)+
|
||||
' where id_cqrlog_main = ' + IntToStr(idx);
|
||||
if fDebugLevel >=1 then
|
||||
Writeln(Q.SQL.Text);
|
||||
@ -2292,264 +2298,6 @@ begin
|
||||
end
|
||||
end;
|
||||
|
||||
{$IFDEF CONTEST}
|
||||
|
||||
procedure TdmData.CreateContestDatabase(FileName : String);
|
||||
begin
|
||||
fContestDataFile := FileName+'.fdb';
|
||||
ContestDatabase.DatabaseName := fContestDataFile;
|
||||
Writeln(ContestDatabase.DatabaseName);
|
||||
ContestDatabase.CreateDatabase();
|
||||
try
|
||||
ContestDataBase.Connected := True;
|
||||
dsCQRTest.SQL.Clear;
|
||||
trCQRTest.StartTransaction;
|
||||
dsCQRTest.SQL.Add('CREATE GENERATOR gid_main;');
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.ExecSQL;
|
||||
trCQRTest.Commit;
|
||||
|
||||
dsCQRTest.SQL.Clear;
|
||||
|
||||
trCQRTest.StartTransaction;
|
||||
dsCQRTest.SQL.Add('CREATE TABLE cqrtest (');
|
||||
dsCQRTest.SQL.Add(' id_cqrtest INTEGER NOT NULL PRIMARY KEY,');
|
||||
dsCQRTest.SQL.Add(' qsodate VARCHAR(10),');
|
||||
dsCQRTest.SQL.Add(' time_on VARCHAR(5),');
|
||||
dsCQRTest.SQL.Add(' qso_nr INTEGER,');
|
||||
dsCQRTest.SQL.Add(' call VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' freq NUMERIC(10,4),');
|
||||
dsCQRTest.SQL.Add(' mode VARCHAR(8),');
|
||||
dsCQRTest.SQL.Add(' rst_s VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' rst_r VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' exch1 VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' exch2 VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' mult1 VARCHAR(1),');
|
||||
dsCQRTest.SQL.Add(' mult2 VARCHAR(1),');
|
||||
dsCQRTest.SQL.Add(' name VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' qth VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' points INTEGER,');
|
||||
dsCQRTest.SQL.Add(' power VARCHAR(10),');
|
||||
dsCQRTest.SQL.Add(' waz VARCHAR(2),');
|
||||
dsCQRTest.SQL.Add(' itu VARCHAR(2),');
|
||||
dsCQRTest.SQL.Add(' band VARCHAR(10),');
|
||||
dsCQRTest.SQL.Add(' wpx VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' state VARCHAR(20),');
|
||||
dsCQRTest.SQL.Add(' iota VARCHAR(6),');
|
||||
dsCQRTest.SQL.Add(' dxcc_ref VARCHAR(20)');
|
||||
dsCQRTest.SQL.Add(');');
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.ExecSQL;
|
||||
dsCQRTest.SQL.Clear;
|
||||
|
||||
dsCQRTest.SQL.Add('CREATE TABLE version (');
|
||||
dsCQRTest.SQL.Add(' major INTEGER DEFAULT ' + IntToStr(major));
|
||||
dsCQRTest.SQL.Add(');');
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.ExecSQL;
|
||||
dsCQRTest.SQL.Clear;
|
||||
|
||||
dsCQRTest.SQL.Add('CREATE INDEX dxcc_ref ON cqrtest (dxcc_ref);');
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.ExecSQL;
|
||||
dsCQRTest.SQL.Clear;
|
||||
dsCQRTest.SQL.Add('CREATE INDEX qsodate ON cqrtest (qsodate);');
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.ExecSQL;
|
||||
dsCQRTest.SQL.Clear;
|
||||
dsCQRTest.SQL.Add('CREATE INDEX call ON cqrtest (call);');
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.ExecSQL;
|
||||
trCQRTest.Commit;
|
||||
dsCQRTest.SQL.Clear;
|
||||
|
||||
trCQRTest.StartTransaction;
|
||||
dsCQRTest.SQL.Add('CREATE OR ALTER TRIGGER bi_cqrtest FOR cqrtest');
|
||||
dsCQRTest.SQL.Add('ACTIVE BEFORE INSERT');
|
||||
dsCQRTest.SQL.Add(' POSITION 0');
|
||||
dsCQRTest.SQL.Add('AS');
|
||||
dsCQRTest.SQL.Add('BEGIN');
|
||||
dsCQRTest.SQL.Add(' if ((new.id_cqrtest is null) or (new.id_cqrtest = 0)) then');
|
||||
dsCQRTest.SQL.Add(' BEGIN');
|
||||
dsCQRTest.SQL.Add(' new.id_cqrtest = gen_id( gid_main, 1 );');
|
||||
dsCQRTest.SQL.Add(' END');
|
||||
dsCQRTest.SQL.Add('END');
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.ExecSQL;
|
||||
trCQRTest.Commit;
|
||||
dsCQRTest.SQL.Clear
|
||||
finally
|
||||
ContestDatabase.Connected := False
|
||||
end
|
||||
end;
|
||||
|
||||
function TdmData.OpenContestDatabase(FileName : String) : Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
try
|
||||
fContestDataFile := FileName;
|
||||
ContestDatabase.DatabaseName := fContestDataDir + fContestDataFile;
|
||||
Writeln(ContestDatabase.DatabaseName);
|
||||
ContestDatabase.Connected := True;
|
||||
dsCQRTest.Close;
|
||||
dsCQRTest.SQL.Text := 'SELECT * FROM cqrtest ORDER BY qsodate,time_on,id_cqrtest';
|
||||
if fDebugLevel>=1 then Writeln(dsCQRTest.SQL.Text);
|
||||
dsCQRTest.Open;
|
||||
dsCQRTest.Last
|
||||
except
|
||||
on E : Exception do
|
||||
begin
|
||||
Application.MessageBox(PChar('Cannot open database!'+#13+E.Message),'Error ...',mb_OK + mb_IconError);
|
||||
Result := False
|
||||
end
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TdmData.DeleteContestQSO(id : LongInt);
|
||||
begin
|
||||
Qc.Close;
|
||||
Qc.SQL.Text := 'delete from cqrtest where id_cqrtest = ' + IntToStr(id);
|
||||
if fDebugLevel>=1 then Writeln(Qc.SQL.Text);
|
||||
trQc.StartTransaction;
|
||||
dmData.Qc.ExecSQL;
|
||||
trQc.Commit;
|
||||
Qc.SQL.Clear
|
||||
end;
|
||||
procedure TdmData.SaveContestQSO(date : TDateTime;time_on,call,rst_s,rst_r,exch1,exch2,freq,mode,
|
||||
waz,itu,dxcc_ref : String);
|
||||
var
|
||||
qsodate : String;
|
||||
nr : Integer;
|
||||
band : String;
|
||||
iota : String = '';
|
||||
sname : String = '';
|
||||
qth : String = '';
|
||||
state : String = '';
|
||||
cexch1 : String = '';
|
||||
cexch2 : String = '';
|
||||
begin
|
||||
dsCQRTest.Last;
|
||||
band := IntToStr(dmUtils.GetBandFromFreq(freq))+'M';
|
||||
if waz = '' then
|
||||
WAZ := 'null';
|
||||
if itu = '' then
|
||||
ITU := 'null';
|
||||
dsCQRTest.Last;
|
||||
nr := dsCQRTest.Fields[3].AsInteger + 1;
|
||||
|
||||
cexch1 := UpperCase(trim(dmData.tstini.ReadString('Details','Exch1','None')));
|
||||
cexch2 := UpperCase(trim(dmData.tstini.ReadString('Details','Exch2','None')));
|
||||
|
||||
if cexch1 = 'NONE' then
|
||||
exch1 := ''
|
||||
else if cexch1 = 'WAZ ZONE' then
|
||||
waz := exch1
|
||||
else if cexch1 = 'ITU ZONE' then
|
||||
itu := exch1
|
||||
else if cexch1 = 'IOTA' then
|
||||
iota := exch1
|
||||
else if cexch1 = 'NAME' then
|
||||
sname := exch1
|
||||
else if cexch1 = 'QTH' then
|
||||
qth := exch1
|
||||
else if cexch1 = 'STATE' then
|
||||
state := exch1;
|
||||
|
||||
if cexch2 = 'NONE' then
|
||||
exch2 := ''
|
||||
else if cexch2 = 'WAZ ZONE' then
|
||||
waz := exch2
|
||||
else if cexch2 = 'ITU ZONE' then
|
||||
itu := exch2
|
||||
else if cexch2 = 'IOTA' then
|
||||
iota := exch2
|
||||
else if cexch2 = 'NAME' then
|
||||
sname := exch2
|
||||
else if cexch2 = 'QTH' then
|
||||
qth := exch2
|
||||
else if cexch2 = 'STATE' then
|
||||
state := exch2;
|
||||
|
||||
trQc.StartTransaction;
|
||||
qsodate := (FormatDateTime('YYYY-MM-DD',date));
|
||||
//date : TDateTime;time_on,call,rst_s,nr_s,rst_r,nr_r,exch1,exch2,freq,band,mode,waz,itu
|
||||
Qc.SQL.Text := 'insert into cqrtest (qsodate,time_on,call,rst_s,rst_r,exch1,exch2,'+
|
||||
'freq,band,mode,waz,itu,dxcc_ref,qso_nr,name,qth,iota,state) values (' + QuotedStr(qsodate) +
|
||||
',' + QuotedStr(time_on) + ',' + QuotedStr(call) +
|
||||
',' + QuotedStr(rst_s)+ ',' + QuotedStr(rst_r) +
|
||||
',' + QuotedStr(exch1) + ',' + QuotedStr(exch2) +
|
||||
',' + freq + ',' + QuotedStr(band) + ',' + QuotedStr(mode) +
|
||||
',' + waz + ',' + itu + ',' + QuotedStr(dxcc_ref) + ',' + IntToStr(nr) +
|
||||
','+QuotedStr(sName) + ','+QuotedStr(qth)+','+QuotedStr(iota)+','+QuotedStr(state)+')';
|
||||
if fDebugLevel >=1 then Writeln(Qc.SQL.Text);
|
||||
Qc.ExecSQL;
|
||||
trQc.Commit
|
||||
end;
|
||||
|
||||
procedure TdmData.EditTestQSO(qsodate,time_on,call,freq,mode,rst_s,rst_r,exch1,exch2,sname,qth,power,
|
||||
waz,itu,wpx,state,iota : String;points : Integer;mult1,mult2 : Boolean;
|
||||
id : LongInt);
|
||||
var
|
||||
m1 : String = '';
|
||||
m2 : String = '';
|
||||
begin
|
||||
if mult1 then
|
||||
m1 := 'X';
|
||||
if mult2 then
|
||||
m2 := 'X';
|
||||
Qc.Close;
|
||||
Qc.SQL.Text := 'update cqrtest set qsodate='+QuotedStr(qsodate)+',time_on='+QuotedStr(time_on)+
|
||||
',call='+QuotedStr(call)+',freq='+freq+',mode='+QuotedStr(mode)+',rst_s='+QuotedStr(rst_s)+
|
||||
',rst_r='+QuotedStr(rst_r)+',exch1='+QuotedStr(exch1)+',exch2='+QuotedStr(exch2)+',name='+QuotedStr(sname)+
|
||||
',qth='+QuotedStr(qth)+',power='+QuotedStr(power)+',waz='+QuotedStr(waz)+',itu='+QuotedStr(itu)+
|
||||
',wpx='+QuotedStr(wpx)+',state='+QuotedStr(state)+',iota='+QuotedStr(iota)+',points='+IntToStr(points)+
|
||||
',mult1='+QuotedStr(m1)+',mult2='+QuotedStr(m2) + ' where id_cqrtest = '+IntToStr(id);
|
||||
if fDebugLevel>=1 then Writeln(Qc.SQL.Text);
|
||||
trQc.StartTransaction;
|
||||
Qc.ExecSQL;
|
||||
trQc.Commit;
|
||||
Qc.Close()
|
||||
end;
|
||||
|
||||
procedure TdmData.GetLastExchange(call : String; var exch : String; var CurPos : TCurPos);
|
||||
var
|
||||
ex1 : Boolean;
|
||||
ex2 : Boolean;
|
||||
e1 : String = '';
|
||||
e2 : String = '';
|
||||
begin
|
||||
exch := '';
|
||||
CurPos := cpEnd;
|
||||
|
||||
e1 := UpperCase(trim(tstini.ReadString('Details','Exch1','None')));
|
||||
e2 := UpperCase(trim(tstini.ReadString('Details','Exch2','None')));
|
||||
ex1 := (e1 <> 'NONE') and (e1 <> 'QSO NUMBER');
|
||||
ex2 := (e2 <> 'NONE') and (e2 <> 'QSO NUMBER');
|
||||
|
||||
if not (ex1 or ex2) then
|
||||
exit;
|
||||
Qc.Close;
|
||||
Qc.SQL.Text := 'select exch1,exch2 from cqrtest where call = '+QuotedStr(call);
|
||||
if fDebugLevel>=1 then Writeln(Qc.SQL.Text);
|
||||
trQc.StartTransaction;
|
||||
Qc.Open();
|
||||
if Qc.Fields.AsString[0] <> '' then
|
||||
begin
|
||||
if ex1 and ex2 then
|
||||
exch := Qc.Fields.AsString[0] + ' ' + Qc.Fields.AsString[1]
|
||||
else begin
|
||||
if ex1 then
|
||||
exch := Qc.Fields.AsString[0];
|
||||
if ex2 then
|
||||
begin
|
||||
exch := ' ' + Qc.Fields.AsString[1];
|
||||
CurPos := cpBegin
|
||||
end
|
||||
end
|
||||
end;
|
||||
Qc.Close(etmRollback)
|
||||
end;
|
||||
{$ENDIF}
|
||||
procedure TdmData.LoadLoTWCalls;
|
||||
|
||||
procedure GrowArray(NextIndex: integer);
|
||||
@ -3235,11 +2983,23 @@ begin
|
||||
Q1.ExecSQL;
|
||||
trQ1.Commit;
|
||||
|
||||
trQ1.StartTransaction;
|
||||
Q1.SQL.Text := 'ALTER TABLE freqmem ADD COLUMN info varchar(25)';
|
||||
if fDebugLevel>=1 then Writeln(Q1.SQL.Text);
|
||||
Q1.ExecSQL;
|
||||
trQ1.Commit;
|
||||
//Here we need something. All Beta testers have this already added
|
||||
//either Try/finally/end to skip error,
|
||||
//or testing the exixtence of "info" before running alter
|
||||
trQ1.StartTransaction;
|
||||
Q1.SQL.Text := 'alter table freqmem add info varchar(25) null';
|
||||
if fDebugLevel>=1 then Writeln(Q1.SQL.Text);
|
||||
try
|
||||
if fDebugLevel>=1 then Writeln( 'On Try add info');
|
||||
Q1.ExecSQL;
|
||||
except
|
||||
// will only be executed in case of an exception as debug info
|
||||
on E: EDatabaseError do
|
||||
if fDebugLevel>=1 then Writeln( 'Database error: '+ E.ClassName + #13#10 + E.Message );
|
||||
on E: Exception do
|
||||
if fDebugLevel>=1 then Writeln( 'Error: '+ E.ClassName + #13#10 + E.Message );
|
||||
end;
|
||||
trQ1.Commit
|
||||
|
||||
end;
|
||||
|
||||
|
@ -38,14 +38,14 @@ const
|
||||
':', '|', '-', '=', '+', '@', '#', '*', '%', '_', '(', ')', '$', '<', '>'];
|
||||
empty_freq = '0.00000';
|
||||
empty_azimuth = '0.0';
|
||||
cMaxModes = 45; //was 39 //was 42
|
||||
cMaxModes = 46; //last added FT4
|
||||
cModes: array [0..cMaxModes] of string =
|
||||
('CW', 'SSB', 'AM', 'FM', 'RTTY', 'SSTV', 'PACTOR', 'PSK', 'ATV', 'CLOVER', 'GTOR', 'MTOR',
|
||||
'PSK31', 'HELL', 'MT63',
|
||||
'QRSS', 'CWQ', 'BPSK31', 'MFSK', 'JT44', 'FSK44', 'WSJT', 'AMTOR',
|
||||
'THROB', 'BPSK63', 'PACKET',
|
||||
'OLIVIA', 'MFSK16', 'JT4','JT6M', 'JT65', 'JT65A', 'JT65B', 'JT65C',
|
||||
'JT9', 'QRA64', 'ISCAT', 'MSK144', 'FT8', 'FSK441', 'PSK125',
|
||||
'JT9', 'QRA64', 'ISCAT', 'MSK144', 'FT8', 'FT4', 'FSK441', 'PSK125',
|
||||
'PSK63', 'WSPR', 'PSK250', 'ROS', 'DIGITALVOICE');
|
||||
cMaxBandsCount = 27; //26 bands
|
||||
|
||||
@ -227,7 +227,7 @@ type
|
||||
function ExtractZipCode(qth : String; Position : Integer) : String;
|
||||
function GetLabelBand(freq : String) : String;
|
||||
function GetAdifBandFromFreq(MHz : string): String;
|
||||
function GetCWMessage(Key,call,rst_s,HisName,HelloMsg, text : String; QSONR : String = '') : String;
|
||||
function GetCWMessage(Key,call,rst_s,stx,stx_str,HisName,HelloMsg, text: String) : String;
|
||||
function RigGetcmd(r : String): String;
|
||||
function GetLastQSLUpgradeDate : TDateTime;
|
||||
function CallTrim(call : String) : String;
|
||||
@ -2494,6 +2494,8 @@ begin
|
||||
older := FileAge(dir + 'prop_mode.tab');
|
||||
if older < FileAge(dir + 'sat_name.tab') then
|
||||
older := FileAge(dir + 'sat_name.tab');
|
||||
if older < FileAge(dir + 'ContestName.tab') then
|
||||
older := FileAge(dir + 'ContestName.tab');
|
||||
Result := FileDateToDateTime(older) + 1;
|
||||
end;
|
||||
|
||||
@ -2602,20 +2604,24 @@ begin
|
||||
Result := LowerCase(GetBandFromFreq(freq));
|
||||
end;
|
||||
|
||||
function TdmUtils.GetCWMessage(Key,call,rst_s,HisName,HelloMsg, text : String; QSONR : String = '') : String;
|
||||
function TdmUtils.GetCWMessage(Key,call,rst_s,stx,stx_str,HisName,HelloMsg, text : String) : String;
|
||||
{
|
||||
%mc - my callsign
|
||||
%mn - my name
|
||||
%mq - my qth
|
||||
%ml - my locator
|
||||
%nr - qso number
|
||||
|
||||
%r - rst send
|
||||
%rs - rst send sends N instead of 9
|
||||
%rs - rst send sends N instead of 9 (sends also 0 as T, but does not exist in normal report)
|
||||
|
||||
%n - name
|
||||
%c - callsign
|
||||
%h - greeting GM/GA/GE calculated from the %c station location time
|
||||
|
||||
%h - greeting GM/GA/GE calculated from the station location time
|
||||
%xn - contest exchenge serial number
|
||||
%xm - contest exchange message
|
||||
%xns - contest exchenge serial number sends 9->N and 0->T
|
||||
%xrs - full contest exchange RST+SerialNR+Message sends 9->N and 0->T.
|
||||
Can be used "always" as if serNR and/or Message are empty just sends plain report.
|
||||
|
||||
if text is not empty and we didn't send any key (F1 etc.) we can
|
||||
use this function to prepare every text wee need to send
|
||||
@ -2627,6 +2633,9 @@ var
|
||||
myname : String = '';
|
||||
myqth : String = '';
|
||||
rst_sh : String = '';
|
||||
stx_sh : String = '';
|
||||
con_ex : String = '';
|
||||
|
||||
begin
|
||||
mycall := cqrini.ReadString('Station', 'Call', '');
|
||||
myloc := cqrini.ReadString('Station', 'LOC', '');
|
||||
@ -2637,22 +2646,33 @@ begin
|
||||
else
|
||||
Result := text;
|
||||
|
||||
rst_sh := StringReplace(rst_s,'9','N',[rfReplaceAll, rfIgnoreCase]);
|
||||
rst_sh := StringReplace(rst_sh,'0','T',[rfReplaceAll, rfIgnoreCase]);//replace zeros, too
|
||||
rst_sh := StringReplace(rst_s,'9','N',[rfReplaceAll, rfIgnoreCase]);
|
||||
rst_sh := StringReplace(rst_sh,'0','T',[rfReplaceAll, rfIgnoreCase]);//replace zeros, too
|
||||
|
||||
Result := StringReplace(Result,'%mc',mycall,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%ml',myloc,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%mn',myname,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%mq',myqth,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%nr',QSONR,[rfReplaceAll, rfIgnoreCase]);
|
||||
stx_sh := StringReplace(stx,'9','N',[rfReplaceAll, rfIgnoreCase]);
|
||||
stx_sh := StringReplace(stx_sh,'0','T',[rfReplaceAll, rfIgnoreCase]);//replace zeros, too
|
||||
|
||||
Result := StringReplace(Result,'%rs',rst_sh,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%r',rst_s,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%n',HisName,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%c',call,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%h',HelloMsg,[rfReplaceAll, rfIgnoreCase]);
|
||||
con_ex := rst_sh;
|
||||
if stx_sh <>'' then con_ex:=con_ex+' '+stx_sh;
|
||||
if stx_str <>'' then con_ex:=con_ex+' '+stx_str;
|
||||
|
||||
if dmData.DebugLevel>=1 then Writeln('Sending:',Result)
|
||||
Result := StringReplace(Result,'%mc',mycall,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%ml',myloc,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%mn',myname,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%mq',myqth,[rfReplaceAll, rfIgnoreCase]);
|
||||
|
||||
Result := StringReplace(Result,'%xrs',con_ex,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%rs',rst_sh,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%r',rst_s,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%n',HisName,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%c',call,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%h',HelloMsg,[rfReplaceAll, rfIgnoreCase]);
|
||||
|
||||
Result := StringReplace(Result,'%xns',stx_sh,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%xn',stx,[rfReplaceAll, rfIgnoreCase]);
|
||||
Result := StringReplace(Result,'%xm',stx_str,[rfReplaceAll, rfIgnoreCase]);
|
||||
|
||||
if dmData.DebugLevel>=1 then Writeln('Sending:',Result)
|
||||
end;
|
||||
|
||||
function TdmUtils.RigGetcmd(r : String) : String;
|
||||
|
@ -10,7 +10,7 @@ object frmAddRadioMemory: TfrmAddRadioMemory
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poOwnerFormCenter
|
||||
LCLVersion = '1.8.4.0'
|
||||
LCLVersion = '2.0.0.4'
|
||||
object lblFreq: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
@ -102,7 +102,7 @@ object frmAddRadioMemory: TfrmAddRadioMemory
|
||||
BorderSpacing.Right = 12
|
||||
Caption = 'OK'
|
||||
OnClick = Button1Click
|
||||
TabOrder = 3
|
||||
TabOrder = 4
|
||||
end
|
||||
object Button2: TButton
|
||||
AnchorSideTop.Control = Button1
|
||||
@ -119,7 +119,7 @@ object frmAddRadioMemory: TfrmAddRadioMemory
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 4
|
||||
TabOrder = 5
|
||||
end
|
||||
object lblInfo: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
@ -144,6 +144,6 @@ object frmAddRadioMemory: TfrmAddRadioMemory
|
||||
Width = 284
|
||||
BorderSpacing.Left = 12
|
||||
MaxLength = 25
|
||||
TabOrder = 5
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
||||
|
@ -1,14 +1,13 @@
|
||||
object frmAdifImport: TfrmAdifImport
|
||||
Left = 93
|
||||
Height = 367
|
||||
Top = 336
|
||||
Width = 444
|
||||
ActiveControl = chkLotOfQSO
|
||||
Left = 308
|
||||
Height = 365
|
||||
Top = 413
|
||||
Width = 387
|
||||
BorderIcons = [biSystemMenu]
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Importing ADIF file'
|
||||
ClientHeight = 367
|
||||
ClientWidth = 444
|
||||
ClientHeight = 365
|
||||
ClientWidth = 387
|
||||
Icon.Data = {
|
||||
BE0C00000000010001002020000001001800A80C000016000000280000002000
|
||||
0000400000000100180000000000000C00006400000064000000000000000000
|
||||
@ -117,186 +116,30 @@ object frmAdifImport: TfrmAdifImport
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '2.0.0.2'
|
||||
object Label1: TLabel
|
||||
Left = 6
|
||||
Height = 15
|
||||
Top = 3
|
||||
Width = 23
|
||||
Caption = 'File:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblFileName: TLabel
|
||||
Left = 38
|
||||
Height = 15
|
||||
Top = 3
|
||||
Width = 68
|
||||
Caption = 'lblFileName'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 6
|
||||
Height = 15
|
||||
Top = 30
|
||||
Width = 40
|
||||
Caption = 'Errors:'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 152
|
||||
Height = 15
|
||||
Top = 30
|
||||
Width = 64
|
||||
Caption = 'Importing:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblErrors: TLabel
|
||||
Left = 64
|
||||
Height = 15
|
||||
Top = 30
|
||||
Width = 50
|
||||
Alignment = taRightJustify
|
||||
Caption = 'lblErrors'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblCount: TLabel
|
||||
Left = 232
|
||||
Height = 15
|
||||
Top = 30
|
||||
Width = 50
|
||||
Caption = 'lblCount'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 128
|
||||
Width = 55
|
||||
Caption = 'Remarks:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblComplete: TLabel
|
||||
Left = 373
|
||||
Height = 15
|
||||
Top = 146
|
||||
Width = 62
|
||||
Caption = 'Complete!'
|
||||
Font.Color = clRed
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
Visible = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 192
|
||||
Width = 66
|
||||
Caption = 'QTH Profile'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblErrorLog: TLabel
|
||||
Left = 6
|
||||
Height = 1
|
||||
Top = 56
|
||||
Width = 1
|
||||
ParentColor = False
|
||||
end
|
||||
object btnImport: TButton
|
||||
Left = 368
|
||||
Height = 25
|
||||
Top = 187
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Import'
|
||||
OnClick = btnImportClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtRemarks: TEdit
|
||||
Left = 8
|
||||
Height = 32
|
||||
Top = 152
|
||||
Width = 145
|
||||
TabOrder = 1
|
||||
end
|
||||
object cmbProfiles: TComboBox
|
||||
Left = 8
|
||||
Height = 32
|
||||
Top = 216
|
||||
Width = 334
|
||||
ItemHeight = 0
|
||||
TabOrder = 2
|
||||
Text = 'cmbProfiles'
|
||||
end
|
||||
object chkLotOfQSO: TCheckBox
|
||||
Left = 8
|
||||
Height = 23
|
||||
Top = 88
|
||||
Width = 276
|
||||
Caption = 'ADIF file contains more than 10 000 QSO'
|
||||
TabOrder = 3
|
||||
end
|
||||
object sb: TStatusBar
|
||||
Left = 0
|
||||
Height = 17
|
||||
Top = 350
|
||||
Width = 444
|
||||
Panels = <
|
||||
item
|
||||
Width = 200
|
||||
end>
|
||||
SimplePanel = False
|
||||
end
|
||||
object btnClose: TButton
|
||||
Left = 368
|
||||
Height = 25
|
||||
Top = 219
|
||||
Width = 75
|
||||
Caption = 'Close'
|
||||
ModalResult = 2
|
||||
TabOrder = 5
|
||||
end
|
||||
object chkFilterDateRange: TCheckBox
|
||||
AnchorSideTop.Control = cmbProfiles
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 23
|
||||
Top = 266
|
||||
Width = 202
|
||||
BorderSpacing.Top = 18
|
||||
Caption = 'Filter: only import date range'
|
||||
OnChange = chkFilterDateRangeChange
|
||||
TabOrder = 6
|
||||
end
|
||||
LCLVersion = '2.0.0.4'
|
||||
object pnlFilterDateRange: TPanel
|
||||
AnchorSideTop.Control = chkFilterDateRange
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = pnlAll
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 8
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 45
|
||||
Top = 295
|
||||
Width = 334
|
||||
BorderSpacing.Top = 6
|
||||
Top = 287
|
||||
Width = 387
|
||||
Alignment = taLeftJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 45
|
||||
ClientWidth = 334
|
||||
ClientWidth = 387
|
||||
Enabled = False
|
||||
TabOrder = 7
|
||||
object lblDateFrom: TLabel
|
||||
AnchorSideTop.Control = edtDateFrom
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 6
|
||||
Height = 15
|
||||
Top = 15
|
||||
Width = 28
|
||||
Caption = 'from'
|
||||
ParentColor = False
|
||||
end
|
||||
TabOrder = 0
|
||||
object lblDateTo: TLabel
|
||||
AnchorSideLeft.Control = edtDateFrom
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtDateTo
|
||||
AnchorSideTop.Control = pnlFilterDateRange
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 155
|
||||
Left = 158
|
||||
Height = 15
|
||||
Top = 15
|
||||
Width = 12
|
||||
@ -307,14 +150,16 @@ object frmAdifImport: TfrmAdifImport
|
||||
object edtDateFrom: TDateEdit
|
||||
AnchorSideLeft.Control = lblDateFrom
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
Left = 40
|
||||
AnchorSideTop.Control = pnlFilterDateRange
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 43
|
||||
Height = 32
|
||||
Top = 6
|
||||
Width = 103
|
||||
CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
|
||||
DateOrder = doYMd
|
||||
ButtonWidth = 23
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Left = 12
|
||||
NumGlyphs = 1
|
||||
MaxLength = 10
|
||||
TabOrder = 0
|
||||
@ -323,82 +168,331 @@ object frmAdifImport: TfrmAdifImport
|
||||
object edtDateTo: TDateEdit
|
||||
AnchorSideLeft.Control = lblDateTo
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
Left = 173
|
||||
AnchorSideTop.Control = pnlFilterDateRange
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 182
|
||||
Height = 32
|
||||
Top = 6
|
||||
Width = 103
|
||||
CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
|
||||
DateOrder = doYMd
|
||||
ButtonWidth = 23
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Left = 12
|
||||
NumGlyphs = 1
|
||||
MaxLength = 10
|
||||
TabOrder = 1
|
||||
Text = ' . . '
|
||||
end
|
||||
object lblDateFrom: TLabel
|
||||
AnchorSideLeft.Control = pnlFilterDateRange
|
||||
AnchorSideTop.Control = pnlFilterDateRange
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 3
|
||||
Height = 15
|
||||
Top = 15
|
||||
Width = 28
|
||||
BorderSpacing.Left = 3
|
||||
Caption = 'from'
|
||||
ParentColor = False
|
||||
end
|
||||
end
|
||||
object lblFilteredOut: TLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 298
|
||||
Height = 15
|
||||
Top = 30
|
||||
Width = 72
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Filtered out:'
|
||||
ParentColor = False
|
||||
object pnlAll: TPanel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 287
|
||||
Top = 0
|
||||
Width = 387
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ClientHeight = 287
|
||||
ClientWidth = 387
|
||||
TabOrder = 1
|
||||
object lbFile: TLabel
|
||||
AnchorSideLeft.Control = pnlAll
|
||||
AnchorSideTop.Control = pnlAll
|
||||
Left = 4
|
||||
Height = 15
|
||||
Top = 13
|
||||
Width = 23
|
||||
BorderSpacing.Left = 3
|
||||
BorderSpacing.Top = 12
|
||||
Caption = 'File:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblFileName: TLabel
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lbFile
|
||||
Left = 33
|
||||
Height = 15
|
||||
Top = 13
|
||||
Width = 68
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'lblFileName'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblError: TLabel
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = lbFile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 15
|
||||
Top = 34
|
||||
Width = 40
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Errors:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblImport: TLabel
|
||||
AnchorSideLeft.Control = lblErrors
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblError
|
||||
Left = 126
|
||||
Height = 15
|
||||
Top = 34
|
||||
Width = 64
|
||||
BorderSpacing.Left = 26
|
||||
Caption = 'Importing:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblErrors: TLabel
|
||||
AnchorSideLeft.Control = lblError
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblError
|
||||
Left = 50
|
||||
Height = 15
|
||||
Top = 34
|
||||
Width = 50
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'lblErrors'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblCount: TLabel
|
||||
AnchorSideLeft.Control = lblImport
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblImport
|
||||
Left = 196
|
||||
Height = 15
|
||||
Top = 34
|
||||
Width = 50
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'lblCount'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblRemaks: TLabel
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = chkLotOfQSO
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 15
|
||||
Top = 133
|
||||
Width = 55
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Remarks:'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblComplete: TLabel
|
||||
AnchorSideTop.Control = lbFile
|
||||
AnchorSideRight.Control = pnlAll
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 318
|
||||
Height = 15
|
||||
Top = 34
|
||||
Width = 62
|
||||
Anchors = [akRight]
|
||||
BorderSpacing.Right = 6
|
||||
Caption = 'Complete!'
|
||||
Font.Color = clRed
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
Visible = False
|
||||
end
|
||||
object lblQthProfile: TLabel
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = edtRemarks
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 15
|
||||
Top = 188
|
||||
Width = 66
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'QTH Profile'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblErrorLog: TLabel
|
||||
Left = 6
|
||||
Height = 1
|
||||
Top = 56
|
||||
Width = 1
|
||||
ParentColor = False
|
||||
end
|
||||
object btnImport: TButton
|
||||
AnchorSideTop.Control = chkNoCheckOnDuplicates
|
||||
AnchorSideRight.Control = pnlAll
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 305
|
||||
Height = 25
|
||||
Top = 81
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
BorderSpacing.Bottom = 6
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Import'
|
||||
OnClick = btnImportClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtRemarks: TEdit
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = lblRemaks
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 34
|
||||
Top = 148
|
||||
Width = 145
|
||||
AutoSize = False
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnClose: TButton
|
||||
AnchorSideTop.Control = btnImport
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = pnlAll
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 305
|
||||
Height = 25
|
||||
Top = 112
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Right = 6
|
||||
BorderSpacing.Bottom = 6
|
||||
Caption = 'Close'
|
||||
ModalResult = 2
|
||||
TabOrder = 2
|
||||
end
|
||||
object chkFilterDateRange: TCheckBox
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = cmbProfiles
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 23
|
||||
Top = 241
|
||||
Width = 202
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Filter: only import date range'
|
||||
OnChange = chkFilterDateRangeChange
|
||||
TabOrder = 3
|
||||
end
|
||||
object lblFilteredOut: TLabel
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = lblError
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 15
|
||||
Top = 55
|
||||
Width = 72
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Filtered out:'
|
||||
ParentColor = False
|
||||
end
|
||||
object cmbProfiles: TComboBox
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = lblQthProfile
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 32
|
||||
Top = 203
|
||||
Width = 334
|
||||
ItemHeight = 0
|
||||
TabOrder = 4
|
||||
end
|
||||
object chkLotOfQSO: TCheckBox
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = chkNoCheckOnDuplicates
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 23
|
||||
Top = 104
|
||||
Width = 276
|
||||
Caption = 'ADIF file contains more than 10 000 QSO'
|
||||
TabOrder = 5
|
||||
end
|
||||
object lblFilteredOutCount: TLabel
|
||||
AnchorSideLeft.Control = lblFilteredOut
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblFilteredOut
|
||||
Left = 82
|
||||
Height = 15
|
||||
Top = 55
|
||||
Width = 116
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'lblFilteredOutCount'
|
||||
ParentColor = False
|
||||
end
|
||||
object chkNoCheckOnDuplicates: TCheckBox
|
||||
AnchorSideLeft.Control = lbFile
|
||||
AnchorSideTop.Control = lblError
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 4
|
||||
Height = 23
|
||||
Top = 81
|
||||
Width = 266
|
||||
BorderSpacing.Top = 32
|
||||
Caption = 'No Check For Duplicates (faster Import)'
|
||||
TabOrder = 6
|
||||
end
|
||||
end
|
||||
object lblFilteredOutCount: TLabel
|
||||
AnchorSideLeft.Control = lblFilteredOut
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblFilteredOut
|
||||
Left = 388
|
||||
Height = 15
|
||||
Top = 30
|
||||
Width = 116
|
||||
BorderSpacing.Left = 18
|
||||
Caption = 'lblFilteredOutCount'
|
||||
ParentColor = False
|
||||
end
|
||||
object chkNoCheckOnDuplicates: TCheckBox
|
||||
Left = 8
|
||||
Height = 23
|
||||
Top = 64
|
||||
Width = 266
|
||||
Caption = 'No Check For Duplicates (faster Import)'
|
||||
TabOrder = 8
|
||||
object sb: TStatusBar
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideBottom.Control = Owner
|
||||
Left = 0
|
||||
Height = 25
|
||||
Top = 340
|
||||
Width = 387
|
||||
AutoSize = False
|
||||
BorderSpacing.InnerBorder = 3
|
||||
Panels = <
|
||||
item
|
||||
Width = 200
|
||||
end>
|
||||
SimplePanel = False
|
||||
end
|
||||
object tr: TSQLTransaction
|
||||
Active = False
|
||||
Action = caNone
|
||||
left = 118
|
||||
top = 184
|
||||
left = 152
|
||||
top = 144
|
||||
end
|
||||
object Q1: TSQLQuery
|
||||
FieldDefs = <>
|
||||
Transaction = tr
|
||||
Params = <>
|
||||
left = 170
|
||||
top = 184
|
||||
left = 184
|
||||
top = 144
|
||||
end
|
||||
object Q2: TSQLQuery
|
||||
FieldDefs = <>
|
||||
Transaction = tr
|
||||
Params = <>
|
||||
left = 219
|
||||
top = 184
|
||||
left = 216
|
||||
top = 144
|
||||
end
|
||||
object Q3: TSQLQuery
|
||||
FieldDefs = <>
|
||||
Transaction = tr
|
||||
Params = <>
|
||||
left = 267
|
||||
top = 184
|
||||
left = 248
|
||||
top = 144
|
||||
end
|
||||
object Q4: TSQLQuery
|
||||
FieldDefs = <>
|
||||
Transaction = tr
|
||||
Params = <>
|
||||
left = 315
|
||||
top = 184
|
||||
left = 280
|
||||
top = 144
|
||||
end
|
||||
end
|
||||
|
@ -64,6 +64,7 @@ type TnewQSOEntry=record //represents a new qso entry in the log
|
||||
SRX_STRING:string[250];
|
||||
STX:string[6];
|
||||
STX_STRING:string[250];
|
||||
CONTEST_ID:string[250];
|
||||
TIME_OFF:string[5];
|
||||
TIME_ON:string[5];
|
||||
TX_PWR:string[5];
|
||||
@ -87,29 +88,30 @@ type
|
||||
{ TfrmAdifImport }
|
||||
|
||||
TfrmAdifImport = class(TForm)
|
||||
btnImport: TButton;
|
||||
btnClose: TButton;
|
||||
chkNoCheckOnDuplicates: TCheckBox;
|
||||
btnImport: TButton;
|
||||
chkFilterDateRange: TCheckBox;
|
||||
chkLotOfQSO: TCheckBox;
|
||||
chkNoCheckOnDuplicates: TCheckBox;
|
||||
cmbProfiles: TComboBox;
|
||||
edtDateFrom: TDateEdit;
|
||||
edtDateTo: TDateEdit;
|
||||
edtRemarks: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
Label4: TLabel;
|
||||
Label5: TLabel;
|
||||
lblFilteredOut: TLabel;
|
||||
lblFilteredOutCount: TLabel;
|
||||
lblDateFrom: TLabel;
|
||||
lblDateTo: TLabel;
|
||||
lblErrorLog: TLabel;
|
||||
lbFile: TLabel;
|
||||
lblComplete: TLabel;
|
||||
lblCount: TLabel;
|
||||
lblDateFrom: TLabel;
|
||||
lblError: TLabel;
|
||||
lblErrorLog: TLabel;
|
||||
lblErrors: TLabel;
|
||||
lblFileName: TLabel;
|
||||
lblFilteredOut: TLabel;
|
||||
lblFilteredOutCount: TLabel;
|
||||
lblImport: TLabel;
|
||||
lblDateTo: TLabel;
|
||||
lblQthProfile: TLabel;
|
||||
lblRemaks: TLabel;
|
||||
pnlAll: TPanel;
|
||||
pnlFilterDateRange: TPanel;
|
||||
Q1: TSQLQuery;
|
||||
Q2: TSQLQuery;
|
||||
@ -122,6 +124,7 @@ type
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure btnImportClick(Sender: TObject);
|
||||
private
|
||||
AbortImport : boolean;
|
||||
ERR_FILE : String;
|
||||
WrongRecNr : Integer;
|
||||
RecNR : Integer;
|
||||
@ -265,6 +268,7 @@ function TfrmAdifImport.fillTypeVariableWithTagData(h:longint;var data:string;va
|
||||
h_SRX_STRING:d.SRX_STRING:=data;
|
||||
h_STX:d.STX:=data;
|
||||
h_STX_STRING:d.STX_STRING:=data;
|
||||
h_CONTEST_ID:d.CONTEST_ID:=data;
|
||||
h_TIME_OFF:d.TIME_OFF:=data;
|
||||
h_TIME_ON:d.TIME_ON:=data;
|
||||
h_TX_PWR:d.TX_PWR:=data;
|
||||
@ -477,24 +481,30 @@ begin
|
||||
dmData.Q.Close;
|
||||
dmData.Q.SQL.Text := 'SELECT COUNT(*) FROM cqrlog_main WHERE qsodate = ' + QuotedStr(d.QSO_DATE) +
|
||||
' AND time_on = ' + QuotedStr(d.TIME_ON) + ' AND callsign = '+QuotedStr(d.CALL);
|
||||
if dmData.DebugLevel >=1 then
|
||||
begin
|
||||
Writeln(dmData.Q.SQL.Text)
|
||||
end;
|
||||
|
||||
if dmData.DebugLevel >=1 then Writeln(dmData.Q.SQL.Text);
|
||||
if dmData.trQ.Active then
|
||||
dmData.trQ.Rollback;
|
||||
dmData.trQ.StartTransaction;
|
||||
dmData.Q.Open;
|
||||
if dmData.Q.Fields[0].AsInteger > 0 then
|
||||
begin
|
||||
if Application.MessageBox('It looks like this QSOs are in the log.'#13'Do you really want to import it again?',
|
||||
'Question',MB_ICONQUESTION + MB_YESNO) = idNo then
|
||||
begin
|
||||
btnImport.Enabled := True;
|
||||
dmData.Q.Close();
|
||||
dmData.trQ.Rollback;
|
||||
exit
|
||||
end
|
||||
case Application.MessageBox('It looks like this QSO is in the log.'#13'Do you really want to import it again?',
|
||||
'Question',MB_ICONQUESTION + MB_YESNOCANCEL) of
|
||||
idNo :begin
|
||||
btnImport.Enabled := True;
|
||||
dmData.Q.Close();
|
||||
dmData.trQ.Rollback;
|
||||
exit;
|
||||
end;
|
||||
idCancel :begin
|
||||
btnImport.Enabled := True;
|
||||
dmData.Q.Close();
|
||||
dmData.trQ.Rollback;
|
||||
AbortImport :=true;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
dmData.Q.Close();
|
||||
dmData.trQ.Rollback
|
||||
@ -521,12 +531,13 @@ begin
|
||||
'rst_s,rst_r,name,qth,qsl_s,qsl_r,qsl_via,iota,pwr,itu,waz,loc,my_loc,'+
|
||||
'remarks,county,adif,idcall,award,band,state,cont,profile,lotw_qslsdate,lotw_qsls,'+
|
||||
'lotw_qslrdate,lotw_qslr,qsls_date,qslr_date,eqsl_qslsdate,eqsl_qsl_sent,'+
|
||||
'eqsl_qslrdate,eqsl_qsl_rcvd, prop_mode, satellite, rxfreq) values('+
|
||||
'eqsl_qslrdate,eqsl_qsl_rcvd, prop_mode, satellite, rxfreq, stx, srx, stx_string, srx_string, contestname) values('+
|
||||
':qsodate,:time_on,:time_off,:callsign,:freq,:mode,:rst_s,:rst_r,:name,:qth,'+
|
||||
':qsl_s,:qsl_r,:qsl_via,:iota,:pwr,:itu,:waz,:loc,:my_loc,:remarks,:county,:adif,'+
|
||||
':idcall,:award,:band,:state,:cont,:profile,:lotw_qslsdate,:lotw_qsls,:lotw_qslrdate,'+
|
||||
':lotw_qslr,:qsls_date,:qslr_date,:eqsl_qslsdate,:eqsl_qsl_sent,:eqsl_qslrdate,'+
|
||||
':eqsl_qsl_rcvd, :prop_mode, :satellite, :rxfreq)';
|
||||
':eqsl_qsl_rcvd, :prop_mode, :satellite, :rxfreq, :stx, :srx, :stx_string, :srx_string,'+
|
||||
':contestname)';
|
||||
if dmData.DebugLevel >=1 then Writeln(Q1.SQL.Text);
|
||||
Q1.Prepare;
|
||||
Q1.Params[0].AsString := d.QSO_DATE;
|
||||
@ -645,6 +656,12 @@ begin
|
||||
else
|
||||
Q1.Params[40].AsFloat := 0;
|
||||
|
||||
Q1.Params[41].AsString := d.STX;
|
||||
Q1.Params[42].AsString := d.SRX;
|
||||
Q1.Params[43].AsString := d.STX_STRING;
|
||||
Q1.Params[44].AsString := d.SRX_STRING;
|
||||
Q1.Params[45].AsString := d.CONTEST_ID;
|
||||
|
||||
if dmData.DebugLevel >=1 then Writeln(Q1.SQL.Text);
|
||||
Q1.ExecSQL;
|
||||
inc(RecNR);
|
||||
@ -670,6 +687,7 @@ var
|
||||
ErrText : String = '';
|
||||
tmp : String='';
|
||||
begin
|
||||
AbortImport := false;
|
||||
lblComplete.Visible := False;
|
||||
GlobalProfile := dmData.GetNRFromProfile(cmbProfiles.Text);
|
||||
FMyPower := cqrini.ReadString('NewQSO', 'PWR', '5 W');
|
||||
@ -695,14 +713,14 @@ begin
|
||||
sb.Panels[0].Text := 'Importing data ...';
|
||||
Application.ProcessMessages;
|
||||
Repaint;
|
||||
while not eof(textFileIn) do
|
||||
while not eof(textFileIn) and not (AbortImport)do
|
||||
begin
|
||||
readln(textFileIn,oneTextRow);
|
||||
if Pos('<EOH>',UpperCase(oneTextRow)) > 0 then
|
||||
tmp := ''
|
||||
else
|
||||
tmp := tmp + oneTextRow;
|
||||
while getNextAdifTag(oneTextRow,adifTag,data) do
|
||||
while getNextAdifTag(oneTextRow,adifTag,data) and not (AbortImport) do
|
||||
begin
|
||||
h:=generateAdifTagHash(adifTag);
|
||||
if (h=h_EOH) or (h=h_EOR) then
|
||||
@ -729,7 +747,7 @@ begin
|
||||
tr.Commit;
|
||||
dt := dt - now;
|
||||
DecodeTime(dt,hh,m,s,ms);
|
||||
WriteLn('It takes about ',m,' minutes and ',s,' seconds ',ms,' milliseconds');
|
||||
if dmData.DebugLevel >=1 then WriteLn('It takes about ',m,' minutes and ',s,' seconds ',ms,' milliseconds');
|
||||
lblCount.Caption := IntToStr(RecNR);
|
||||
lblFilteredOut.Visible := FFilterByDate;
|
||||
lblFilteredOutCount.Visible := FFilterByDate;
|
||||
@ -803,7 +821,7 @@ var
|
||||
i : Integer;
|
||||
begin
|
||||
for i:= 0 to Length(lines)-1 do
|
||||
WriteLn(lines[i]);
|
||||
if dmData.DebugLevel >=1 then WriteLn(lines[i]);
|
||||
|
||||
if FileExists(dmData.UsrHomeDir + ERR_FILE) then
|
||||
begin
|
||||
@ -839,3 +857,4 @@ end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
|
@ -35,8 +35,9 @@ uses dUtils,fNewQSO;
|
||||
|
||||
procedure TfrmCWKeys.SendCWMessage(cwkey : String);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage(cwkey,frmNewQSO.edtCall.Text,frmNewQSO.edtHisRST.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''))
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage(cwkey,frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWKeys.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
|
@ -127,7 +127,8 @@ end;
|
||||
procedure TfrmCWType.btnF1MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F1',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF1MouseLeave(Sender: TObject);
|
||||
@ -138,19 +139,22 @@ end;
|
||||
procedure TfrmCWType.btnF2Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F2',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF10MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F10',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF10Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F10',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF10MouseLeave(Sender: TObject);
|
||||
@ -161,13 +165,15 @@ end;
|
||||
procedure TfrmCWType.btnF1Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F1',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF2MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F2',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF2MouseLeave(Sender: TObject);
|
||||
@ -178,13 +184,15 @@ end;
|
||||
procedure TfrmCWType.btnF3Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F3',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF3MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F3',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'')
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF3MouseLeave(Sender: TObject);
|
||||
@ -195,13 +203,15 @@ end;
|
||||
procedure TfrmCWType.btnF4Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F4',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF4MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F4',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'')
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF4MouseLeave(Sender: TObject);
|
||||
@ -212,13 +222,15 @@ end;
|
||||
procedure TfrmCWType.btnF5Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F5',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF5MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F5',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'')
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF5MouseLeave(Sender: TObject);
|
||||
@ -229,13 +241,15 @@ end;
|
||||
procedure TfrmCWType.btnF6Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F6',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF6MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F6',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF6MouseLeave(Sender: TObject);
|
||||
@ -246,13 +260,15 @@ end;
|
||||
procedure TfrmCWType.btnF7Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F7',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF7MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F7',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'')
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF7MouseLeave(Sender: TObject);
|
||||
@ -263,13 +279,15 @@ end;
|
||||
procedure TfrmCWType.btnF8Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F8',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF8MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F8',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF8MouseLeave(Sender: TObject);
|
||||
@ -280,13 +298,15 @@ end;
|
||||
procedure TfrmCWType.btnF9Click(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage('F9',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF9MouseEnter(Sender: TObject);
|
||||
begin
|
||||
frmCWType.lblToShowMouseOverText.Caption:=dmUtils.GetCWMessage('F9',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfrmCWType.btnF9MouseLeave(Sender: TObject);
|
||||
@ -495,7 +515,8 @@ begin
|
||||
if (key >= VK_F1) and (key <= VK_F10) then
|
||||
begin
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage(dmUtils.GetDescKeyFromCode(key),frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''))
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
|
||||
if Key = VK_ESCAPE then
|
||||
|
481
src/fContest.lfm
@ -1,23 +1,26 @@
|
||||
object frmContest: TfrmContest
|
||||
Left = 474
|
||||
Height = 111
|
||||
Top = 429
|
||||
Width = 696
|
||||
Height = 127
|
||||
Top = 155
|
||||
Width = 688
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/contest.html'
|
||||
Caption = 'Contest'
|
||||
ClientHeight = 111
|
||||
ClientWidth = 696
|
||||
ClientHeight = 127
|
||||
ClientWidth = 688
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnHide = FormHide
|
||||
OnKeyDown = FormKeyDown
|
||||
OnShow = FormShow
|
||||
LCLVersion = '1.6.4.0'
|
||||
LCLVersion = '2.0.0.4'
|
||||
object edtCall: TEdit
|
||||
Left = 10
|
||||
Height = 32
|
||||
Top = 27
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = lblCall
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 34
|
||||
Top = 53
|
||||
Width = 140
|
||||
AutoSelect = False
|
||||
CharCase = ecUppercase
|
||||
@ -27,182 +30,257 @@ object frmContest: TfrmContest
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtRSTs: TEdit
|
||||
Left = 151
|
||||
Height = 32
|
||||
Top = 27
|
||||
AnchorSideLeft.Control = edtCall
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtCall
|
||||
Left = 157
|
||||
Height = 34
|
||||
Top = 53
|
||||
Width = 50
|
||||
OnKeyDown = edtCallKeyDown
|
||||
TabOrder = 5
|
||||
end
|
||||
object edtSTX: TEdit
|
||||
Left = 202
|
||||
Height = 32
|
||||
Top = 27
|
||||
AnchorSideLeft.Control = edtRSTs
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtRSTs
|
||||
Left = 207
|
||||
Height = 34
|
||||
Hint = 'contest serial number sent, max 6 characters'
|
||||
Top = 53
|
||||
Width = 50
|
||||
MaxLength = 6
|
||||
OnExit = edtSTXExit
|
||||
OnKeyDown = edtCallKeyDown
|
||||
OnKeyPress = edtSTXKeyPress
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 6
|
||||
end
|
||||
object edtSTX2: TEdit
|
||||
Left = 253
|
||||
Height = 32
|
||||
Top = 27
|
||||
object edtSTX_str: TEdit
|
||||
AnchorSideLeft.Control = edtSTX
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtSTX
|
||||
Left = 257
|
||||
Height = 34
|
||||
Hint = 'contest exchange message sent, max 50 characters'
|
||||
Top = 53
|
||||
Width = 100
|
||||
OnExit = edtSTX2Exit
|
||||
MaxLength = 50
|
||||
OnExit = edtSTX_strExit
|
||||
OnKeyDown = edtCallKeyDown
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 7
|
||||
end
|
||||
object edtRSTr: TEdit
|
||||
Left = 370
|
||||
Height = 32
|
||||
Top = 27
|
||||
AnchorSideLeft.Control = edtSTX_str
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtSTX_str
|
||||
Left = 373
|
||||
Height = 34
|
||||
Top = 53
|
||||
Width = 50
|
||||
BorderSpacing.Left = 16
|
||||
OnKeyDown = edtCallKeyDown
|
||||
TabOrder = 4
|
||||
end
|
||||
object edtSRX: TEdit
|
||||
Left = 421
|
||||
Height = 32
|
||||
Top = 27
|
||||
AnchorSideLeft.Control = edtRSTr
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtRSTr
|
||||
Left = 423
|
||||
Height = 34
|
||||
Hint = 'contest serial number received, max 6 characters'
|
||||
Top = 53
|
||||
Width = 50
|
||||
MaxLength = 6
|
||||
OnExit = edtSRXExit
|
||||
OnKeyDown = edtCallKeyDown
|
||||
OnKeyPress = edtSTXKeyPress
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object btSave: TButton
|
||||
Left = 592
|
||||
AnchorSideLeft.Control = edtSRX2
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblMSGr
|
||||
Left = 589
|
||||
Height = 30
|
||||
Top = 8
|
||||
Top = 36
|
||||
Width = 80
|
||||
BorderSpacing.Left = 16
|
||||
Caption = 'Save QSO'
|
||||
OnClick = btSaveClick
|
||||
TabOrder = 3
|
||||
end
|
||||
object edtSRX2: TEdit
|
||||
Left = 472
|
||||
Height = 32
|
||||
Top = 27
|
||||
AnchorSideLeft.Control = edtSRX
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = edtRSTr
|
||||
Left = 473
|
||||
Height = 34
|
||||
Hint = 'contest exchange message sent, max 50 characters'
|
||||
Top = 53
|
||||
Width = 100
|
||||
CharCase = ecUppercase
|
||||
MaxLength = 50
|
||||
OnKeyDown = edtCallKeyDown
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object lblCall: TLabel
|
||||
Left = 16
|
||||
Height = 15
|
||||
Top = 10
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = cmbContestName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 17
|
||||
Top = 36
|
||||
Width = 25
|
||||
BorderSpacing.Top = 1
|
||||
Caption = 'Call'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblRSTs: TLabel
|
||||
Left = 160
|
||||
Height = 15
|
||||
Top = 10
|
||||
AnchorSideTop.Control = lblCall
|
||||
Left = 161
|
||||
Height = 17
|
||||
Top = 36
|
||||
Width = 36
|
||||
Caption = 'RST s'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblMSGs: TLabel
|
||||
Left = 256
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 40
|
||||
AnchorSideTop.Control = lblNRs
|
||||
Left = 257
|
||||
Height = 17
|
||||
Top = 36
|
||||
Width = 41
|
||||
Caption = 'MSG s'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblRSTr: TLabel
|
||||
Left = 376
|
||||
Height = 15
|
||||
Top = 10
|
||||
AnchorSideTop.Control = lblMSGs
|
||||
Left = 377
|
||||
Height = 17
|
||||
Top = 36
|
||||
Width = 34
|
||||
Caption = 'RST r'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblNRr: TLabel
|
||||
Left = 424
|
||||
Height = 15
|
||||
Top = 10
|
||||
AnchorSideTop.Control = lblRSTr
|
||||
Left = 425
|
||||
Height = 17
|
||||
Top = 36
|
||||
Width = 28
|
||||
Caption = 'NR r'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblMSGr: TLabel
|
||||
Left = 480
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 38
|
||||
AnchorSideTop.Control = lblNRr
|
||||
Left = 481
|
||||
Height = 17
|
||||
Top = 36
|
||||
Width = 39
|
||||
Caption = 'MSG r'
|
||||
ParentColor = False
|
||||
end
|
||||
object chNRInc: TCheckBox
|
||||
Left = 202
|
||||
AnchorSideLeft.Control = edtSTX
|
||||
AnchorSideTop.Control = chTrueRST
|
||||
Left = 207
|
||||
Height = 23
|
||||
Top = 56
|
||||
Top = 87
|
||||
Width = 45
|
||||
Caption = 'Inc'
|
||||
OnClick = chNRIncClick
|
||||
TabOrder = 8
|
||||
TabStop = False
|
||||
end
|
||||
object lblNRs: TLabel
|
||||
Left = 208
|
||||
Height = 15
|
||||
Top = 10
|
||||
AnchorSideTop.Control = lblRSTs
|
||||
Left = 209
|
||||
Height = 17
|
||||
Top = 36
|
||||
Width = 30
|
||||
Caption = 'NR s'
|
||||
ParentColor = False
|
||||
end
|
||||
object chLoc: TCheckBox
|
||||
Left = 472
|
||||
AnchorSideLeft.Control = edtSRX2
|
||||
AnchorSideTop.Control = chNoNr
|
||||
Left = 473
|
||||
Height = 23
|
||||
Top = 56
|
||||
Width = 100
|
||||
Top = 87
|
||||
Width = 101
|
||||
Caption = 'MSG is LOC'
|
||||
TabOrder = 9
|
||||
TabStop = False
|
||||
end
|
||||
object chSpace: TCheckBox
|
||||
Left = 16
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = edtCall
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 17
|
||||
Height = 23
|
||||
Top = 56
|
||||
Top = 87
|
||||
Width = 111
|
||||
Caption = 'SPACE is TAB'
|
||||
TabOrder = 10
|
||||
TabStop = False
|
||||
end
|
||||
object chNoNr: TCheckBox
|
||||
Left = 424
|
||||
AnchorSideLeft.Control = edtSRX
|
||||
AnchorSideTop.Control = chNRInc
|
||||
Left = 423
|
||||
Height = 23
|
||||
Top = 56
|
||||
Top = 87
|
||||
Width = 44
|
||||
Caption = 'No'
|
||||
OnChange = chNoNrChange
|
||||
TabOrder = 11
|
||||
TabStop = False
|
||||
end
|
||||
object chTrueRST: TCheckBox
|
||||
Left = 153
|
||||
AnchorSideLeft.Control = edtRSTs
|
||||
AnchorSideTop.Control = chSpace
|
||||
Left = 157
|
||||
Height = 23
|
||||
Top = 56
|
||||
Top = 87
|
||||
Width = 45
|
||||
Caption = 'Tru'
|
||||
OnChange = chTrueRSTChange
|
||||
TabOrder = 12
|
||||
TabStop = False
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 592
|
||||
AnchorSideLeft.Control = btSave
|
||||
AnchorSideTop.Control = btSave
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 589
|
||||
Height = 30
|
||||
Top = 48
|
||||
Top = 68
|
||||
Width = 80
|
||||
BorderSpacing.Top = 2
|
||||
Caption = 'Clear all'
|
||||
OnClick = Button1Click
|
||||
TabOrder = 13
|
||||
end
|
||||
object btnHelp: TSpeedButton
|
||||
Left = 672
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 660
|
||||
Height = 22
|
||||
Hint = 'Help'
|
||||
Top = 89
|
||||
Width = 23
|
||||
Anchors = [akRight, akBottom]
|
||||
Top = 3
|
||||
Width = 25
|
||||
Anchors = [akTop, akRight, akBottom]
|
||||
BorderSpacing.Top = 3
|
||||
BorderSpacing.Right = 3
|
||||
Glyph.Data = {
|
||||
F6030000424DF6030000000000003600000028000000100000000F0000000100
|
||||
200000000000C003000064000000640000000000000000000000FFFFFF00FFFF
|
||||
@ -239,10 +317,267 @@ object frmContest: TfrmContest
|
||||
}
|
||||
OnClick = btnHelpClick
|
||||
end
|
||||
object lblContestName: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = cmbContestName
|
||||
Left = 17
|
||||
Height = 17
|
||||
Top = 1
|
||||
Width = 87
|
||||
BorderSpacing.Left = 17
|
||||
Caption = 'Contestname'
|
||||
ParentColor = False
|
||||
end
|
||||
object cmbContestName: TComboBox
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 110
|
||||
Height = 34
|
||||
Hint = 'contestname, choose ADIF contest_id via combobox or type freestyle max 40 characters'
|
||||
Top = 1
|
||||
Width = 432
|
||||
AutoComplete = True
|
||||
AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 1
|
||||
ItemHeight = 0
|
||||
Items.Strings = (
|
||||
'070-160M-SPRINT'
|
||||
'070-3-DAY'
|
||||
'070-31-FLAVORS'
|
||||
'070-40M-SPRINT'
|
||||
'070-80M-SPRINT'
|
||||
'070-PSKFEST'
|
||||
'070-ST-PATS-DAY'
|
||||
'070-VALENTINE-SPRINT'
|
||||
'10-RTTY'
|
||||
'1010-OPEN-SEASON'
|
||||
'7QP'
|
||||
'AL-QSO-PARTY'
|
||||
'ALL-ASIAN-DX-CW'
|
||||
'ALL-ASIAN-DX-PHONE'
|
||||
'ANARTS-RTTY'
|
||||
'ANATOLIAN-RTTY'
|
||||
'AP-SPRINT'
|
||||
'AR-QSO-PARTY'
|
||||
'ARI-DX'
|
||||
'ARRL-10'
|
||||
'ARRL-160'
|
||||
'ARRL-222'
|
||||
'ARRL-DX-CW'
|
||||
'ARRL-DX-SSB'
|
||||
'ARRL-EME'
|
||||
'ARRL-FIELD-DAY'
|
||||
'ARRL-RR-CW'
|
||||
'ARRL-RR-RTTY'
|
||||
'ARRL-RR-SSB'
|
||||
'ARRL-RTTY'
|
||||
'ARRL-SCR'
|
||||
'ARRL-SS-CW'
|
||||
'ARRL-SS-SSB'
|
||||
'ARRL-UHF-AUG'
|
||||
'ARRL-VHF-JAN'
|
||||
'ARRL-VHF-JUN'
|
||||
'ARRL-VHF-SEP'
|
||||
'AZ-QSO-PARTY'
|
||||
'BARTG-RTTY'
|
||||
'BARTG-SPRINT'
|
||||
'BC-QSO-PARTY'
|
||||
'CA-QSO-PARTY'
|
||||
'CIS-DX'
|
||||
'CO-QSO-PARTY'
|
||||
'CQ-160-CW'
|
||||
'CQ-160-SSB'
|
||||
'CQ-M'
|
||||
'CQ-VHF'
|
||||
'CQ-WPX-CW'
|
||||
'CQ-WPX-RTTY'
|
||||
'CQ-WPX-SSB'
|
||||
'CQ-WW-CW'
|
||||
'CQ-WW-RTTY'
|
||||
'CQ-WW-SSB'
|
||||
'CT-QSO-PARTY'
|
||||
'CVA-DX-CW'
|
||||
'CVA-DX-SSB'
|
||||
'CWOPS-CW-OPEN'
|
||||
'CWOPS-CWT'
|
||||
'DARC-WAEDC-CW'
|
||||
'DARC-WAEDC-RTTY'
|
||||
'DARC-WAEDC-SSB'
|
||||
'DARC-WAG'
|
||||
'DE-QSO-PARTY'
|
||||
'DL-DX-RTTY'
|
||||
'DMC-RTTY'
|
||||
'EA-CNCW'
|
||||
'EA-DME'
|
||||
'EA-PSK63'
|
||||
'EA-RTTY (import-only)'
|
||||
'EA-SMRE-CW'
|
||||
'EA-SMRE-SSB'
|
||||
'EA-VHF-ATLANTIC'
|
||||
'EA-VHF-COM'
|
||||
'EA-VHF-COSTA-SOL'
|
||||
'EA-VHF-EA'
|
||||
'EA-VHF-EA1RCS'
|
||||
'EA-VHF-QSL'
|
||||
'EA-VHF-SADURNI'
|
||||
'EA-WW-RTTY'
|
||||
'EPC-PSK63'
|
||||
'EU Sprint'
|
||||
'EU-HF'
|
||||
'EU-PSK-DX'
|
||||
'EUCW160M'
|
||||
'FALL SPRINT'
|
||||
'FL-QSO-PARTY'
|
||||
'GA-QSO-PARTY'
|
||||
'HA-DX'
|
||||
'HELVETIA'
|
||||
'HI-QSO-PARTY'
|
||||
'HOLYLAND'
|
||||
'IA-QSO-PARTY'
|
||||
'IARU-FIELD-DAY'
|
||||
'IARU-HF'
|
||||
'ID-QSO-PARTY'
|
||||
'IL QSO Party'
|
||||
'IN-QSO-PARTY'
|
||||
'JARTS-WW-RTTY'
|
||||
'JIDX-CW'
|
||||
'JIDX-SSB'
|
||||
'JT-DX-RTTY'
|
||||
'KS-QSO-PARTY'
|
||||
'KY-QSO-PARTY'
|
||||
'LA-QSO-PARTY'
|
||||
'LDC-RTTY'
|
||||
'LZ DX'
|
||||
'MAR-QSO-PARTY'
|
||||
'MD-QSO-PARTY'
|
||||
'ME-QSO-PARTY'
|
||||
'MI-QSO-PARTY'
|
||||
'MIDATLANTIC-QSO-PARTY'
|
||||
'MN-QSO-PARTY'
|
||||
'MO-QSO-PARTY'
|
||||
'MS-QSO-PARTY'
|
||||
'MT-QSO-PARTY'
|
||||
'NA-SPRINT-CW'
|
||||
'NA-SPRINT-RTTY'
|
||||
'NA-SPRINT-SSB'
|
||||
'NAQP-CW'
|
||||
'NAQP-RTTY'
|
||||
'NAQP-SSB'
|
||||
'NC-QSO-PARTY'
|
||||
'ND-QSO-PARTY'
|
||||
'NE-QSO-PARTY'
|
||||
'NEQP'
|
||||
'NH-QSO-PARTY'
|
||||
'NJ-QSO-PARTY'
|
||||
'NM-QSO-PARTY'
|
||||
'NRAU-BALTIC-CW'
|
||||
'NRAU-BALTIC-SSB'
|
||||
'NV-QSO-PARTY'
|
||||
'NY-QSO-PARTY'
|
||||
'OCEANIA-DX-CW'
|
||||
'OCEANIA-DX-SSB'
|
||||
'OH-QSO-PARTY'
|
||||
'OK-DX-RTTY'
|
||||
'OK-OM-DX'
|
||||
'OK-QSO-PARTY'
|
||||
'OMISS-QSO-PARTY'
|
||||
'ON-QSO-PARTY'
|
||||
'OR-QSO-PARTY'
|
||||
'PA-QSO-PARTY'
|
||||
'PACC'
|
||||
'PSK-DEATHMATCH'
|
||||
'QC-QSO-PARTY'
|
||||
'RAC (import-only)'
|
||||
'RAC-CANADA-DAY'
|
||||
'RAC-CANADA-WINTER'
|
||||
'RDAC'
|
||||
'RDXC'
|
||||
'REF-160M'
|
||||
'REF-CW'
|
||||
'REF-SSB'
|
||||
'REP-PORTUGAL-DAY-HF'
|
||||
'RI-QSO-PARTY'
|
||||
'RSGB-160'
|
||||
'RSGB-21/28-CW'
|
||||
'RSGB-21/28-SSB'
|
||||
'RSGB-80M-CC'
|
||||
'RSGB-AFS-CW'
|
||||
'RSGB-AFS-SSB'
|
||||
'RSGB-CLUB-CALLS'
|
||||
'RSGB-COMMONWEALTH'
|
||||
'RSGB-IOTA'
|
||||
'RSGB-LOW-POWER'
|
||||
'RSGB-NFD'
|
||||
'RSGB-ROPOCO'
|
||||
'RSGB-SSB-FD'
|
||||
'RUSSIAN-RTTY'
|
||||
'SAC-CW'
|
||||
'SAC-SSB'
|
||||
'SARTG-RTTY'
|
||||
'SC-QSO-PARTY'
|
||||
'SCC-RTTY'
|
||||
'SD-QSO-PARTY'
|
||||
'SMP-AUG'
|
||||
'SMP-MAY'
|
||||
'SP-DX-RTTY'
|
||||
'SPAR-WINTER-FD'
|
||||
'SPDXContest'
|
||||
'SPRING SPRINT'
|
||||
'SR-MARATHON'
|
||||
'STEW-PERRY'
|
||||
'SUMMER SPRINT'
|
||||
'TARA-GRID-DIP'
|
||||
'TARA-RTTY'
|
||||
'TARA-RUMBLE'
|
||||
'TARA-SKIRMISH'
|
||||
'TEN-RTTY'
|
||||
'TMC-RTTY'
|
||||
'TN-QSO-PARTY'
|
||||
'TX-QSO-PARTY'
|
||||
'UBA-DX-CW'
|
||||
'UBA-DX-SSB'
|
||||
'UK-DX-BPSK63'
|
||||
'UK-DX-RTTY'
|
||||
'UKR-CHAMP-RTTY'
|
||||
'UKRAINIAN DX'
|
||||
'UKSMG-6M-MARATHON'
|
||||
'UKSMG-SUMMER-ES'
|
||||
'URE-DX (import-only)'
|
||||
'US-COUNTIES-QSO'
|
||||
'UT-QSO-PARTY'
|
||||
'VA-QSO-PARTY'
|
||||
'VENEZ-IND-DAY'
|
||||
'VIRGINIA QSO PARTY (import-only)'
|
||||
'VOLTA-RTTY'
|
||||
'WA-QSO-PARTY'
|
||||
'WI-QSO-PARTY'
|
||||
'WIA-HARRY ANGEL'
|
||||
'WIA-JMMFD'
|
||||
'WIA-OCDX'
|
||||
'WIA-REMEMBRANCE'
|
||||
'WIA-ROSS HULL'
|
||||
'WIA-TRANS TASMAN'
|
||||
'WIA-VHF/UHF FD'
|
||||
'WIA-VK SHIRES'
|
||||
'WINTER SPRINT'
|
||||
'WV-QSO-PARTY'
|
||||
'WY-QSO-PARTY'
|
||||
'XE-INTL-RTTY'
|
||||
'YOHFDX'
|
||||
'YUDXC'
|
||||
)
|
||||
MaxLength = 40
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 14
|
||||
TabStop = False
|
||||
end
|
||||
object tmrESC2: TTimer
|
||||
Enabled = False
|
||||
OnTimer = tmrESC2Timer
|
||||
left = 472
|
||||
top = 24
|
||||
left = 544
|
||||
top = 8
|
||||
end
|
||||
end
|
||||
|
@ -20,13 +20,15 @@ type
|
||||
chSpace: TCheckBox;
|
||||
chLoc: TCheckBox;
|
||||
chNRInc: TCheckBox;
|
||||
cmbContestName: TComboBox;
|
||||
edtCall: TEdit;
|
||||
edtRSTs: TEdit;
|
||||
edtSTX: TEdit;
|
||||
edtSTX2: TEdit;
|
||||
edtSTX_str: TEdit;
|
||||
edtRSTr: TEdit;
|
||||
edtSRX: TEdit;
|
||||
edtSRX2: TEdit;
|
||||
lblContestName: TLabel;
|
||||
lblCall: TLabel;
|
||||
lblRSTs: TLabel;
|
||||
lblMSGs: TLabel;
|
||||
@ -45,7 +47,7 @@ type
|
||||
procedure edtCallKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
|
||||
procedure edtCallKeyPress(Sender: TObject; var Key: char);
|
||||
procedure edtSRXExit(Sender: TObject);
|
||||
procedure edtSTX2Exit(Sender: TObject);
|
||||
procedure edtSTX_strExit(Sender: TObject);
|
||||
procedure edtSTXExit(Sender: TObject);
|
||||
procedure edtSTXKeyPress(Sender: TObject; var Key: char);
|
||||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
@ -63,6 +65,9 @@ type
|
||||
{ public declarations }
|
||||
end;
|
||||
|
||||
const
|
||||
C_CONTEST_LIST_FILE_NAME = 'ContestName.tab';
|
||||
|
||||
var
|
||||
frmContest: TfrmContest;
|
||||
RSTstx: string = ''; //contest mode serial numbers store
|
||||
@ -74,7 +79,7 @@ implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
uses dData, dUtils, fNewQSO;
|
||||
uses dData, dUtils, fNewQSO, fWorkedGrids, strutils;
|
||||
|
||||
procedure TfrmContest.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
|
||||
var
|
||||
@ -126,8 +131,9 @@ begin
|
||||
else
|
||||
if Assigned(frmNewQSO.CWint) then
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage(
|
||||
dmUtils.GetDescKeyFromCode(Key), frmNewQSO.edtCall.Text, frmNewQSO.edtHisRST.Text,
|
||||
frmNewQSO.edtName.Text, frmNewQSO.lblGreeting.Caption, ''));
|
||||
dmUtils.GetDescKeyFromCode(Key),frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
key := 0;
|
||||
end;
|
||||
|
||||
@ -158,8 +164,31 @@ end;
|
||||
|
||||
procedure TfrmContest.edtCallExit(Sender: TObject);
|
||||
begin
|
||||
// if frmNewQSO is in viewmode or editmode it overwrites old data or will not save
|
||||
// because saving is disabled in view mode. this if statement starts a fresh newqso form
|
||||
if frmNewQSO.ViewQSO or frmNewQSO.EditQSO then
|
||||
begin
|
||||
frmNewQSO.Caption := dmUtils.GetNewQSOCaption('New QSO');
|
||||
frmNewQSO.UnsetEditLabel;
|
||||
frmNewQSO.BringToFront;
|
||||
frmNewQSO.ClearAll;
|
||||
edtCallExit(nil);
|
||||
end;
|
||||
|
||||
frmNewQSO.edtCall.Text := edtCall.Text;
|
||||
|
||||
//dupe check
|
||||
if frmWorkedGrids.WkdCall(edtCall.Text, dmUtils.GetBandFromFreq(frmNewQSO.cmbFreq.Text) ,frmNewQSO.cmbMode.Text) = 1 then
|
||||
Begin //dupe
|
||||
edtCall.Font.Color:=clRed;
|
||||
edtCall.Font.Style:= [fsBold];
|
||||
end
|
||||
else
|
||||
Begin //clear dupe if user press 1xESC and change call not to be dupe
|
||||
edtCall.Font.Color:=clDefault;
|
||||
edtCall.Font.Style:= [];
|
||||
end;
|
||||
|
||||
//report in NEwQSO changes to 59 to late (after passing cmbMode)
|
||||
//NOTE! if mode is not in list program dies! In that case skip next
|
||||
if frmNewQSO.cmbMode.ItemIndex >=0 then
|
||||
@ -172,7 +201,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
frmNewQSO.edtHisRST.Text := edtRSTs.Text + ' ' + edtSTX.Text + ' ' + edtSTX2.Text;
|
||||
frmNewQSO.edtHisRST.Text := edtRSTs.Text;
|
||||
frmNewQSO.edtContestSerialSent.Text := edtSTX.Text;
|
||||
frmNewQSO.edtContestExchangeMessageSent.Text := edtSTX_str.Text;
|
||||
//so that CW macros work
|
||||
frmNewQSO.edtCallExit(nil);
|
||||
frmContest.ShowOnTop;
|
||||
@ -181,15 +212,16 @@ end;
|
||||
|
||||
procedure TfrmContest.btSaveClick(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.edtHisRST.Text := edtRSTs.Text + ' ' + edtSTX.Text + ' ' + edtSTX2.Text;
|
||||
//this should be ok before
|
||||
if chLoc.Checked then
|
||||
begin
|
||||
frmNewQSO.edtMyRST.Text := edtRSTr.Text + ' ' + edtSRX.Text;
|
||||
frmNewQSO.edtGrid.Text := edtSRX2.Text;
|
||||
end
|
||||
else
|
||||
frmNewQSO.edtMyRST.Text := edtRSTr.Text + ' ' + edtSRX.Text + ' ' + edtSRX2.Text;
|
||||
|
||||
frmNewQSO.edtHisRST.Text := edtRSTs.Text;
|
||||
frmNewQSO.edtMyRST.Text := edtRSTr.Text;
|
||||
frmNewQSO.edtContestSerialReceived.Text := edtSRX.Text;
|
||||
frmNewQSO.edtContestSerialSent.Text := edtSTX.Text;
|
||||
frmNewQSO.edtContestExchangeMessageReceived.Text := edtSRX2.Text;
|
||||
frmNewQSO.edtContestExchangeMessageSent.Text := edtSTX_str.Text;
|
||||
frmNewQSO.edtContestName.Text := ExtractWord(1,cmbContestName.Text,['|']);
|
||||
|
||||
frmNewQSO.btnSave.Click;
|
||||
if dmData.DebugLevel >= 1 then
|
||||
@ -292,7 +324,7 @@ begin
|
||||
ChkSerialNrUpd(False); //just save it
|
||||
end;
|
||||
|
||||
procedure TfrmContest.edtSTX2Exit(Sender: TObject);
|
||||
procedure TfrmContest.edtSTX_strExit(Sender: TObject);
|
||||
begin
|
||||
ChkSerialNrUpd(False); //just save it
|
||||
end;
|
||||
@ -310,24 +342,44 @@ begin
|
||||
end;
|
||||
|
||||
procedure TfrmContest.FormCreate(Sender: TObject);
|
||||
var
|
||||
ListOfContests : TStringList;
|
||||
s: string;
|
||||
Contestfile :TextFile;
|
||||
begin
|
||||
frmContest.KeyPreview := True;
|
||||
// loading the contest list from ~/.config/cqrlog/ContestNames.tab
|
||||
// Format of File CONTEST_ID|CONTEST_DESCRIPTION
|
||||
// see ADIF 3.0.9 http://www.adif.org/309/ADIF_309.htm#Contest_ID
|
||||
// File have to be UTF8 without BOM
|
||||
ListOfContests:= TStringList.Create;
|
||||
ListOfContests.Clear;
|
||||
ListOfContests.Sorted:=True;
|
||||
if FileExists(dmData.HomeDir + C_CONTEST_LIST_FILE_NAME) then
|
||||
begin
|
||||
ListOfContests.LoadFromFile(dmData.HomeDir + C_CONTEST_LIST_FILE_NAME);
|
||||
cmbContestName.Clear;
|
||||
cmbContestName.Items := ListOfContests;
|
||||
cmbContestName.Items.Insert(0,'');
|
||||
end;
|
||||
ListOfContests.Free;
|
||||
end;
|
||||
|
||||
procedure TfrmContest.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
begin
|
||||
dmUtils.SaveWindowPos(frmContest);
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmContest.FormHide(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.gbContest.Visible := false;
|
||||
dmUtils.SaveWindowPos(frmContest);
|
||||
frmContest.Hide;
|
||||
end;
|
||||
|
||||
procedure TfrmContest.FormShow(Sender: TObject);
|
||||
begin
|
||||
frmNewQSO.gbContest.Visible := true;
|
||||
dmUtils.LoadWindowPos(frmContest);
|
||||
InitInput;
|
||||
end;
|
||||
@ -353,9 +405,11 @@ begin
|
||||
if not ((edtSTX.Text <> '') and (RSTstx = '')) then
|
||||
edtSTX.Text := RSTstx;
|
||||
|
||||
edtSTX2.Text := RSTstxAdd;
|
||||
edtSTX_str.Text := RSTstxAdd;
|
||||
edtSRX.Text := '';
|
||||
edtSRX2.Text := '';
|
||||
edtCall.Font.Color:=clDefault;
|
||||
edtCall.Font.Style:= [];
|
||||
edtCall.Clear;
|
||||
EscFirstTime := True;
|
||||
{
|
||||
@ -364,16 +418,10 @@ begin
|
||||
either (dbg msg:input finale):
|
||||
|
||||
NOTE: Window with stalled focus found!, faking focus-out event
|
||||
NOTE: Window with stalled focus found!, faking focus-out event
|
||||
NOTE: Window with stalled focus found!, faking focus-out event
|
||||
(cqrlog:2643): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed
|
||||
(cqrlog:2643): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed
|
||||
(cqrlog:2643): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed
|
||||
(cqrlog:2643): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed
|
||||
----
|
||||
or(dbg msg: Clear all done next focus ):
|
||||
|
||||
NOTE: Window with stalled focus found!, faking focus-out event
|
||||
NOTE: Window with stalled focus found!, faking focus-out event
|
||||
|
||||
----
|
||||
@ -424,7 +472,7 @@ begin
|
||||
end;
|
||||
|
||||
RSTstx := stx;
|
||||
RSTstxAdd := edtSTX2.Text;
|
||||
RSTstxAdd := edtSTX_str.Text;
|
||||
|
||||
if dmData.DebugLevel >= 1 then
|
||||
Writeln(' Inc number is: ', IncNr);
|
||||
|
@ -16,10 +16,13 @@ type
|
||||
btnOK : TButton;
|
||||
btnCancel : TButton;
|
||||
btnReSet: TButton;
|
||||
CheckBox1: TCheckBox;
|
||||
fraExportPref1 : TfraExportPref;
|
||||
procedure btnOKClick(Sender : TObject);
|
||||
procedure btnReSetClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender : TObject);
|
||||
procedure fraExportPref1Click(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
public
|
||||
@ -43,6 +46,11 @@ begin
|
||||
fraExportPref1.LoadExportPref
|
||||
end;
|
||||
|
||||
procedure TfrmExportPref.fraExportPref1Click(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmExportPref.btnOKClick(Sender : TObject);
|
||||
begin
|
||||
fraExportPref1.SaveExportPref;
|
||||
@ -58,5 +66,10 @@ begin
|
||||
AllChk := not AllChk;
|
||||
end;
|
||||
|
||||
procedure TfrmExportPref.FormCreate(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -25,7 +25,7 @@ type
|
||||
ExQSLVIA,ExIOTA,ExAward,ExLoc,ExMyLoc,ExPower,
|
||||
ExCounty,ExDXCC,ExRemarks,ExWAZ, ExITU,ExNote,ExState,ExProfile,
|
||||
ExLQslS,ExLQslSDate,ExLQslR,ExLQslRDate,ExCont,ExQSLSDate,ExQSLRDate,
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime,exProp, exRxFreq, exSatName: Boolean);
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime,exProp, exRxFreq, exSatName, exContest: Boolean);
|
||||
procedure ExportADIF;
|
||||
procedure ExportHTML;
|
||||
|
||||
@ -85,7 +85,7 @@ procedure TfrmExportProgress.FieldsForExport(var ExDate,ExTimeOn,ExTimeOff,ExCal
|
||||
ExQSLVIA,ExIOTA,ExAward,ExLoc,ExMyLoc,ExPower,
|
||||
ExCounty,ExDXCC,ExRemarks,ExWAZ, ExITU,ExNote,ExState,ExProfile,
|
||||
ExLQslS,ExLQslSDate,ExLQslR,ExLQslRDate,ExCont,ExQSLSDate,ExQSLRDate,
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime, exProp, exRxFreq, exSatName: Boolean);
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime, exProp, exRxFreq, exSatName, exContest: Boolean);
|
||||
begin
|
||||
exDate := cqrini.ReadBool('Export','Date',True);
|
||||
exTimeOn := cqrini.ReadBool('Export','time_on',True);
|
||||
@ -111,6 +111,7 @@ begin
|
||||
exWAZ := cqrini.ReadBool('Export','WAZ',False);
|
||||
exITU := cqrini.ReadBool('Export','ITU',False);
|
||||
exNote := cqrini.ReadBool('Export','Note',False);
|
||||
exContest := cqrini.ReadBool('Export','Contest',False);
|
||||
ExProfile := cqrini.ReadBool('Export','Profile',False);
|
||||
exState := cqrini.ReadBool('Export','State',False);
|
||||
ExLQslS := cqrini.ReadBool('Export','LQSLS',False);
|
||||
@ -149,14 +150,15 @@ var
|
||||
ExQSLVIA,ExIOTA,ExAward,ExLoc,ExMyLoc,ExPower,
|
||||
ExCounty,ExDXCC,ExRemarks,ExWAZ, ExITU,ExNote,ExState, ExProfile : Boolean;
|
||||
ExLQslS,ExLQslSDate,ExLQslR,ExLQslRDate,ExCont,ExQSLSDate,ExQSLRDate : Boolean;
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime,exProp, exRxFreq, exSatName : Boolean;
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime,exProp, exRxFreq, exSatName, exContest : Boolean;
|
||||
Source : TDataSet;
|
||||
FirstBackupPath : String;
|
||||
|
||||
procedure SaveData(qsodate,TimeOn,TimeOff,Call,Freq,Mode,RSTS,RSTR,sName,
|
||||
QTH,QSLS,QSLR,QSLVIA,IOTA,Power,Itu,waz,loc,Myloc,County,
|
||||
Award,Remarks,dxcc,state,band,profile,LQslS,LQslSDate,LQslR,LQslRDate,cont,
|
||||
QSLSDate,QSLRDate,eQslS,eQslSDate,eQslR,eQslRDate,PropMode, Satellite, RxFreq : String);
|
||||
QSLSDate,QSLRDate,eQslS,eQslSDate,eQslR,eQslRDate,PropMode, Satellite, RxFreq, stx,
|
||||
srx, stx_string, srx_string, contestname : String);
|
||||
|
||||
begin
|
||||
leng := 0;
|
||||
@ -212,88 +214,52 @@ var
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
if leng>200 then
|
||||
begin
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
if exRSTS then
|
||||
begin
|
||||
tmp := '<RST_SENT' + dmUtils.StringToADIF(ExtractWord(1,RSTS,[' ']));
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp);
|
||||
if leng>200 then
|
||||
begin
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
if length(RSTS)>3 then // there is something else
|
||||
Begin
|
||||
tmp:=ExtractWord(2,RSTS,[' ']); //contest NR
|
||||
if (tmp <>'') then
|
||||
Begin
|
||||
tmp := '<STX' + dmUtils.StringToADIF(tmp);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp);
|
||||
if leng>200 then
|
||||
begin
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
end;
|
||||
tmp:=ExtractWord(3,RSTS,[' ']); //Contest MSG
|
||||
if (tmp <>'') then
|
||||
Begin
|
||||
tmp := '<STX_STRING' + dmUtils.StringToADIF(tmp);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp);
|
||||
if leng>200 then
|
||||
begin
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if exRSTR then
|
||||
begin
|
||||
tmp := '<RST_RCVD' + dmUtils.StringToADIF(ExtractWord(1,RSTR,[' ']));
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp);
|
||||
if leng>200 then
|
||||
begin
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
if length(RSTR)>3 then // there is something else
|
||||
Begin
|
||||
tmp:=ExtractWord(2,RSTR,[' ']); //contest NR
|
||||
if (tmp <>'') then
|
||||
Begin
|
||||
tmp := '<SRX' + dmUtils.StringToADIF(tmp);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp);
|
||||
if leng>200 then
|
||||
begin
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
end;
|
||||
tmp:=ExtractWord(3,RSTR,[' ']); //Contest MSG
|
||||
if (tmp <>'') then
|
||||
Begin
|
||||
tmp := '<SRX_STRING' + dmUtils.StringToADIF(tmp);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp);
|
||||
if leng>200 then
|
||||
begin
|
||||
Writeln(f);
|
||||
leng := 0
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
//DL7OAP Contest Fields
|
||||
if exContest then
|
||||
begin
|
||||
if Length(stx) > 0 then
|
||||
begin
|
||||
tmp := '<STX' + dmUtils.StringToADIF(stx);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp)
|
||||
end;
|
||||
if Length(srx) > 0 then
|
||||
begin
|
||||
tmp := '<SRX' + dmUtils.StringToADIF(srx);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp)
|
||||
end;
|
||||
if Length(stx_string) > 0 then
|
||||
begin
|
||||
tmp := '<STX_STRING' + dmUtils.StringToADIF(stx_string);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp)
|
||||
end;
|
||||
if Length(srx_string) > 0 then
|
||||
begin
|
||||
tmp := '<SRX_STRING' + dmUtils.StringToADIF(srx_string);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp)
|
||||
end;
|
||||
if Length(contestname) > 0 then
|
||||
begin
|
||||
tmp := '<CONTEST_ID' + dmUtils.StringToADIF(contestname);
|
||||
Write(f,tmp);
|
||||
leng := leng + Length(tmp)
|
||||
end;
|
||||
end;
|
||||
|
||||
if exName then
|
||||
begin
|
||||
@ -614,7 +580,7 @@ begin
|
||||
ExQSLVIA,ExIOTA,ExAward,ExLoc,ExMyLoc,ExPower,
|
||||
ExCounty,ExDXCC,ExRemarks,ExWAZ,ExITU,ExNote,ExState,ExProfile,
|
||||
ExLQslS,ExLQslSDate,ExLQslR,ExLQslRDate,ExCont,ExQSLSDate,ExQSLRDate,
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,ExAscTime,exProp, exRxFreq, exSatName)
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,ExAscTime,exProp, exRxFreq, exSatName, exContest)
|
||||
else begin
|
||||
ExDate := True;ExTimeOn := True;ExTimeOff := True;ExCall := True;ExMode := True;
|
||||
ExFreq := True;ExRSTS := True;ExRSTR := True;ExName := True;ExQTH := True;ExQSLS := True;ExQSLR := True;
|
||||
@ -622,7 +588,7 @@ begin
|
||||
ExCounty := True;ExDXCC := True;ExRemarks := True;ExWAZ := True;ExITU := True;ExNote := True;ExState := True;ExProfile := True;
|
||||
ExLQslS := True;ExLQslSDate := True;ExLQslR := True;ExLQslRDate := True; ExCont := True;
|
||||
ExeQslS := True;ExeQslSDate := True;ExeQslR := True;ExeQslRDate := True; exAscTime := False;
|
||||
exProp := True; exRxFreq := True; exSatName := True;
|
||||
exProp := True; exRxFreq := True; exSatName := True; exContest := True;
|
||||
|
||||
if not DirectoryExistsUTF8(dmData.HomeDir + 'tmp') then
|
||||
CreateDirUTF8(dmData.HomeDir + 'tmp');
|
||||
@ -732,7 +698,12 @@ begin
|
||||
eqsl_qslrdate,
|
||||
Source.FieldByName('prop_mode').AsString,
|
||||
Source.FieldByName('satellite').AsString,
|
||||
FloatToStr(Source.FieldByName('RxFreq').AsFloat)
|
||||
FloatToStr(Source.FieldByName('RxFreq').AsFloat),
|
||||
Source.FieldByName('stx').AsString,
|
||||
Source.FieldByName('srx').AsString,
|
||||
Source.FieldByName('stx_string').AsString,
|
||||
Source.FieldByName('srx_string').AsString,
|
||||
Source.FieldByName('contestname').AsString
|
||||
);
|
||||
pBarProg.StepIt;
|
||||
if (i mod 100 = 0) then
|
||||
@ -809,12 +780,13 @@ var
|
||||
ExQSLVIA,ExIOTA,ExAward,ExLoc,ExMyLoc,ExPower,
|
||||
ExCounty,ExDXCC,ExRemarks,ExWAZ, ExITU,ExNote, exState, ExProfile : Boolean;
|
||||
ExLQslS,ExLQslSDate,ExLQslR,ExLQslRDate,ExCont,ExQSLSDate, ExQSLRDate : Boolean;
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime,exProp, exRxFreq, exSatName : Boolean;
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime,exProp, exRxFreq, exSatName, exContest : Boolean;
|
||||
|
||||
procedure SaveData(qsodate,TimeOn,TimeOff,Call,Freq,Mode,RSTS,RSTR,sName,
|
||||
QTH,QSLS,QSLR,QSLVIA,IOTA,Power,Itu,waz,loc,Myloc,County,
|
||||
Award,Remarks,dxcc,state,band,profile,LQslS,LQslSDate,LQslR,LQslRDate,cont,
|
||||
QSLSDate,QSLRDate,eQslS,eQslSDate,eQslR,eQslRDate,PropMode, Satellite, RxFreq : String);
|
||||
QSLSDate,QSLRDate,eQslS,eQslSDate,eQslR,eQslRDate,PropMode, Satellite, RxFreq, stx,
|
||||
srx, stx_string, srx_string, contestname : String);
|
||||
|
||||
begin
|
||||
Writeln(f,'<tr>');
|
||||
@ -1060,6 +1032,29 @@ var
|
||||
Writeln(f, '<td>'+Satellite+'</td>')
|
||||
end;
|
||||
|
||||
if exContest then
|
||||
begin
|
||||
if (contestname='') then
|
||||
contestname:=' ';
|
||||
Writeln(f, '<td>'+contestname+'</td>');
|
||||
|
||||
if (srx='') then
|
||||
srx:=' ';
|
||||
Writeln(f, '<td>'+srx+'</td>');
|
||||
|
||||
if (srx_string='') then
|
||||
srx_string:=' ';
|
||||
Writeln(f, '<td>'+srx_string+'</td>');
|
||||
|
||||
if (stx='') then
|
||||
stx:=' ';
|
||||
Writeln(f, '<td>'+stx+'</td>');
|
||||
|
||||
if (stx_string='') then
|
||||
stx_string:=' ';
|
||||
Writeln(f, '<td>'+stx_string+'</td>');
|
||||
end;
|
||||
|
||||
Writeln(f,'</tr>')
|
||||
end;
|
||||
begin
|
||||
@ -1070,7 +1065,7 @@ begin
|
||||
ExQSLVIA,ExIOTA,ExAward,ExLoc,ExMyLoc,ExPower,
|
||||
ExCounty,ExDXCC,ExRemarks,ExWAZ, ExITU,ExNote, ExState,
|
||||
ExProfile,ExLQslS,ExLQslSDate,ExLQslR,ExLQslRDate,ExCont,ExQSLSDate,ExQSLRDate,
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime, exProp, exRxFreq, exSatName);
|
||||
ExeQslS,ExeQslSDate,ExeQslR,ExeQslRDate,exAscTime, exProp, exRxFreq, exSatName, exContest);
|
||||
|
||||
AssignFile(f, FileName);
|
||||
Rewrite(f);
|
||||
@ -1263,6 +1258,20 @@ begin
|
||||
Write(f,'<td width="'+cqrini.ReadString('Export','WSatName','50')+
|
||||
'" bgcolor="#333366" class="hlava"><div align="center" class="popis">Satellite</div></td>');
|
||||
|
||||
if exContest then
|
||||
begin
|
||||
//DL7OAP new Contest fields
|
||||
Write(f,'<td width=50'+
|
||||
'" bgcolor="#333366" class="hlava"><div align="center" class="popis">Contestname</div></td>');
|
||||
Write(f,'<td width=50'+
|
||||
'" bgcolor="#333366" class="hlava"><div align="center" class="popis">SRX</div></td>');
|
||||
Write(f,'<td width=50'+
|
||||
'" bgcolor="#333366" class="hlava"><div align="center" class="popis">SRX_STRING</div></td>');
|
||||
Write(f,'<td width=50'+
|
||||
'" bgcolor="#333366" class="hlava"><div align="center" class="popis">STX</div></td>');
|
||||
Write(f,'<td width=50'+
|
||||
'" bgcolor="#333366" class="hlava"><div align="center" class="popis">STX_STRING</div></td>');
|
||||
end;
|
||||
|
||||
Writeln(f,'</tr>');
|
||||
|
||||
@ -1357,7 +1366,12 @@ begin
|
||||
eqsl_qslrdate,
|
||||
Source.FieldByName('prop_mode').AsString,
|
||||
Source.FieldByName('satellite').AsString,
|
||||
FloatToStr(Source.FieldByName('RxFreq').AsFloat)
|
||||
FloatToStr(Source.FieldByName('RxFreq').AsFloat),
|
||||
Source.FieldByName('stx').AsString,
|
||||
Source.FieldByName('srx').AsString,
|
||||
Source.FieldByName('stx_string').AsString,
|
||||
Source.FieldByName('srx_string').AsString,
|
||||
Source.FieldByName('contestname').AsString
|
||||
);
|
||||
pBarProg.StepIt;
|
||||
if (i mod 100 = 0) then
|
||||
|
529
src/fFilter.lfm
@ -1,7 +1,7 @@
|
||||
object frmFilter: TfrmFilter
|
||||
Left = 272
|
||||
Left = 161
|
||||
Height = 658
|
||||
Top = 79
|
||||
Top = 20
|
||||
Width = 817
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/h23.html#ah22'
|
||||
@ -121,7 +121,7 @@ object frmFilter: TfrmFilter
|
||||
OnKeyUp = FormKeyUp
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '1.8.2.0'
|
||||
LCLVersion = '2.0.0.4'
|
||||
object lblProf: TLabel
|
||||
AnchorSideTop.Control = cmbProfile
|
||||
AnchorSideRight.Control = lblSortBy
|
||||
@ -223,13 +223,15 @@ object frmFilter: TfrmFilter
|
||||
end
|
||||
end
|
||||
object btnOK: TButton
|
||||
AnchorSideLeft.Control = btnSave
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cmbSort
|
||||
Left = 725
|
||||
AnchorSideRight.Control = gbIota
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 731
|
||||
Height = 26
|
||||
Top = 500
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'OK'
|
||||
@ -240,7 +242,7 @@ object frmFilter: TfrmFilter
|
||||
AnchorSideLeft.Control = btnOK
|
||||
AnchorSideTop.Control = btnOK
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 725
|
||||
Left = 731
|
||||
Height = 26
|
||||
Top = 532
|
||||
Width = 75
|
||||
@ -357,12 +359,12 @@ object frmFilter: TfrmFilter
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbCallsign
|
||||
Left = 492
|
||||
Height = 114
|
||||
Height = 56
|
||||
Top = 4
|
||||
Width = 154
|
||||
BorderSpacing.Left = 6
|
||||
Caption = ' Mode '
|
||||
ClientHeight = 96
|
||||
ClientHeight = 38
|
||||
ClientWidth = 152
|
||||
TabOrder = 5
|
||||
object cmbMode: TComboBox
|
||||
@ -370,11 +372,10 @@ object frmFilter: TfrmFilter
|
||||
AnchorSideTop.Control = gbMode
|
||||
Left = 6
|
||||
Height = 32
|
||||
Top = 6
|
||||
Top = 0
|
||||
Width = 130
|
||||
AutoSize = False
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
ItemHeight = 0
|
||||
TabOrder = 0
|
||||
end
|
||||
@ -834,16 +835,16 @@ object frmFilter: TfrmFilter
|
||||
end
|
||||
end
|
||||
object gbContinent: TGroupBox
|
||||
AnchorSideLeft.Control = gbZones
|
||||
AnchorSideLeft.Control = gbContestEx
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbLoc
|
||||
Left = 492
|
||||
Height = 114
|
||||
Left = 652
|
||||
Height = 56
|
||||
Top = 128
|
||||
Width = 154
|
||||
BorderSpacing.Left = 6
|
||||
Caption = ' Continent '
|
||||
ClientHeight = 96
|
||||
ClientHeight = 38
|
||||
ClientWidth = 152
|
||||
TabOrder = 10
|
||||
object edtCont: TEdit
|
||||
@ -851,10 +852,9 @@ object frmFilter: TfrmFilter
|
||||
AnchorSideTop.Control = gbContinent
|
||||
Left = 6
|
||||
Height = 34
|
||||
Top = 6
|
||||
Top = 0
|
||||
Width = 95
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
@ -1216,7 +1216,7 @@ object frmFilter: TfrmFilter
|
||||
AnchorSideLeft.Control = btnOK
|
||||
AnchorSideTop.Control = btnCancel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 725
|
||||
Left = 731
|
||||
Height = 26
|
||||
Top = 564
|
||||
Width = 75
|
||||
@ -1258,14 +1258,14 @@ object frmFilter: TfrmFilter
|
||||
TabOrder = 20
|
||||
end
|
||||
object btnSave: TButton
|
||||
AnchorSideLeft.Control = cmbSort
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cmbSort
|
||||
Left = 631
|
||||
AnchorSideLeft.Control = btClear
|
||||
AnchorSideTop.Control = btClear
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 650
|
||||
Height = 26
|
||||
Top = 500
|
||||
Width = 88
|
||||
BorderSpacing.Left = 155
|
||||
Top = 531
|
||||
Width = 75
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Save filter'
|
||||
OnClick = btnSaveClick
|
||||
@ -1275,10 +1275,10 @@ object frmFilter: TfrmFilter
|
||||
AnchorSideLeft.Control = btnSave
|
||||
AnchorSideTop.Control = btnSave
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 631
|
||||
Left = 650
|
||||
Height = 26
|
||||
Top = 532
|
||||
Width = 88
|
||||
Top = 563
|
||||
Width = 75
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Load filter'
|
||||
@ -1286,35 +1286,36 @@ object frmFilter: TfrmFilter
|
||||
TabOrder = 22
|
||||
end
|
||||
object gbState: TGroupBox
|
||||
AnchorSideLeft.Control = gbContinent
|
||||
AnchorSideLeft.Control = gbContestEx
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbLoc
|
||||
AnchorSideTop.Control = gbContinent
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 652
|
||||
Height = 114
|
||||
Top = 128
|
||||
Height = 56
|
||||
Top = 184
|
||||
Width = 154
|
||||
BorderSpacing.Left = 6
|
||||
Caption = ' State '
|
||||
ClientHeight = 96
|
||||
ClientHeight = 38
|
||||
ClientWidth = 152
|
||||
TabOrder = 23
|
||||
object edtState: TEdit
|
||||
AnchorSideLeft.Control = gbState
|
||||
AnchorSideTop.Control = gbState
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 34
|
||||
Top = 6
|
||||
Top = 0
|
||||
Width = 95
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
CharCase = ecUppercase
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
object cmbSort: TComboBox
|
||||
AnchorSideLeft.Control = GroupBox17
|
||||
AnchorSideLeft.Control = gbPower
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = GroupBox17
|
||||
AnchorSideTop.Control = gbPower
|
||||
Left = 276
|
||||
Height = 34
|
||||
Top = 500
|
||||
@ -1344,7 +1345,7 @@ object frmFilter: TfrmFilter
|
||||
TabOrder = 24
|
||||
Text = 'DXCC'
|
||||
end
|
||||
object GroupBox17: TGroupBox
|
||||
object gbPower: TGroupBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = gbAward
|
||||
AnchorSideTop.Side = asrBottom
|
||||
@ -1380,8 +1381,8 @@ object frmFilter: TfrmFilter
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtPwrFrom: TEdit
|
||||
AnchorSideTop.Control = GroupBox17
|
||||
AnchorSideRight.Control = GroupBox17
|
||||
AnchorSideTop.Control = gbPower
|
||||
AnchorSideRight.Control = gbPower
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 61
|
||||
Height = 34
|
||||
@ -1431,7 +1432,6 @@ object frmFilter: TfrmFilter
|
||||
ItemHeight = 0
|
||||
OnChange = cmbBandSelectorChange
|
||||
TabOrder = 0
|
||||
Text = 'cmbBandSelector'
|
||||
end
|
||||
object Label20: TLabel
|
||||
AnchorSideLeft.Control = cmbBandSelector
|
||||
@ -1447,29 +1447,452 @@ object frmFilter: TfrmFilter
|
||||
end
|
||||
end
|
||||
object chkNot: TCheckBox
|
||||
AnchorSideTop.Control = btnLoad
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = btnLoad
|
||||
AnchorSideLeft.Control = cmbSort
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cmbSort
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 665
|
||||
Left = 479
|
||||
Height = 23
|
||||
Top = 564
|
||||
Width = 54
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'NOT'
|
||||
Top = 500
|
||||
Width = 154
|
||||
BorderSpacing.Left = 3
|
||||
Caption = 'Reverse filter (NOT)'
|
||||
TabOrder = 27
|
||||
end
|
||||
object gbContestEx: TGroupBox
|
||||
AnchorSideLeft.Control = gbZones
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbZones
|
||||
Left = 492
|
||||
Height = 114
|
||||
Top = 128
|
||||
Width = 154
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'Contest Exchange'
|
||||
ClientHeight = 96
|
||||
ClientWidth = 152
|
||||
TabOrder = 28
|
||||
object edtSTX: TEdit
|
||||
AnchorSideLeft.Control = gbContestEx
|
||||
AnchorSideTop.Control = gbContestEx
|
||||
Left = 6
|
||||
Height = 34
|
||||
Hint = 'search for contest send serial number'
|
||||
Top = 6
|
||||
Width = 60
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtSRX: TEdit
|
||||
AnchorSideLeft.Control = gbContestEx
|
||||
AnchorSideTop.Control = edtSTX
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 34
|
||||
Hint = 'search for contest received serial number'
|
||||
Top = 41
|
||||
Width = 60
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 1
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object edtSTXstr: TEdit
|
||||
AnchorSideTop.Control = edtSTX
|
||||
AnchorSideRight.Control = gbContestEx
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 86
|
||||
Height = 34
|
||||
Hint = 'search for contest send message exchange'
|
||||
Top = 6
|
||||
Width = 60
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 6
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object edtSRXstr: TEdit
|
||||
AnchorSideTop.Control = edtSTXstr
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = edtSTXstr
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 86
|
||||
Height = 34
|
||||
Hint = 'search for contest received message exchange'
|
||||
Top = 41
|
||||
Width = 60
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Top = 1
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object lblContExS: TLabel
|
||||
AnchorSideLeft.Control = gbContestEx
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = edtSTX
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 72
|
||||
Height = 17
|
||||
Top = 15
|
||||
Width = 8
|
||||
Alignment = taCenter
|
||||
Caption = 'S'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblContxR: TLabel
|
||||
AnchorSideLeft.Control = gbContestEx
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = edtSRX
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 72
|
||||
Height = 17
|
||||
Top = 50
|
||||
Width = 9
|
||||
Alignment = taCenter
|
||||
Caption = 'R'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblContNR: TLabel
|
||||
AnchorSideLeft.Control = edtSRX
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = edtSRX
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 29
|
||||
Height = 17
|
||||
Top = 75
|
||||
Width = 15
|
||||
Alignment = taCenter
|
||||
Caption = 'Nr'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblContMsg: TLabel
|
||||
AnchorSideLeft.Control = edtSRXstr
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = edtSRXstr
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 103
|
||||
Height = 17
|
||||
Top = 75
|
||||
Width = 27
|
||||
Alignment = taCenter
|
||||
Caption = 'Msg'
|
||||
ParentColor = False
|
||||
end
|
||||
end
|
||||
object gbContName: TGroupBox
|
||||
AnchorSideLeft.Control = gbFreq
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = gbMode
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 492
|
||||
Height = 56
|
||||
Top = 60
|
||||
Width = 154
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'Contest name'
|
||||
ClientHeight = 38
|
||||
ClientWidth = 152
|
||||
TabOrder = 29
|
||||
object cmbContestName: TComboBox
|
||||
AnchorSideLeft.Control = gbContName
|
||||
AnchorSideTop.Control = gbContName
|
||||
Left = 6
|
||||
Height = 34
|
||||
Hint = 'contestname, choose ADIF contest_id via combobox or type freestyle max 40 characters'
|
||||
Top = 0
|
||||
Width = 90
|
||||
AutoComplete = True
|
||||
AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
|
||||
BorderSpacing.Left = 6
|
||||
ItemHeight = 0
|
||||
Items.Strings = (
|
||||
'070-160M-SPRINT'
|
||||
'070-3-DAY'
|
||||
'070-31-FLAVORS'
|
||||
'070-40M-SPRINT'
|
||||
'070-80M-SPRINT'
|
||||
'070-PSKFEST'
|
||||
'070-ST-PATS-DAY'
|
||||
'070-VALENTINE-SPRINT'
|
||||
'10-RTTY'
|
||||
'1010-OPEN-SEASON'
|
||||
'7QP'
|
||||
'AL-QSO-PARTY'
|
||||
'ALL-ASIAN-DX-CW'
|
||||
'ALL-ASIAN-DX-PHONE'
|
||||
'ANARTS-RTTY'
|
||||
'ANATOLIAN-RTTY'
|
||||
'AP-SPRINT'
|
||||
'AR-QSO-PARTY'
|
||||
'ARI-DX'
|
||||
'ARRL-10'
|
||||
'ARRL-160'
|
||||
'ARRL-222'
|
||||
'ARRL-DX-CW'
|
||||
'ARRL-DX-SSB'
|
||||
'ARRL-EME'
|
||||
'ARRL-FIELD-DAY'
|
||||
'ARRL-RR-CW'
|
||||
'ARRL-RR-RTTY'
|
||||
'ARRL-RR-SSB'
|
||||
'ARRL-RTTY'
|
||||
'ARRL-SCR'
|
||||
'ARRL-SS-CW'
|
||||
'ARRL-SS-SSB'
|
||||
'ARRL-UHF-AUG'
|
||||
'ARRL-VHF-JAN'
|
||||
'ARRL-VHF-JUN'
|
||||
'ARRL-VHF-SEP'
|
||||
'AZ-QSO-PARTY'
|
||||
'BARTG-RTTY'
|
||||
'BARTG-SPRINT'
|
||||
'BC-QSO-PARTY'
|
||||
'CA-QSO-PARTY'
|
||||
'CIS-DX'
|
||||
'CO-QSO-PARTY'
|
||||
'CQ-160-CW'
|
||||
'CQ-160-SSB'
|
||||
'CQ-M'
|
||||
'CQ-VHF'
|
||||
'CQ-WPX-CW'
|
||||
'CQ-WPX-RTTY'
|
||||
'CQ-WPX-SSB'
|
||||
'CQ-WW-CW'
|
||||
'CQ-WW-RTTY'
|
||||
'CQ-WW-SSB'
|
||||
'CT-QSO-PARTY'
|
||||
'CVA-DX-CW'
|
||||
'CVA-DX-SSB'
|
||||
'CWOPS-CW-OPEN'
|
||||
'CWOPS-CWT'
|
||||
'DARC-WAEDC-CW'
|
||||
'DARC-WAEDC-RTTY'
|
||||
'DARC-WAEDC-SSB'
|
||||
'DARC-WAG'
|
||||
'DE-QSO-PARTY'
|
||||
'DL-DX-RTTY'
|
||||
'DMC-RTTY'
|
||||
'EA-CNCW'
|
||||
'EA-DME'
|
||||
'EA-PSK63'
|
||||
'EA-RTTY (import-only)'
|
||||
'EA-SMRE-CW'
|
||||
'EA-SMRE-SSB'
|
||||
'EA-VHF-ATLANTIC'
|
||||
'EA-VHF-COM'
|
||||
'EA-VHF-COSTA-SOL'
|
||||
'EA-VHF-EA'
|
||||
'EA-VHF-EA1RCS'
|
||||
'EA-VHF-QSL'
|
||||
'EA-VHF-SADURNI'
|
||||
'EA-WW-RTTY'
|
||||
'EPC-PSK63'
|
||||
'EU Sprint'
|
||||
'EU-HF'
|
||||
'EU-PSK-DX'
|
||||
'EUCW160M'
|
||||
'FALL SPRINT'
|
||||
'FL-QSO-PARTY'
|
||||
'GA-QSO-PARTY'
|
||||
'HA-DX'
|
||||
'HELVETIA'
|
||||
'HI-QSO-PARTY'
|
||||
'HOLYLAND'
|
||||
'IA-QSO-PARTY'
|
||||
'IARU-FIELD-DAY'
|
||||
'IARU-HF'
|
||||
'ID-QSO-PARTY'
|
||||
'IL QSO Party'
|
||||
'IN-QSO-PARTY'
|
||||
'JARTS-WW-RTTY'
|
||||
'JIDX-CW'
|
||||
'JIDX-SSB'
|
||||
'JT-DX-RTTY'
|
||||
'KS-QSO-PARTY'
|
||||
'KY-QSO-PARTY'
|
||||
'LA-QSO-PARTY'
|
||||
'LDC-RTTY'
|
||||
'LZ DX'
|
||||
'MAR-QSO-PARTY'
|
||||
'MD-QSO-PARTY'
|
||||
'ME-QSO-PARTY'
|
||||
'MI-QSO-PARTY'
|
||||
'MIDATLANTIC-QSO-PARTY'
|
||||
'MN-QSO-PARTY'
|
||||
'MO-QSO-PARTY'
|
||||
'MS-QSO-PARTY'
|
||||
'MT-QSO-PARTY'
|
||||
'NA-SPRINT-CW'
|
||||
'NA-SPRINT-RTTY'
|
||||
'NA-SPRINT-SSB'
|
||||
'NAQP-CW'
|
||||
'NAQP-RTTY'
|
||||
'NAQP-SSB'
|
||||
'NC-QSO-PARTY'
|
||||
'ND-QSO-PARTY'
|
||||
'NE-QSO-PARTY'
|
||||
'NEQP'
|
||||
'NH-QSO-PARTY'
|
||||
'NJ-QSO-PARTY'
|
||||
'NM-QSO-PARTY'
|
||||
'NRAU-BALTIC-CW'
|
||||
'NRAU-BALTIC-SSB'
|
||||
'NV-QSO-PARTY'
|
||||
'NY-QSO-PARTY'
|
||||
'OCEANIA-DX-CW'
|
||||
'OCEANIA-DX-SSB'
|
||||
'OH-QSO-PARTY'
|
||||
'OK-DX-RTTY'
|
||||
'OK-OM-DX'
|
||||
'OK-QSO-PARTY'
|
||||
'OMISS-QSO-PARTY'
|
||||
'ON-QSO-PARTY'
|
||||
'OR-QSO-PARTY'
|
||||
'PA-QSO-PARTY'
|
||||
'PACC'
|
||||
'PSK-DEATHMATCH'
|
||||
'QC-QSO-PARTY'
|
||||
'RAC (import-only)'
|
||||
'RAC-CANADA-DAY'
|
||||
'RAC-CANADA-WINTER'
|
||||
'RDAC'
|
||||
'RDXC'
|
||||
'REF-160M'
|
||||
'REF-CW'
|
||||
'REF-SSB'
|
||||
'REP-PORTUGAL-DAY-HF'
|
||||
'RI-QSO-PARTY'
|
||||
'RSGB-160'
|
||||
'RSGB-21/28-CW'
|
||||
'RSGB-21/28-SSB'
|
||||
'RSGB-80M-CC'
|
||||
'RSGB-AFS-CW'
|
||||
'RSGB-AFS-SSB'
|
||||
'RSGB-CLUB-CALLS'
|
||||
'RSGB-COMMONWEALTH'
|
||||
'RSGB-IOTA'
|
||||
'RSGB-LOW-POWER'
|
||||
'RSGB-NFD'
|
||||
'RSGB-ROPOCO'
|
||||
'RSGB-SSB-FD'
|
||||
'RUSSIAN-RTTY'
|
||||
'SAC-CW'
|
||||
'SAC-SSB'
|
||||
'SARTG-RTTY'
|
||||
'SC-QSO-PARTY'
|
||||
'SCC-RTTY'
|
||||
'SD-QSO-PARTY'
|
||||
'SMP-AUG'
|
||||
'SMP-MAY'
|
||||
'SP-DX-RTTY'
|
||||
'SPAR-WINTER-FD'
|
||||
'SPDXContest'
|
||||
'SPRING SPRINT'
|
||||
'SR-MARATHON'
|
||||
'STEW-PERRY'
|
||||
'SUMMER SPRINT'
|
||||
'TARA-GRID-DIP'
|
||||
'TARA-RTTY'
|
||||
'TARA-RUMBLE'
|
||||
'TARA-SKIRMISH'
|
||||
'TEN-RTTY'
|
||||
'TMC-RTTY'
|
||||
'TN-QSO-PARTY'
|
||||
'TX-QSO-PARTY'
|
||||
'UBA-DX-CW'
|
||||
'UBA-DX-SSB'
|
||||
'UK-DX-BPSK63'
|
||||
'UK-DX-RTTY'
|
||||
'UKR-CHAMP-RTTY'
|
||||
'UKRAINIAN DX'
|
||||
'UKSMG-6M-MARATHON'
|
||||
'UKSMG-SUMMER-ES'
|
||||
'URE-DX (import-only)'
|
||||
'US-COUNTIES-QSO'
|
||||
'UT-QSO-PARTY'
|
||||
'VA-QSO-PARTY'
|
||||
'VENEZ-IND-DAY'
|
||||
'VIRGINIA QSO PARTY (import-only)'
|
||||
'VOLTA-RTTY'
|
||||
'WA-QSO-PARTY'
|
||||
'WI-QSO-PARTY'
|
||||
'WIA-HARRY ANGEL'
|
||||
'WIA-JMMFD'
|
||||
'WIA-OCDX'
|
||||
'WIA-REMEMBRANCE'
|
||||
'WIA-ROSS HULL'
|
||||
'WIA-TRANS TASMAN'
|
||||
'WIA-VHF/UHF FD'
|
||||
'WIA-VK SHIRES'
|
||||
'WINTER SPRINT'
|
||||
'WV-QSO-PARTY'
|
||||
'WY-QSO-PARTY'
|
||||
'XE-INTL-RTTY'
|
||||
'YOHFDX'
|
||||
'YUDXC'
|
||||
)
|
||||
MaxLength = 40
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
TabStop = False
|
||||
end
|
||||
object cbIncConName: TCheckBox
|
||||
AnchorSideLeft.Control = cmbContestName
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cmbContestName
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 97
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 45
|
||||
BorderSpacing.Left = 1
|
||||
Caption = 'inc'
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
object btClear: TButton
|
||||
AnchorSideTop.Control = btnOK
|
||||
AnchorSideRight.Control = btnOK
|
||||
Left = 650
|
||||
Height = 25
|
||||
Top = 500
|
||||
Width = 75
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 3
|
||||
Caption = 'Clear filter'
|
||||
OnClick = btClearClick
|
||||
TabOrder = 30
|
||||
end
|
||||
object chkRemember: TCheckBox
|
||||
AnchorSideLeft.Control = cmbGroupBy
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cmbGroupBy
|
||||
Left = 479
|
||||
Height = 23
|
||||
Top = 540
|
||||
Width = 131
|
||||
BorderSpacing.Left = 3
|
||||
Caption = 'Remember filter'
|
||||
OnChange = chkRememberChange
|
||||
TabOrder = 31
|
||||
end
|
||||
object dlgOpen: TOpenDialog
|
||||
Filter = 'filter *.fil|*.fil'
|
||||
left = 501
|
||||
top = 488
|
||||
left = 32
|
||||
top = 616
|
||||
end
|
||||
object dlgSave: TSaveDialog
|
||||
DefaultExt = '.fil'
|
||||
Filter = 'filter *.fil|*.fil'
|
||||
Options = [ofOverwritePrompt, ofNoTestFileCreate, ofEnableSizing, ofViewDetail]
|
||||
left = 557
|
||||
top = 488
|
||||
left = 80
|
||||
top = 616
|
||||
end
|
||||
end
|
||||
|
320
src/fFilter.pas
@ -17,7 +17,7 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
||||
Buttons, MaskEdit, lcltype, ExtDlgs, EditBtn, inifiles;
|
||||
Buttons, MaskEdit, lcltype, ExtDlgs, EditBtn, inifiles, strutils;
|
||||
|
||||
type
|
||||
|
||||
@ -30,8 +30,12 @@ type
|
||||
btnLoad: TButton;
|
||||
btnSelectDXCC: TButton;
|
||||
btnHelp: TButton;
|
||||
btClear: TButton;
|
||||
cbIncConName: TCheckBox;
|
||||
chkRemember: TCheckBox;
|
||||
chkNot: TCheckBox;
|
||||
chkIOTAOnly: TCheckBox;
|
||||
cmbContestName: TComboBox;
|
||||
cmbLoTW_qslr: TComboBox;
|
||||
cmbeQSL_qslr : TComboBox;
|
||||
cmbeQSL_qsls : TComboBox;
|
||||
@ -44,6 +48,10 @@ type
|
||||
cmbLoTW_qsls: TComboBox;
|
||||
cmbSort: TComboBox;
|
||||
cmbBandSelector: TComboBox;
|
||||
edtSTX: TEdit;
|
||||
edtSRX: TEdit;
|
||||
edtSTXstr: TEdit;
|
||||
edtSRXstr: TEdit;
|
||||
edtDateFrom: TDateEdit;
|
||||
edtCont: TEdit;
|
||||
edtDateTo: TDateEdit;
|
||||
@ -72,7 +80,9 @@ type
|
||||
gbZones: TGroupBox;
|
||||
gbCounty: TGroupBox;
|
||||
gbState: TGroupBox;
|
||||
GroupBox17 : TGroupBox;
|
||||
gbContestEx: TGroupBox;
|
||||
gbContName: TGroupBox;
|
||||
gbPower : TGroupBox;
|
||||
gbBand: TGroupBox;
|
||||
gbDxcc: TGroupBox;
|
||||
gbFreq: TGroupBox;
|
||||
@ -83,6 +93,10 @@ type
|
||||
gbQsl: TGroupBox;
|
||||
gbContinent: TGroupBox;
|
||||
Label1: TLabel;
|
||||
lblContExS: TLabel;
|
||||
lblContNR: TLabel;
|
||||
lblContMsg: TLabel;
|
||||
lblContxR: TLabel;
|
||||
lblProf: TLabel;
|
||||
lblMember: TLabel;
|
||||
lblGrpBy: TLabel;
|
||||
@ -122,10 +136,12 @@ type
|
||||
rbIncludeIOTA: TRadioButton;
|
||||
rbIncludeDiplom: TRadioButton;
|
||||
dlgSave: TSaveDialog;
|
||||
procedure btClearClick(Sender: TObject);
|
||||
procedure btnHelpClick(Sender: TObject);
|
||||
procedure btnLoadClick(Sender: TObject);
|
||||
procedure btnSaveClick(Sender: TObject);
|
||||
procedure btnSelectDXCCClick(Sender: TObject);
|
||||
procedure chkRememberChange(Sender: TObject);
|
||||
procedure cmbBandSelectorChange(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
@ -135,10 +151,14 @@ type
|
||||
procedure edtDateFromExit(Sender: TObject);
|
||||
procedure edtDateToExit(Sender: TObject);
|
||||
private
|
||||
procedure saveFilter(filename:String);
|
||||
procedure loadFilter(filename:string);
|
||||
public
|
||||
tmp : String;
|
||||
end;
|
||||
|
||||
const
|
||||
C_CONTEST_LIST_FILE_NAME = 'ContestName.tab';
|
||||
C_FILTER_LAST_SETTINGS_FILE_NAME = 'FilterSettings.fil';
|
||||
var
|
||||
frmFilter: TfrmFilter;
|
||||
|
||||
@ -146,7 +166,7 @@ implementation
|
||||
{$R *.lfm}
|
||||
|
||||
{ TfrmFilter }
|
||||
uses dData, dUtils,fSelectDXCC, dMembership;
|
||||
uses dData, dUtils,fSelectDXCC, dMembership, uMyini;
|
||||
|
||||
procedure TfrmFilter.btnOKClick(Sender: TObject);
|
||||
var
|
||||
@ -155,6 +175,8 @@ var
|
||||
p : TExplodeArray;
|
||||
i : Integer = 0;
|
||||
begin
|
||||
if chkRemember.Checked then saveFilter(dmData.HomeDir + C_FILTER_LAST_SETTINGS_FILE_NAME);
|
||||
|
||||
tmp := '';
|
||||
if (edtCallSign.Text <> '') then
|
||||
begin
|
||||
@ -180,6 +202,34 @@ begin
|
||||
tmp := tmp + ' (mode = ' + QuotedStr(cmbMode.Text)+')';
|
||||
tmp := tmp + ' AND'
|
||||
end;
|
||||
if ( cmbContestName.Text <> '') then
|
||||
begin
|
||||
if cbIncConName.Checked then
|
||||
tmp := tmp + ' (UPPER(contestname) LIKE ''%' + upcase(cmbContestName.Text) + '%'')'
|
||||
else
|
||||
tmp := tmp + ' (UPPER(contestname) = ' + QuotedStr(upcase(cmbContestName.Text))+')';
|
||||
tmp := tmp + ' AND'
|
||||
end;
|
||||
if (edtSTX.Text <> '') then
|
||||
begin
|
||||
tmp := tmp + ' (stx = ' + QuotedStr(edtSTX.Text)+')';
|
||||
tmp := tmp + ' AND'
|
||||
end;
|
||||
if (edtSRX.Text <> '') then
|
||||
begin
|
||||
tmp := tmp + ' (srx = ' + QuotedStr(edtSRX.Text)+')';
|
||||
tmp := tmp + ' AND'
|
||||
end;
|
||||
if (edtSTXstr.Text <> '') then
|
||||
begin
|
||||
tmp := tmp + ' (UPPER(stx_string) = ' + QuotedStr(upcase(edtSTXstr.Text))+')';
|
||||
tmp := tmp + ' AND'
|
||||
end;
|
||||
if (edtSRXstr.Text <> '') then
|
||||
begin
|
||||
tmp := tmp + ' (UPPER(srx_string) = ' + QuotedStr(upcase(edtSRXstr.Text))+')';
|
||||
tmp := tmp + ' AND'
|
||||
end;
|
||||
if (edtDateFrom.Text <> '') then
|
||||
begin
|
||||
tmp := tmp + ' (qsodate >= ' + QuotedStr(edtDateFrom.Text) + ') AND (qsodate <= ' +
|
||||
@ -407,7 +457,7 @@ begin
|
||||
dmData.qCQRLOG.Open;
|
||||
dmData.qCQRLOG.Last
|
||||
end;
|
||||
ModalResult := mrOK
|
||||
ModalResult := mrOK;
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.edtDateFromExit(Sender: TObject);
|
||||
@ -433,6 +483,53 @@ begin
|
||||
Close
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.FormCreate(Sender: TObject);
|
||||
var
|
||||
ListOfContests : TStringList;
|
||||
i : integer;
|
||||
s: string;
|
||||
Contestfile :TextFile;
|
||||
begin
|
||||
dmUtils.InsertBands(cmbBandSelector);
|
||||
cmbBandSelector.Items.Insert(0, ''); //to be sure
|
||||
// loading the contest list from ../ContestNames.tab
|
||||
// Format of File CONTEST_ID|CONTEST_DESCRIPTION
|
||||
// see ADIF 3.0.9 http://www.adif.org/309/ADIF_309.htm#Contest_ID
|
||||
ListOfContests:= TStringList.Create;
|
||||
ListOfContests.Clear;
|
||||
ListOfContests.Sorted:=false;
|
||||
if FileExists(dmData.HomeDir + C_CONTEST_LIST_FILE_NAME) then
|
||||
Begin
|
||||
AssignFile(Contestfile, dmData.HomeDir + C_CONTEST_LIST_FILE_NAME);
|
||||
try
|
||||
reset(Contestfile);
|
||||
while not eof(Contestfile) do
|
||||
begin
|
||||
readln(Contestfile, s);
|
||||
ListOfContests.Add(ExtractDelimited(1,s,['|']));
|
||||
end;
|
||||
CloseFile(Contestfile);
|
||||
except
|
||||
on E: EInOutError do
|
||||
writeln('Contestfile reading error. Details: ', E.Message);
|
||||
end;
|
||||
end;
|
||||
//Add strings that wsjt-x may use at contest_name column
|
||||
ListOfContests.Add('NA VHF');
|
||||
ListOfContests.Add('EU VHF');
|
||||
ListOfContests.Add('FIELD DAY');
|
||||
ListOfContests.Add('RTTY RU');
|
||||
ListOfContests.Add('FOX-QSO');
|
||||
ListOfContests.Add('HOUND-QSO');
|
||||
ListOfContests.Sort;
|
||||
cmbContestName.Clear;
|
||||
cmbContestName.Items := ListOfContests;
|
||||
cmbContestName.Items.Insert(0,''); //to be sure there is empty line at start
|
||||
ListOfContests.Free;
|
||||
end;
|
||||
//actually form create and show are common procedure as filter is opened in showModal and it always
|
||||
//creates and shows itself in every opening
|
||||
|
||||
procedure TfrmFilter.FormShow(Sender: TObject);
|
||||
var
|
||||
Mask, sDate : String;
|
||||
@ -446,6 +543,7 @@ begin
|
||||
dmUtils.InsertQSL_R(cmbQSL_R);
|
||||
cmbQSL_R.Items.Add('Empty');
|
||||
dmUtils.InsertModes(cmbMode);
|
||||
cmbMode.Items.Insert(0,'');
|
||||
dmUtils.DateInRightFormat(now,Mask,sDate);
|
||||
edtDateTo.Text := sDate;
|
||||
dmData.InsertProfiles(cmbProfile,True);
|
||||
@ -464,7 +562,10 @@ begin
|
||||
if dmMembership.Club5.Name <> '' then
|
||||
cmbMembers.Items.Add('5;'+dmMembership.Club5.Name+';'+dmMembership.Club5.LongName);
|
||||
cmbMembers.ItemIndex := 0;
|
||||
cmbSort.ItemIndex := 0
|
||||
cmbSort.ItemIndex := 0;
|
||||
|
||||
chkRemember.Checked:= cqrini.ReadBool('frmFilter','Remember',false);
|
||||
if chkRemember.Checked then loadFilter(dmData.HomeDir + C_FILTER_LAST_SETTINGS_FILE_NAME);
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.btnSelectDXCCClick(Sender: TObject);
|
||||
@ -481,6 +582,16 @@ begin
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.chkRememberChange(Sender: TObject);
|
||||
begin
|
||||
cqrini.WriteBool('frmFilter','Remember',chkRemember.Checked);
|
||||
if not chkRemember.Checked then
|
||||
Begin
|
||||
if FileExists(dmData.HomeDir + C_FILTER_LAST_SETTINGS_FILE_NAME) then
|
||||
DeleteFile( dmData.HomeDir + C_FILTER_LAST_SETTINGS_FILE_NAME);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.cmbBandSelectorChange(Sender: TObject);
|
||||
var
|
||||
Band :String;
|
||||
@ -513,12 +624,6 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.FormCreate(Sender: TObject);
|
||||
begin
|
||||
dmUtils.InsertBands(cmbBandSelector);
|
||||
cmbBandSelector.Items.Insert(0, ''); //to be sure
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.FormKeyUp(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
begin
|
||||
@ -534,14 +639,135 @@ begin
|
||||
ShowHelp
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.btClearClick(Sender: TObject);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
FormShow(nil);
|
||||
edtCallSign.Text := '';
|
||||
|
||||
edtDXCC.Text := '';
|
||||
edtFreqFrom.Text := '';
|
||||
edtFreqTo.Text := '';
|
||||
cmbMode.Text := '';
|
||||
edtDateFrom.Text := '';
|
||||
edtDateTo.Text := dmUtils.MyDateToStr(now);
|
||||
edtLocator.Text := '';
|
||||
edtQTH.Text := '';
|
||||
cmbQSL_S.Text := '';
|
||||
cmbQSL_R.Text := '';
|
||||
edtQSLVia.Text := '';
|
||||
edtIOTA.Text := '';
|
||||
edtRemarks.Text := '';
|
||||
edtDiplom.Text := '';
|
||||
edtMyLoc.Text := '';
|
||||
edtWAZ.Text := '';
|
||||
edtITU.Text := '';
|
||||
edtCounty.Text := '';
|
||||
edtState.Text := '';
|
||||
cmbLoTW_qsls.Text := '';
|
||||
cmbLoTW_qslr.Text := '';
|
||||
edtCont.Text := '';
|
||||
cmbeQSL_qsls.Text := '';
|
||||
cmbeQSL_qslr.Text := '';
|
||||
edtPwrFrom.Text := '';
|
||||
edtPwrTo.Text := '';
|
||||
edtSTX.Text := '';
|
||||
edtSRX.Text := '';
|
||||
edtSTXstr.Text := '';
|
||||
edtSRXstr.Text := '';
|
||||
rbExactlyIOTA.Checked := True;
|
||||
rbExactlyRem.Checked := True;
|
||||
rbExactlyDiplom.Checked := True;
|
||||
rbExactlyMyLoc.Checked := True;
|
||||
rbExactlyCounty.Checked := True;
|
||||
rbExactlyLoc.Checked := True;
|
||||
rbExactlyCall.Checked := True;
|
||||
rbExactlyQth.Checked := True;
|
||||
chkIOTAOnly.Checked := False;
|
||||
cbIncConName.Checked := False;
|
||||
chkNot.Checked := False;
|
||||
cmbContestName.ItemIndex := 0;
|
||||
cmbGroupBy.ItemIndex := 0;
|
||||
cmbProfile.ItemIndex := 0;
|
||||
cmbMembers.ItemIndex := 0;
|
||||
cmbBandSelector.ItemIndex:= 0;
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.btnLoadClick(Sender: TObject);
|
||||
begin
|
||||
dlgOpen.InitialDir := dmData.HomeDir;
|
||||
if dlgOpen.Execute then loadFilter(dlgOpen.FileName);
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.btnSaveClick(Sender: TObject);
|
||||
begin
|
||||
dlgSave.InitialDir := dmData.HomeDir;
|
||||
if dlgSave.Execute then saveFilter(dlgSave.FileName);
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.saveFilter(filename:String);
|
||||
var
|
||||
filini : TIniFile;
|
||||
begin
|
||||
dlgOpen.InitialDir := dmData.HomeDir;
|
||||
if dlgOpen.Execute then
|
||||
filini := TIniFile.Create(fileName);
|
||||
try
|
||||
filini.WriteString('call','call',edtCallSign.Text);
|
||||
filini.WriteBool('call','exactly',rbExactlyCall.Checked);
|
||||
filini.WriteString('dxcc','dxcc',edtDXCC.Text);
|
||||
filini.WriteString('freq','freq_from',edtFreqFrom.Text);
|
||||
filini.WriteString('freq','freq_to',edtFreqTo.Text);
|
||||
filini.WriteString('mode','mode',cmbMode.Text);
|
||||
filini.WriteString('date','date_from',edtDateFrom.Text);
|
||||
filini.WriteString('date','date_to',edtDateTo.Text);
|
||||
filini.WriteString('locator','locator',edtLocator.Text);
|
||||
filini.WriteBool('locator','exactly',rbExactlyLoc.Checked);
|
||||
filini.WriteString('qth','qth',edtQTH.Text);
|
||||
filini.WriteBool('qth','exactly',rbExactlyQth.Checked);
|
||||
filini.WriteString('qsl','qsl_s',cmbQSL_S.Text);
|
||||
filini.WriteString('qsl','qsl_r',cmbQSL_R.Text);
|
||||
filini.WriteString('qsl','qsl_via',edtQSLVia.Text);
|
||||
filini.WriteString('sort','sort',cmbSort.Text);
|
||||
filini.WriteString('iota','iota',edtIOTA.Text);
|
||||
filini.WriteBool('iota','exactly',rbExactlyIOTA.Checked);
|
||||
filini.WriteBool('iota','iota_only',chkIOTAOnly.Checked);
|
||||
filini.WriteString('remarks','remarks',edtRemarks.Text);
|
||||
filini.WriteBool('remarks','exactly',rbExactlyRem.Checked);
|
||||
filini.WriteString('award','award',edtDiplom.Text);
|
||||
filini.Writebool('award','exactly',rbExactlyDiplom.Checked);
|
||||
filini.WriteString('myloc','myloc',edtMyLoc.Text);
|
||||
filini.WriteBool('myloc','exactly',rbExactlyMyLoc.Checked);
|
||||
filini.WriteString('waz','waz',edtWAZ.Text);
|
||||
filini.WriteString('itu','itu',edtITU.Text);
|
||||
filini.WriteString('county','county',edtCounty.Text);
|
||||
filini.WriteBool('county','exactly',rbExactlyCounty.Checked);
|
||||
filini.WriteString('state','state',edtState.Text);
|
||||
filini.WriteInteger('groupby','groupby',cmbGroupBy.ItemIndex);
|
||||
filini.WriteInteger('profile','profile',cmbProfile.ItemIndex);
|
||||
filini.WriteInteger('membership','membership',cmbMembers.ItemIndex);
|
||||
filini.WriteString('lotw_qsls','lotw_qsls',cmbLoTW_qsls.Text);
|
||||
filini.WriteString('lotw_qsls','lotw_qslr',cmbLoTW_qslr.Text);
|
||||
filini.WriteString('cont','cont',edtCont.Text);
|
||||
filini.WriteString('eQSL','eqsl_qsl_sent',cmbeQSL_qsls.Text);
|
||||
filini.WriteString('eQSL','eqsl_qsl_rcvd',cmbeQSL_qslr.Text) ;
|
||||
filini.WriteString('Power','power_from',edtPwrFrom.Text);
|
||||
filini.WriteString('Power','power_to',edtPwrTo.Text);
|
||||
filini.WriteBool('not','not',chkNot.Checked);
|
||||
filini.WriteInteger('contestname','contestname',cmbContestName.ItemIndex);
|
||||
filini.Writebool('contestname','include',cbIncConName.Checked);
|
||||
filini.WriteString('contestexchange','stx', edtSTX.Text);
|
||||
filini.WriteString('contestexchange','srx', edtSRX.Text);
|
||||
filini.WriteString('contestexchange','stxstr', edtSTXstr.Text);
|
||||
filini.WriteString('contestexchange','srxstr', edtSRXstr.Text);
|
||||
finally
|
||||
filini.Free
|
||||
end;
|
||||
end;
|
||||
Procedure TfrmFilter.loadFilter(filename:string);
|
||||
var
|
||||
filini : TIniFile;
|
||||
begin
|
||||
filini := TIniFile.Create(dlgOpen.FileName);
|
||||
filini := TIniFile.Create(fileName);
|
||||
try
|
||||
edtCallSign.Text := filini.ReadString('call','call','');
|
||||
rbIncludeCall.Checked := not filini.ReadBool('call','exactly',True);
|
||||
@ -587,66 +813,16 @@ begin
|
||||
edtPwrFrom.Text := filini.ReadString('Power','power_from','');
|
||||
edtPwrTo.Text := filini.ReadString('Power','power_to','');
|
||||
chkNot.Checked := filini.ReadBool('not','not',False);
|
||||
if filini.ReadInteger('contestname','contestname',0) < cmbContestName.Items.Count then
|
||||
cmbContestName.ItemIndex := filini.ReadInteger('contestname','contestname',0);
|
||||
cbIncConName.Checked := filini.Readbool('contestname','include',False);
|
||||
edtSTX.Text := filini.ReadString('contestexchange','stx', '');
|
||||
edtSRX.Text := filini.ReadString('contestexchange','srx','');
|
||||
edtSTXstr.Text := filini.ReadString('contestexchange','stxstr','');
|
||||
edtSRXstr.Text := filini.ReadString('contestexchange','srxstr','');
|
||||
finally
|
||||
filini.Free
|
||||
end
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfrmFilter.btnSaveClick(Sender: TObject);
|
||||
var
|
||||
filini : TIniFile;
|
||||
begin
|
||||
dlgSave.InitialDir := dmData.HomeDir;
|
||||
if dlgSave.Execute then
|
||||
begin
|
||||
filini := TIniFile.Create(dlgSave.FileName);
|
||||
try
|
||||
filini.WriteString('call','call',edtCallSign.Text);
|
||||
filini.WriteBool('call','exactly',rbExactlyCall.Checked);
|
||||
filini.WriteString('dxcc','dxcc',edtDXCC.Text);
|
||||
filini.WriteString('freq','freq_from',edtFreqFrom.Text);
|
||||
filini.WriteString('freq','freq_to',edtFreqTo.Text);
|
||||
filini.WriteString('mode','mode',cmbMode.Text);
|
||||
filini.WriteString('date','date_from',edtDateFrom.Text);
|
||||
filini.WriteString('date','date_to',edtDateTo.Text);
|
||||
filini.WriteString('locator','locator',edtLocator.Text);
|
||||
filini.WriteBool('locator','exactly',rbExactlyLoc.Checked);
|
||||
filini.WriteString('qth','qth',edtQTH.Text);
|
||||
filini.WriteBool('qth','exactly',rbExactlyQth.Checked);
|
||||
filini.WriteString('qsl','qsl_s',cmbQSL_S.Text);
|
||||
filini.WriteString('qsl','qsl_r',cmbQSL_R.Text);
|
||||
filini.WriteString('qsl','qsl_via',edtQSLVia.Text);
|
||||
filini.WriteString('sort','sort',cmbSort.Text);
|
||||
filini.WriteString('iota','iota',edtIOTA.Text);
|
||||
filini.WriteBool('iota','exactly',rbExactlyIOTA.Checked);
|
||||
filini.WriteBool('iota','iota_only',chkIOTAOnly.Checked);
|
||||
filini.WriteString('remarks','remarks',edtRemarks.Text);
|
||||
filini.WriteBool('remarks','exactly',rbExactlyRem.Checked);
|
||||
filini.WriteString('award','award',edtDiplom.Text);
|
||||
filini.Writebool('award','exactly',rbExactlyDiplom.Checked);
|
||||
filini.WriteString('myloc','myloc',edtMyLoc.Text);
|
||||
filini.WriteBool('myloc','exactly',rbExactlyMyLoc.Checked);
|
||||
filini.WriteString('waz','waz',edtWAZ.Text);
|
||||
filini.WriteString('itu','itu',edtITU.Text);
|
||||
filini.WriteString('county','county',edtCounty.Text);
|
||||
filini.WriteBool('county','exactly',rbExactlyCounty.Checked);
|
||||
filini.WriteString('state','state',edtState.Text);
|
||||
filini.WriteInteger('groupby','groupby',cmbGroupBy.ItemIndex);
|
||||
filini.WriteInteger('profile','profile',cmbProfile.ItemIndex);
|
||||
filini.WriteInteger('membership','membership',cmbMembers.ItemIndex);
|
||||
filini.WriteString('lotw_qsls','lotw_qsls',cmbLoTW_qsls.Text);
|
||||
filini.WriteString('lotw_qsls','lotw_qslr',cmbLoTW_qslr.Text);
|
||||
filini.WriteString('cont','cont',edtCont.Text);
|
||||
filini.WriteString('eQSL','eqsl_qsl_sent',cmbeQSL_qsls.Text);
|
||||
filini.WriteString('eQSL','eqsl_qsl_rcvd',cmbeQSL_qslr.Text) ;
|
||||
filini.WriteString('Power','power_from',edtPwrFrom.Text);
|
||||
filini.WriteString('Power','power_to',edtPwrTo.Text);
|
||||
filini.WriteBool('not','not',chkNot.Checked);
|
||||
finally
|
||||
filini.Free
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -239,12 +239,14 @@ begin
|
||||
|
||||
lblComment.Caption := 'Importing LoTW and eQSL users ...';
|
||||
Application.ProcessMessages;
|
||||
|
||||
if FileExistsUTF8(Directory+'lotw1.txt') then
|
||||
begin
|
||||
DeleteFileUTF8(dmData.HomeDir+'lotw1.txt');
|
||||
CopyFile(Directory+'lotw1.txt',dmData.HomeDir+'lotw1.txt');
|
||||
dmData.LoadLoTWCalls
|
||||
end;
|
||||
|
||||
if FileExistsUTF8(Directory+'eqsl.txt') then
|
||||
begin
|
||||
DeleteFileUTF8(dmData.HomeDir+'eqsl.txt');
|
||||
@ -282,6 +284,12 @@ begin
|
||||
dmSatellite.LoadPropModesFromFile
|
||||
end;
|
||||
|
||||
if FileExistsUTF8(Directory + 'ContestName.tab') then
|
||||
begin
|
||||
DeleteFileUTF8(dmData.HomeDir + 'ContestName.tab');
|
||||
CopyFile(Directory + 'ContestName.tab', dmData.HomeDir + 'ContestName.tab');
|
||||
end;
|
||||
|
||||
lblComment.Caption := 'Importing IOTA table ...';
|
||||
Application.ProcessMessages;
|
||||
dmData.qIOTAList.Close();
|
||||
|
210
src/fMain.lfm
@ -7,7 +7,7 @@ object frmMain: TfrmMain
|
||||
HelpKeyword = 'help/index.html'
|
||||
ActiveControl = Panel2
|
||||
Caption = 'CQRLOG for Linux'
|
||||
ClientHeight = 601
|
||||
ClientHeight = 603
|
||||
ClientWidth = 874
|
||||
Constraints.MinHeight = 148
|
||||
Constraints.MinWidth = 536
|
||||
@ -156,7 +156,7 @@ object frmMain: TfrmMain
|
||||
OnCreate = FormCreate
|
||||
OnKeyDown = FormKeyDown
|
||||
OnShow = FormShow
|
||||
LCLVersion = '1.8.4.0'
|
||||
LCLVersion = '2.0.0.4'
|
||||
object sbMain: TStatusBar
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
@ -164,8 +164,8 @@ object frmMain: TfrmMain
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 582
|
||||
Height = 17
|
||||
Top = 586
|
||||
Width = 874
|
||||
Panels = <
|
||||
item
|
||||
@ -195,7 +195,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 40
|
||||
Top = 536
|
||||
Top = 540
|
||||
Width = 874
|
||||
Align = alBottom
|
||||
BorderSpacing.Bottom = 6
|
||||
@ -208,7 +208,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Control = pnlButtons
|
||||
AnchorSideTop.Control = pnlButtons
|
||||
Left = 10
|
||||
Height = 33
|
||||
Height = 32
|
||||
Top = 5
|
||||
Width = 130
|
||||
Action = acNewQSO
|
||||
@ -224,7 +224,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = btnNewQSO
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 150
|
||||
Height = 33
|
||||
Height = 32
|
||||
Top = 5
|
||||
Width = 130
|
||||
Action = acView
|
||||
@ -238,7 +238,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideRight.Control = pnlButtons
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 734
|
||||
Height = 33
|
||||
Height = 32
|
||||
Top = 5
|
||||
Width = 130
|
||||
Action = acClose
|
||||
@ -253,7 +253,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = btnClose
|
||||
Left = 594
|
||||
Height = 33
|
||||
Height = 32
|
||||
Top = 5
|
||||
Width = 130
|
||||
Action = acDeleteQSO
|
||||
@ -268,7 +268,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = btnDeleteQSO
|
||||
Left = 454
|
||||
Height = 33
|
||||
Height = 32
|
||||
Top = 5
|
||||
Width = 130
|
||||
Action = acSort
|
||||
@ -284,7 +284,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = btnNewQSO
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 290
|
||||
Height = 33
|
||||
Height = 32
|
||||
Top = 5
|
||||
Width = 130
|
||||
Action = acEditQSO
|
||||
@ -299,7 +299,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = toolMain
|
||||
AnchorSideRight.Control = toolMain
|
||||
Left = 0
|
||||
Height = 38
|
||||
Height = 36
|
||||
Top = 31
|
||||
Width = 874
|
||||
Align = alTop
|
||||
@ -307,7 +307,7 @@ object frmMain: TfrmMain
|
||||
BorderSpacing.Top = 5
|
||||
BorderSpacing.InnerBorder = 5
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 38
|
||||
ClientHeight = 36
|
||||
ClientWidth = 874
|
||||
TabOrder = 1
|
||||
object lblQSOInLog: TLabel
|
||||
@ -315,9 +315,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = Panel2
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 10
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 11
|
||||
Width = 72
|
||||
Width = 67
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Left = 10
|
||||
Caption = 'QSO in log:'
|
||||
@ -330,10 +330,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblQSOInLog
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 92
|
||||
Height = 17
|
||||
Left = 87
|
||||
Height = 15
|
||||
Top = 11
|
||||
Width = 45
|
||||
Width = 40
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 10
|
||||
Caption = '10000'
|
||||
@ -348,10 +348,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Control = Panel2
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = lblQSOInLog
|
||||
Left = 417
|
||||
Height = 17
|
||||
Left = 419
|
||||
Height = 15
|
||||
Top = 11
|
||||
Width = 40
|
||||
Width = 36
|
||||
Caption = 'DXCC:'
|
||||
Layout = tlBottom
|
||||
ParentColor = False
|
||||
@ -362,10 +362,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblDXCCWorked
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 467
|
||||
Height = 17
|
||||
Left = 465
|
||||
Height = 15
|
||||
Top = 11
|
||||
Width = 27
|
||||
Width = 24
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 10
|
||||
Caption = '238'
|
||||
@ -377,10 +377,10 @@ object frmMain: TfrmMain
|
||||
object lblDXCCConfirmed: TLabel
|
||||
AnchorSideTop.Control = lblQSOInLog
|
||||
AnchorSideRight.Control = lblDXCCCmf
|
||||
Left = 728
|
||||
Height = 17
|
||||
Left = 736
|
||||
Height = 15
|
||||
Top = 11
|
||||
Width = 73
|
||||
Width = 65
|
||||
Alignment = taRightJustify
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Right = 10
|
||||
@ -397,7 +397,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 811
|
||||
Height = 17
|
||||
Top = 11
|
||||
Top = 9
|
||||
Width = 53
|
||||
Anchors = [akRight, akBottom]
|
||||
AutoSize = False
|
||||
@ -417,14 +417,14 @@ object frmMain: TfrmMain
|
||||
AnchorSideBottom.Control = pnlDetails
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 403
|
||||
Top = 69
|
||||
Height = 409
|
||||
Top = 67
|
||||
Width = 874
|
||||
Align = alClient
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
Color = clWindow
|
||||
Columns = <>
|
||||
Options = [dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiselect]
|
||||
Options = [dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiselect, dgAutoSizeColumns]
|
||||
PopupMenu = popWebSearch
|
||||
Scrollbars = ssAutoBoth
|
||||
TabOrder = 2
|
||||
@ -719,7 +719,7 @@ object frmMain: TfrmMain
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 64
|
||||
Top = 472
|
||||
Top = 476
|
||||
Width = 874
|
||||
Align = alBottom
|
||||
BevelOuter = bvNone
|
||||
@ -730,9 +730,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Control = pnlDetails
|
||||
AnchorSideTop.Control = pnlDetails
|
||||
Left = 10
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 122
|
||||
Width = 113
|
||||
BorderSpacing.Left = 10
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'Comment for QSO:'
|
||||
@ -745,9 +745,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = lblCommentForQSO
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 10
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 44
|
||||
Height = 15
|
||||
Top = 35
|
||||
Width = 42
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'Award:'
|
||||
Layout = tlBottom
|
||||
@ -759,10 +759,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblCommentForQSO
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 142
|
||||
Height = 17
|
||||
Left = 133
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 85
|
||||
Width = 80
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 10
|
||||
Layout = tlBottom
|
||||
@ -773,10 +773,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblAward
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 64
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 61
|
||||
Left = 62
|
||||
Height = 15
|
||||
Top = 35
|
||||
Width = 59
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 10
|
||||
Layout = tlBottom
|
||||
@ -796,9 +796,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 7
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 70
|
||||
Width = 66
|
||||
BorderSpacing.Left = 7
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'QS_S date:'
|
||||
@ -811,10 +811,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblQSLSDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 89
|
||||
Height = 17
|
||||
Left = 85
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 85
|
||||
Width = 81
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 12
|
||||
Layout = tlBottom
|
||||
@ -825,10 +825,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblQSLRDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 90
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 86
|
||||
Left = 85
|
||||
Height = 15
|
||||
Top = 35
|
||||
Width = 81
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 12
|
||||
Layout = tlBottom
|
||||
@ -839,9 +839,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = lblQSLSDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 7
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 71
|
||||
Height = 15
|
||||
Top = 35
|
||||
Width = 66
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'QS_R date:'
|
||||
Layout = tlBottom
|
||||
@ -863,9 +863,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Control = Panel3
|
||||
AnchorSideTop.Control = Panel3
|
||||
Left = 7
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 110
|
||||
Width = 103
|
||||
BorderSpacing.Left = 7
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'LoTW QS_S date:'
|
||||
@ -878,10 +878,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideBottom.Control = lblLoTWQSLSDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 134
|
||||
Height = 17
|
||||
Left = 127
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 90
|
||||
Width = 86
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 17
|
||||
Layout = tlBottom
|
||||
@ -893,10 +893,10 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideBottom.Control = lblLoTWQSLRDate
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 135
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 91
|
||||
Left = 127
|
||||
Height = 15
|
||||
Top = 35
|
||||
Width = 86
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 17
|
||||
BorderSpacing.Top = 10
|
||||
@ -907,9 +907,9 @@ object frmMain: TfrmMain
|
||||
AnchorSideTop.Control = lblLoTWQSLSDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 7
|
||||
Height = 17
|
||||
Top = 37
|
||||
Width = 111
|
||||
Height = 15
|
||||
Top = 35
|
||||
Width = 103
|
||||
BorderSpacing.Top = 10
|
||||
Caption = 'LoTW QS_R date:'
|
||||
Layout = tlBottom
|
||||
@ -1307,42 +1307,6 @@ object frmMain: TfrmMain
|
||||
Caption = 'Statistics'
|
||||
object MenuItem11: TMenuItem
|
||||
Caption = 'DXCC statistic'
|
||||
Bitmap.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000874480FF833F
|
||||
7EFF7F387DFF7C337CFF792E7BFFC63A13FFC63712FFC43112FFC02E11FFC02A
|
||||
10FFBF270FFF7C4F25FF7A4A21FF77461EFF75421BFF733F19FF413DF3FF999B
|
||||
FEFF9698FEFF9395FEFF9193FEFFC94315FFE0935DFFDF8F59FFDF8D55FFDE8A
|
||||
51FFC02E11FFA2C99EFF9DC699FF98C395FF94C091FF276D2CFF4A47F5FF9EA0
|
||||
FEFF5B5EFEFF5659FEFF9597FEFFCD4C16FFE19763FFDA8041FFD97D3BFFDF8F
|
||||
58FFC63512FFA8CDA4FF77B071FF70AB6AFF9AC496FF2E7633FF5351F6FFA2A4
|
||||
FEFF6266FEFF5D61FEFF999BFEFFCF5518FFE39C6CFFDC864AFFDB8344FFE094
|
||||
5EFFC63C13FFAFD1ABFF80B77AFF79B273FFA0C89CFF35803CFF5B5BF8FFA8AA
|
||||
FEFF6B6FFEFF6569FEFF9EA0FEFFD1601AFFE5A274FFDE8C53FFDD894DFFE299
|
||||
66FFC94515FFB5D5B0FF8ABD83FF83B87DFFA7CDA3FF3D8B44FF6364FAFFACAF
|
||||
FEFF7276FEFF6D71FEFFA2A4FEFFD6691EFFE7A77BFFE0925CFFDF8F56FFE49E
|
||||
6EFFCD4E16FFBAD9B5FFB7D6B1FFB3D3AEFFAED1A9FF45964DFF6A6CFCFFB0B3
|
||||
FEFF797EFEFF7579FEFFA8AAFEFFD8742AFFE8AD83FFE29865FFE19560FFE5A3
|
||||
76FFCF5718FF60BC6CFF5CB667FF57B061FF52A85CFF4DA155FF7073FDFFB4B7
|
||||
FEFF8185FEFF7C81FEFFACAFFEFFD97B39FFEAB28AFFE49F6EFFE39C6AFFE7A8
|
||||
7DFFD1621AFF00000000000000000000000000000000000000007478FEFFB8BB
|
||||
FEFFB6B9FEFFB3B6FEFFB0B3FEFFDF8445FFECB792FFE6A578FFE6A273FFE9AD
|
||||
85FFD66B1EFF00000000000000000000000000000000000000007478FEFF7478
|
||||
FEFF7276FEFF6E71FDFF6A6CFCFFE18D52FFEDBB99FFE9AC81FFE7A87CFFEAB3
|
||||
8DFFD8742CFF0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000E2925CFFEEC1A0FFEAB189FFE9AE85FFEDB7
|
||||
94FFDB7C3AFF0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000E69B67FFF0C5A6FFECB691FFEBB38CFFEEBC
|
||||
9BFFDF8547FF0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000E8A070FFF2C8ACFFF0C6A8FFF0C5A6FFEFC2
|
||||
A2FFE18E53FF0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000EAA677FFE8A474FFE8A06EFFE69D6BFFE499
|
||||
65FFE2955EFF000000000000000000000000000000000000000038FDF200C803
|
||||
EA0038FDF20038FDF20000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000
|
||||
}
|
||||
Hint = 'DXCC statistic'
|
||||
ImageIndex = 8
|
||||
object MenuItem46: TMenuItem
|
||||
@ -1559,42 +1523,6 @@ object frmMain: TfrmMain
|
||||
RightJustify = True
|
||||
object mnuHelpIndex: TMenuItem
|
||||
Caption = 'Help index'
|
||||
Bitmap.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000560151001806
|
||||
520058015200160653004A02E600290000008888F500B001EA004C02E900D103
|
||||
EA004E02EA00CF03EB00C00048001314150000040000380000000202F5003604
|
||||
F6005801E3001606E4006211CE00603B95009E6056FFA16844FFA36642FF925B
|
||||
50FF7A3490002D134A0054014E001A06500055015000190651000202FE003604
|
||||
FF000002FF00612C1A00BA7046FFD7BBA3FFE9DACAFFECE0D1FFECE0D1FFE8D8
|
||||
C8FFD3B59CFF9D614CFFE224B6003904F4000002F4003804F500FE0232009204
|
||||
3300E92E4100B98159FFE7D5C4FFE5D2BFFFC9A685FFB88E67FFB68A65FFC5A1
|
||||
80FFE0CCBAFFE3D0BEFFAF6B45FF992790000003B8009004B900920159003D17
|
||||
5D00BE8368FFEAD8C9FFE3CDBAFFC0946BFFBA8C62FFCFB094FFCFB094FFB789
|
||||
5FFFB28761FFDAC0AAFFE4D1C0FFA0694FFF171233009004320050031200AB51
|
||||
4500E4CCB9FFEAD6C5FFC79971FFBF9066FFBF9066FFF7F1ECFFF6F0EAFFB789
|
||||
5FFFB7895FFFB58963FFE2CEBBFFD9BDA6FFA23E53002703590009000000D6B1
|
||||
7AFFEFE1D3FFD9B595FFC7986CFFC39569FFC19367FFBF9066FFBF9066FFBB8B
|
||||
63FFB98A63FFB88A62FFCBA786FFEADCCCFFA9714DFF8A0512001049F300D5AE
|
||||
92FFF2E4D9FFD1A57AFFC5996BFFC4976AFFC49669FFFAF6F2FFF3EAE1FFC295
|
||||
6DFFBE8F65FFBE8F64FFC0956DFFEFE3D5FFC08D60FF4849F30056015100D9B2
|
||||
97FFF2E5DAFFD1A67EFFCC9D71FFC79A6CFFC5986BFFE2CCB6FFF8F3EEFFF6EE
|
||||
E8FFD9BDA1FFC29468FFC59B71FFF0E2D6FFBE9068FF38000000FE02B700DBA7
|
||||
A6FFF3E5D9FFDFBB9EFFCFA075FFCD9E72FFF5EBE3FFE4CBB4FFE7D3BFFFFBF8
|
||||
F6FFE5D3BFFFC4986BFFD6B491FFEEE0D2FFBB8872FF190651000002F4009065
|
||||
D100F4E3D4FFEFDCCDFFD5A87EFFD0A077FFFBF8F5FFFCF8F5FFFCF8F5FFFBF8
|
||||
F5FFD1A881FFCFA47BFFEAD5C3FFEAD4C2FFE8549D009304B700FB023600A11F
|
||||
B400E6B9AAFFF6E9DDFFECD8C6FFD7AC81FFDCBB9AFFF6ECE3FFF5ECE2FFE4C8
|
||||
AEFFD2A77BFFE6CEBAFFF1E2D5FFCBA19BFFFA18E6003904F400520310008905
|
||||
110086474800EEC9B1FFF7EADFFFEEDED0FFE3C1A7FFD8AE89FFD7AC86FFDDBB
|
||||
9CFFEBD6C7FFF3E6D9FFE4B69AFFAC405600FC023400940436005401E6001A06
|
||||
E8005301E800624A7300DDC1C3FFF9E9DCFFF6E8DDFFF3E5DAFFF3E5DAFFF5E7
|
||||
DCFFF5E4D6FFDAB49BFFF74139003B04F10054030F008705100009000000E8EE
|
||||
43000C0000001847F3003E1E1B00D06C5F00DCDCAEFFECCDC0FFE9CBB3FFE5B6
|
||||
A3FFA367CE003421DE005601E4001806E5005501E5001906E600F803EA0060F0
|
||||
3E0000000000000000001D0200001F0000000000000040972500640020000000
|
||||
0000000000000000000003000000C9010000E8AD4500C8983900
|
||||
}
|
||||
ImageIndex = 14
|
||||
OnClick = mnuHelpIndexClick
|
||||
end
|
||||
@ -1962,8 +1890,6 @@ object frmMain: TfrmMain
|
||||
top = 385
|
||||
end
|
||||
object dlgOpen: TOpenDialog
|
||||
Width = 441
|
||||
Height = 468
|
||||
DefaultExt = '.adi'
|
||||
Filter = 'ADIF|*.adi|ADIF|*.ADI'
|
||||
FilterIndex = 0
|
||||
|
@ -2102,7 +2102,12 @@ begin
|
||||
ChangeVis('COUNTRY',cqrini.ReadBool('Columns','Country',False));
|
||||
ChangeVis('PROP_MODE', cqrini.ReadBool('Columns', 'Propagation', False));
|
||||
ChangeVis('RXFREQ', cqrini.ReadBool('Columns', 'RXFreq', False));
|
||||
ChangeVis('SATELLITE', cqrini.ReadBool('Columns', 'SatelliteName', False))
|
||||
ChangeVis('SATELLITE', cqrini.ReadBool('Columns', 'SatelliteName', False));
|
||||
ChangeVis('CONTESTNAME', cqrini.ReadBool('Columns', 'ContestName', False));
|
||||
ChangeVis('STX',cqrini.ReadBool('Columns', 'STX', False));
|
||||
ChangeVis('SRX',cqrini.ReadBool('Columns', 'SRX', False));
|
||||
ChangeVis('STX_STRING',cqrini.ReadBool('Columns', 'ContMsgSent', False));
|
||||
ChangeVis('SRX_STRING',cqrini.ReadBool('Columns', 'ContMsgRcvd', False));
|
||||
end;
|
||||
|
||||
procedure TfrmMain.MarkQSLSend(symbol: string);
|
||||
|
@ -176,7 +176,7 @@ var
|
||||
msgRes :string;
|
||||
CqDir : string;
|
||||
mycont, cont, country, waz, posun, itu, pfx, lat, long: string;
|
||||
adif : word;
|
||||
dxcc_number_adif : word;
|
||||
Dfreq,Snr:integer;
|
||||
isMyCall: boolean;
|
||||
CurMode: string = ''; //mode in human readable format
|
||||
@ -819,6 +819,7 @@ var
|
||||
i, j: integer;
|
||||
begin
|
||||
tmrCqPeriod.Enabled := False;
|
||||
if LocalDbg then Writeln('Period timer hit the time!');
|
||||
if (chknoHistory.Checked) then
|
||||
begin
|
||||
for i:= 0 to 7 do
|
||||
@ -842,16 +843,20 @@ begin
|
||||
end;
|
||||
|
||||
procedure TfrmMonWsjtx.CqPeriodTimerStart;
|
||||
var
|
||||
tmr: integer;
|
||||
begin
|
||||
tmrCqPeriod.Enabled := False;
|
||||
if CurMode = 'FT8' then
|
||||
tmrCqPeriod.Interval := 16000
|
||||
else
|
||||
tmrCqPeriod.Interval := 61000;
|
||||
tmr := 61000;
|
||||
case CurMode of
|
||||
'FT8': tmr := 16000;
|
||||
'FT4': tmr := 6500;
|
||||
end;
|
||||
tmrCqPeriod.Interval := tmr;
|
||||
if LocalDbg then Writeln('Period timer set to: ',tmr);
|
||||
tmrCqPeriod.Enabled := True;
|
||||
end;
|
||||
|
||||
|
||||
procedure TfrmMonWsjtx.cmFontClick(Sender: TObject);
|
||||
begin
|
||||
popFontDlg.Font.Name := cqrini.ReadString('MonWsjtx', 'Font', 'Monospace');
|
||||
@ -1636,7 +1641,7 @@ begin
|
||||
myAlert := '';
|
||||
MonitorLine := '';
|
||||
|
||||
adif := dmDXCC.id_country(
|
||||
dxcc_number_adif := dmDXCC.id_country(
|
||||
UpperCase(cqrini.ReadString('Station', 'Call', '')), '', Now(), pfx,
|
||||
mycont, country, WAZ, posun, ITU, lat, long);
|
||||
|
||||
@ -1775,7 +1780,7 @@ begin
|
||||
|
||||
if frmWorkedGrids.GridOK(msgLocator) then AddXpList(msgCall,msgLocator);
|
||||
|
||||
adif := dmDXCC.id_country(msgCall, '', Now(), pfx, cont,
|
||||
dxcc_number_adif := dmDXCC.id_country(msgCall, '', Now(), pfx, cont,
|
||||
msgRes, WAZ, posun, ITU, lat, long);
|
||||
if (pos(',', msgRes)) > 0 then
|
||||
msgRes := copy(msgRes, 1, pos(',', msgRes) - 1);
|
||||
@ -1815,7 +1820,7 @@ begin
|
||||
if (not chkMap.Checked) then
|
||||
begin
|
||||
freq := dmUtils.FreqFromBand(CurBand, CurMode);
|
||||
msgRes := dmDXCC.DXCCInfo(adif, freq, CurMode, i); //wkd info
|
||||
msgRes := dmDXCC.DXCCInfo(dxcc_number_adif, freq, CurMode, i); //wkd info
|
||||
|
||||
if LocalDbg then
|
||||
Writeln('Looking this>', msgRes[1], '< from:', msgRes);
|
||||
@ -1864,8 +1869,9 @@ function TfrmMonWsjtx.getCurMode(sMode: String): String;
|
||||
'@' : getCurMode := 'JT9';
|
||||
'&' : getCurMode := 'MSK144';
|
||||
':' : getCurMode := 'QRA64';
|
||||
'+' : getCurMode := 'T10';
|
||||
'+' : getCurMode := 'FT4';
|
||||
chr(126): getCurMode := 'FT8';
|
||||
//'+' : getCurMode := 'T10';
|
||||
end;
|
||||
end;
|
||||
|
||||
|
209
src/fNewQSO.lfm
@ -1,13 +1,13 @@
|
||||
object frmNewQSO: TfrmNewQSO
|
||||
Left = 156
|
||||
Left = 279
|
||||
Height = 709
|
||||
Top = 0
|
||||
Width = 809
|
||||
Top = 64
|
||||
Width = 997
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/index.html'
|
||||
Caption = 'New QSO ... (CQRLOG for Linux)'
|
||||
ClientHeight = 686
|
||||
ClientWidth = 809
|
||||
ClientHeight = 684
|
||||
ClientWidth = 997
|
||||
Icon.Data = {
|
||||
3E08010000000100010080800000010020002808010016000000280000008000
|
||||
0000000100000100200000000000000001006400000064000000000000000000
|
||||
@ -2161,36 +2161,41 @@ object frmNewQSO: TfrmNewQSO
|
||||
end
|
||||
object Panel1: TPanel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 551
|
||||
Top = 110
|
||||
Width = 809
|
||||
Top = 114
|
||||
Width = 997
|
||||
Align = alBottom
|
||||
ClientHeight = 551
|
||||
ClientWidth = 809
|
||||
ClientWidth = 997
|
||||
TabOrder = 0
|
||||
object Panel3: TPanel
|
||||
AnchorSideLeft.Control = Panel1
|
||||
Left = 1
|
||||
Height = 511
|
||||
Top = 39
|
||||
Width = 545
|
||||
Width = 733
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 511
|
||||
ClientWidth = 545
|
||||
ClientWidth = 733
|
||||
TabOrder = 0
|
||||
object Panel6: TPanel
|
||||
AnchorSideLeft.Control = Panel3
|
||||
AnchorSideTop.Control = Panel3
|
||||
Left = 0
|
||||
Height = 511
|
||||
Top = 0
|
||||
Width = 545
|
||||
Width = 733
|
||||
Align = alClient
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.InnerBorder = 2
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 511
|
||||
ClientWidth = 545
|
||||
ClientWidth = 733
|
||||
ParentShowHint = False
|
||||
TabOrder = 0
|
||||
object lblCommentToCallsign: TLabel
|
||||
AnchorSideLeft.Control = lblCounty
|
||||
@ -3489,9 +3494,9 @@ object frmNewQSO: TfrmNewQSO
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Panel6
|
||||
Left = 0
|
||||
Height = 171
|
||||
Top = 340
|
||||
Width = 545
|
||||
Height = 135
|
||||
Top = 376
|
||||
Width = 733
|
||||
ActivePage = tabDXCCStat
|
||||
Align = alBottom
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
@ -3500,13 +3505,13 @@ object frmNewQSO: TfrmNewQSO
|
||||
TabOrder = 28
|
||||
object tabDXCCStat: TTabSheet
|
||||
Caption = 'DXCC statistic'
|
||||
ClientHeight = 136
|
||||
ClientWidth = 539
|
||||
ClientHeight = 104
|
||||
ClientWidth = 723
|
||||
object sgrdStatistic: TStringGrid
|
||||
Left = 0
|
||||
Height = 136
|
||||
Top = 0
|
||||
Width = 539
|
||||
Width = 723
|
||||
Align = alClient
|
||||
ColCount = 2
|
||||
DefaultColWidth = 35
|
||||
@ -3522,8 +3527,8 @@ object frmNewQSO: TfrmNewQSO
|
||||
end
|
||||
object tabSatellite: TTabSheet
|
||||
Caption = 'Satellite'
|
||||
ClientHeight = 136
|
||||
ClientWidth = 539
|
||||
ClientHeight = 104
|
||||
ClientWidth = 723
|
||||
object cmbPropagation: TComboBox
|
||||
AnchorSideLeft.Control = lblStatellite
|
||||
AnchorSideTop.Control = lblPropagation
|
||||
@ -3635,12 +3640,163 @@ object frmNewQSO: TfrmNewQSO
|
||||
end
|
||||
end
|
||||
end
|
||||
object gbContest: TGroupBox
|
||||
AnchorSideLeft.Control = mComment
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel6
|
||||
Left = 554
|
||||
Height = 231
|
||||
Top = 0
|
||||
Width = 380
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
BorderSpacing.Left = 20
|
||||
Caption = 'Contest'
|
||||
ClientHeight = 213
|
||||
ClientWidth = 378
|
||||
TabOrder = 29
|
||||
Visible = False
|
||||
object lblContestName: TLabel
|
||||
AnchorSideLeft.Control = gbContest
|
||||
AnchorSideTop.Control = gbContest
|
||||
Left = 3
|
||||
Height = 17
|
||||
Top = 3
|
||||
Width = 87
|
||||
BorderSpacing.Left = 3
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Contestname'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblContestSerialSent: TLabel
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = edtContestName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 3
|
||||
Height = 17
|
||||
Top = 63
|
||||
Width = 69
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Serial sent'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblContestSerialReceived: TLabel
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = edtContestSerialSent
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 3
|
||||
Height = 17
|
||||
Top = 123
|
||||
Width = 69
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Serial rcvd'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblContestExchangeMessageSent: TLabel
|
||||
AnchorSideLeft.Control = lblContestSerialSent
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = lblContestSerialSent
|
||||
Left = 81
|
||||
Height = 17
|
||||
Top = 63
|
||||
Width = 59
|
||||
BorderSpacing.Left = 9
|
||||
Caption = 'Msg sent'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblContestExchangeMessageReceived: TLabel
|
||||
AnchorSideLeft.Control = lblContestExchangeMessageSent
|
||||
AnchorSideTop.Control = lblContestSerialReceived
|
||||
Left = 81
|
||||
Height = 17
|
||||
Top = 123
|
||||
Width = 59
|
||||
Caption = 'Msg rcvd'
|
||||
ParentColor = False
|
||||
end
|
||||
object edtContestName: TEdit
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = lblContestName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 3
|
||||
Height = 34
|
||||
Hint = 'name of contest, max 40 characters allowed'
|
||||
Top = 23
|
||||
Width = 372
|
||||
BorderSpacing.Top = 3
|
||||
MaxLength = 40
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
TextHint = 'max 40 characters'
|
||||
end
|
||||
object edtContestSerialSent: TEdit
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = lblContestSerialSent
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 3
|
||||
Height = 34
|
||||
Hint = 'serial number sent of contest, max 6 characters'
|
||||
Top = 83
|
||||
Width = 64
|
||||
BorderSpacing.Top = 3
|
||||
MaxLength = 6
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object edtContestSerialReceived: TEdit
|
||||
AnchorSideLeft.Control = lblContestName
|
||||
AnchorSideTop.Control = lblContestSerialReceived
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 3
|
||||
Height = 34
|
||||
Hint = 'rserial number received of contest, max 6 characters'
|
||||
Top = 146
|
||||
Width = 64
|
||||
BorderSpacing.Top = 6
|
||||
MaxLength = 6
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object edtContestExchangeMessageSent: TEdit
|
||||
AnchorSideLeft.Control = lblContestExchangeMessageSent
|
||||
AnchorSideTop.Control = edtContestSerialSent
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 81
|
||||
Height = 34
|
||||
Hint = 'contest exchange message sent, max 50 characters'
|
||||
Top = 83
|
||||
Width = 292
|
||||
BorderSpacing.Top = 6
|
||||
MaxLength = 50
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
TextHint = 'max 50 characters'
|
||||
end
|
||||
object edtContestExchangeMessageReceived: TEdit
|
||||
AnchorSideLeft.Control = lblContestExchangeMessageReceived
|
||||
AnchorSideTop.Control = edtContestSerialReceived
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 81
|
||||
Height = 34
|
||||
Hint = 'contest exchange message received, max 50 characters'
|
||||
Top = 146
|
||||
Width = 292
|
||||
MaxLength = 50
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 4
|
||||
TextHint = 'max 50 characters'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
object Panel2: TPanel
|
||||
AnchorSideTop.Control = Panel1
|
||||
AnchorSideRight.Control = Panel1
|
||||
Left = 546
|
||||
Left = 734
|
||||
Height = 511
|
||||
Top = 39
|
||||
Width = 262
|
||||
@ -4286,12 +4442,13 @@ object frmNewQSO: TfrmNewQSO
|
||||
Left = 1
|
||||
Height = 38
|
||||
Top = 1
|
||||
Width = 807
|
||||
Width = 995
|
||||
Align = alTop
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
AutoSize = True
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 38
|
||||
ClientWidth = 807
|
||||
ClientWidth = 995
|
||||
TabOrder = 2
|
||||
object lblQSONr: TLabel
|
||||
AnchorSideLeft.Control = lblQSONrDesc
|
||||
@ -4402,7 +4559,7 @@ object frmNewQSO: TfrmNewQSO
|
||||
Left = 0
|
||||
Height = 110
|
||||
Top = 0
|
||||
Width = 809
|
||||
Width = 997
|
||||
Align = alClient
|
||||
Color = clWindow
|
||||
Columns = <>
|
||||
@ -6647,7 +6804,7 @@ object frmNewQSO: TfrmNewQSO
|
||||
object tmrN1MM: TTimer
|
||||
Enabled = False
|
||||
OnTimer = tmrN1MMTimer
|
||||
left = 584
|
||||
top = 200
|
||||
left = 800
|
||||
top = 32
|
||||
end
|
||||
end
|
||||
|
231
src/fNewQSO.pas
@ -89,7 +89,18 @@ type
|
||||
cmbPropagation : TComboBox;
|
||||
cmbSatellite : TComboBox;
|
||||
dbgrdQSOBefore: TDBGrid;
|
||||
edtContestExchangeMessageReceived: TEdit;
|
||||
edtContestExchangeMessageSent: TEdit;
|
||||
edtContestSerialReceived: TEdit;
|
||||
edtContestSerialSent: TEdit;
|
||||
edtContestName: TEdit;
|
||||
edtRXFreq : TEdit;
|
||||
gbContest: TGroupBox;
|
||||
lblContestExchangeMessageReceived: TLabel;
|
||||
lblContestExchangeMessageSent: TLabel;
|
||||
lblContestSerialReceived: TLabel;
|
||||
lblContestSerialSent: TLabel;
|
||||
lblContestName: TLabel;
|
||||
lblCallbookInformation : TLabel;
|
||||
lblPropagation : TLabel;
|
||||
lblStatellite : TLabel;
|
||||
@ -1881,6 +1892,7 @@ var
|
||||
prik,
|
||||
data:string;
|
||||
chkDuplicates:Boolean;
|
||||
i:longint;
|
||||
|
||||
begin
|
||||
tmrN1MM.Enabled:=false;
|
||||
@ -1895,6 +1907,9 @@ begin
|
||||
if N1MMSock.lasterror=0 then
|
||||
begin
|
||||
if dmData.DebugLevel>=1 then writeln(Buf);
|
||||
//this is fake as call info(qslmgr) needs date. We use current date if call tag comes before qso_date tag
|
||||
//qso_date will then replace this
|
||||
edtDate.Text := FormatDateTime('YYYY-MM-DD',now());
|
||||
repeat
|
||||
begin
|
||||
if frmAdifImport.getNextAdifTag(Buf,prik,data) then
|
||||
@ -1904,8 +1919,17 @@ begin
|
||||
writeln(data);
|
||||
end;
|
||||
case uppercase(prik) of
|
||||
'CALL' : edtCall.Text := uppercase(data);
|
||||
'GRIDSQUARE' : edtGrid.Text := uppercase(data);
|
||||
'CALL' : Begin
|
||||
edtCall.Text := uppercase(data);
|
||||
edtCallExit(nil); //does info fetch
|
||||
sleep(1500);
|
||||
end;
|
||||
'GRIDSQUARE' :Begin
|
||||
data := uppercase(data);
|
||||
if dmUtils.IsLocOK(data) then
|
||||
if pos(data,edtGrid.Text)=0 then //if qso loc does not fit to QRZ loc , or qrz loc is empty
|
||||
edtGrid.Text := data; //replace qrz loc, otherwise keep it
|
||||
end;
|
||||
'MODE' : cmbMode.Text := uppercase(data);
|
||||
//now this overrides MODE, if exists
|
||||
'SUBMODE' : cmbMode.Text := uppercase(data);
|
||||
@ -1923,6 +1947,17 @@ begin
|
||||
'NAME' : edtName.Text := data;
|
||||
'QTH' : edtQTH.Text := data;
|
||||
'COMMENT': edtRemQSO.Text := data;
|
||||
'IOTA' : cmbIOTA.Text := data;
|
||||
'STATE' : edtState.Text := data;
|
||||
'CQZ' : edtWaz.Text := data;
|
||||
'ITUZ' : edtITU.Text := data;
|
||||
'CONTEST_ID': edtContestName.Text := data;
|
||||
'STX': edtContestSerialSent.Text := data;
|
||||
'SRX': edtContestSerialReceived.Text := data;
|
||||
//N1MM logger+ definition does not have STXString tag. Added anyway(future?).
|
||||
'STX_STRING':edtContestExchangeMessageSent.Text := data;
|
||||
//same with SRX
|
||||
'SRX_STRING': edtContestExchangeMessageReceived.Text:= data;
|
||||
end; //case
|
||||
end; //repeat
|
||||
until Buf = '';
|
||||
@ -2044,39 +2079,67 @@ procedure TfrmNewQSO.tmrWsjtSpdTimer(Sender: TObject);
|
||||
var
|
||||
Hour,Min,Sec,HSec : word;
|
||||
begin
|
||||
if (WsjtxMode='FT8') then
|
||||
begin
|
||||
DecodeTime(Time,Hour,Min,Sec,HSec);
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer FT8 mode - Sec is: ',Sec);
|
||||
case Sec of
|
||||
13,28,43,58 :
|
||||
begin //set hispeed decode time is coming
|
||||
if ( tmrWsjtx.Interval = wLoSpeed ) then
|
||||
begin
|
||||
if dmData.DebugLevel>=1 then Writeln ('Timer >> Sec is: ',Sec,' ',tmrWsjtx.Interval,'=',wLoSpeed );
|
||||
tmrWsjtx.Interval := wHiSpeed;
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer >> Setting UDP decode to FT8 HiSpeed ', tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
2,17,32,47 :
|
||||
begin //set lospeed decode time is over
|
||||
if ( tmrWsjtx.Interval = wHiSpeed ) then //we did not have UFT8-mode. Is HiSpeed still on?
|
||||
Begin
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer << Sec is: ',Sec,' ',tmrWsjtx.Interval,'=',wLoSpeed );
|
||||
tmrWsjtx.Interval := wLoSpeed;
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer << Setting UDP decode to FT8 LoSpeed ', tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
if ( tmrWsjtx.Interval = wHiSpeed ) then //we did not have UFT8-mode. Is HiSpeed still on?
|
||||
Begin
|
||||
tmrWsjtx.Interval := wLoSpeed; // turn it off then
|
||||
if dmData.DebugLevel>=1 then Writeln('Setting UDP decode to LoSpeed not in FT8 mode ',tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
case WsjtxMode of
|
||||
|
||||
'FT4':begin
|
||||
DecodeTime(Time,Hour,Min,Sec,HSec);
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer FT mode - Sec is: ',Sec);
|
||||
case Sec of
|
||||
4,10,16,22,28,34,40,46,52,58 :
|
||||
begin //set hispeed decode time is coming
|
||||
if ( tmrWsjtx.Interval = wLoSpeed ) then
|
||||
begin
|
||||
if dmData.DebugLevel>=1 then Writeln ('Timer >> Sec is: ',Sec,' ',tmrWsjtx.Interval,'=',wLoSpeed );
|
||||
tmrWsjtx.Interval := wHiSpeed;
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer >> Setting UDP decode to FT HiSpeed ', tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
0,6,12,18,24,30,36,42,48,54 :
|
||||
begin //set lospeed decode time is over
|
||||
if ( tmrWsjtx.Interval = wHiSpeed ) then //we did not have UFT8-mode. Is HiSpeed still on?
|
||||
Begin
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer << Sec is: ',Sec,' ',tmrWsjtx.Interval,'=',wLoSpeed );
|
||||
tmrWsjtx.Interval := wLoSpeed;
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer << Setting UDP decode to FT LoSpeed ', tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
'FT8':begin
|
||||
DecodeTime(Time,Hour,Min,Sec,HSec);
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer FT mode - Sec is: ',Sec);
|
||||
case Sec of
|
||||
13,28,43,58 :
|
||||
begin //set hispeed decode time is coming
|
||||
if ( tmrWsjtx.Interval = wLoSpeed ) then
|
||||
begin
|
||||
if dmData.DebugLevel>=1 then Writeln ('Timer >> Sec is: ',Sec,' ',tmrWsjtx.Interval,'=',wLoSpeed );
|
||||
tmrWsjtx.Interval := wHiSpeed;
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer >> Setting UDP decode to FT HiSpeed ', tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
2,17,32,47 :
|
||||
begin //set lospeed decode time is over
|
||||
if ( tmrWsjtx.Interval = wHiSpeed ) then //we did not have UFT8-mode. Is HiSpeed still on?
|
||||
Begin
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer << Sec is: ',Sec,' ',tmrWsjtx.Interval,'=',wLoSpeed );
|
||||
tmrWsjtx.Interval := wLoSpeed;
|
||||
if dmData.DebugLevel>=1 then Writeln(' Timer << Setting UDP decode to FT LoSpeed ', tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
else Begin
|
||||
if ( tmrWsjtx.Interval = wHiSpeed ) then //we did not have UFT8-mode. Is HiSpeed still on?
|
||||
Begin
|
||||
tmrWsjtx.Interval := wLoSpeed; // turn it off then
|
||||
if dmData.DebugLevel>=1 then Writeln('Setting UDP decode to LoSpeed not in FT mode ',tmrWsjtx.Interval);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
procedure TfrmNewQSO.tmrWsjtxTimer(Sender: TObject);
|
||||
const
|
||||
ContestName : array [0..6] of string = ( '','NA VHF','EU VHF','FIELD DAY','RTTY RU','FOX','HOUND' );
|
||||
@ -2494,16 +2557,14 @@ begin
|
||||
rstR := '';
|
||||
note := '';
|
||||
pwr := '';
|
||||
|
||||
//date := dmUtils.GetDateTime(0);
|
||||
edtDate.Clear;
|
||||
//dmUtils.DateInRightFormat(date,Mask,sDate);
|
||||
//edtDate.Text:=sDate;
|
||||
|
||||
//----------------------------------------------------
|
||||
if TryJulianDateToDateTime(int64Buf(index),DTim) then //date (not used in cqrlog)
|
||||
if TryJulianDateToDateTime(int64Buf(index),DTim) then //date
|
||||
if dmData.DebugLevel>=1 then Writeln('End Date :',FormatDateTime('YYYY-MM-DD',DTim));
|
||||
// we do not use end date:
|
||||
// we use end date here because dmData.QSLMgrFound() needs date.
|
||||
//if not set causes "'' is not valid date error" sometimes (usually at first logged qso)
|
||||
//edtDate.Text is reset later below to be real qso start date
|
||||
edtDate.Text := FormatDateTime('YYYY-MM-DD',DTim);
|
||||
//-----------------------------------------TIME-----------
|
||||
ParNum := ui32Buf(index); //set qso end time
|
||||
Min := ParNum div 60000; //minutes from 00:00 UTC
|
||||
@ -2611,7 +2672,7 @@ begin
|
||||
end;
|
||||
if dmData.DebugLevel>=1 then Writeln('edtName before pressing save:',edtName.Text );
|
||||
//----------------------------------------------------
|
||||
if TryJulianDateToDateTime(int64Buf(index),DTim) then //date (not used in cqrlog)
|
||||
if TryJulianDateToDateTime(int64Buf(index),DTim) then
|
||||
//start date used
|
||||
dmUtils.DateInRightFormat(DTim,Mask,sDate);
|
||||
edtDate.Text:=sDate;
|
||||
@ -2642,10 +2703,57 @@ begin
|
||||
ExchS := trim(StrBuf(index)); //contest exchange sent. report + others
|
||||
ExchR := trim(StrBuf(index)); //contest exchange received. report + others
|
||||
//----------------------------------------------------
|
||||
// until we get proper database fields contest name and exchange info is added
|
||||
// as "comment to qso" to exist somewhere in logged qso.
|
||||
if ContestNr > 0 then
|
||||
edtRemQSO.Text := ContestName[ContestNr]+'=S:'+ExchS+'/R:'+ExchR+' '+edtRemQSO.Text;
|
||||
{
|
||||
These wsjt-x will return as contest number:
|
||||
* 0 -> NONE
|
||||
* 1 -> NA VHF
|
||||
* 2 -> EU VHF
|
||||
* 3 -> FIELD DAY
|
||||
* 4 -> RTTY RU
|
||||
* 5 -> FOX
|
||||
* 6 -> HOUND
|
||||
}
|
||||
|
||||
case ContestNr of
|
||||
1 :Begin //NA VHF EX:locator-4chr
|
||||
edtContestName.Text := ContestName[ContestNr];
|
||||
edtContestExchangeMessageReceived.Text := ExchR;
|
||||
edtContestExchangeMessageSent.Text := ExchS;
|
||||
edtHisRST.Text := ' '; // NA-VHF has no proper reports (!?!)
|
||||
edtMyRST.Text := ' '; // fake space here. Otherwise qso edit sets 599 for reports
|
||||
end;
|
||||
2 :Begin //EU VHF EX:RS-2chr/serial-4chr/ /locator
|
||||
edtContestName.Text := ContestName[ContestNr];
|
||||
edtContestSerialReceived.Text := copy(ExchR,3,4); //serialNr
|
||||
edtContestExchangeMessageReceived.Text:= copy(ExchR,8,6); //exMsg=locator
|
||||
edtContestSerialSent.Text := copy(ExchS,3,4); //serialNr
|
||||
edtContestExchangeMessageSent.Text:= copy(ExchS,8,6); //exMsg=locator
|
||||
edtHisRST.Text := edtHisRST.Text+' '; // fake space here. Otherwise qso edit sets xx9 for reports
|
||||
edtMyRST.Text := edtMyRST.Text+' ';
|
||||
end;
|
||||
3 :Begin //FIELD DAY EX:TXnrClass/ /state
|
||||
edtContestName.Text := ContestName[ContestNr];
|
||||
edtContestExchangeMessageReceived.Text := ExchR;
|
||||
edtContestExchangeMessageSent.Text := ExchS;
|
||||
edtHisRST.Text := ' '; // FD has no proper reports (!?!)
|
||||
edtMyRST.Text := ' '; // fake space here. Otherwise qso edit sets 599 for reports
|
||||
end;
|
||||
4 :Begin //RTTY RU EX:RST-3chr/ /serial-4chr[or] state(not numbers)
|
||||
edtContestName.Text := ContestName[ContestNr];
|
||||
if (ExchS[5] in [ 'A' .. 'Z' ]) then
|
||||
edtContestExchangeMessageSent.Text:= copy(ExchS,5,length(ExchS)) //exMsg=state
|
||||
else
|
||||
edtContestSerialSent.Text := copy(ExchS,5,length(ExchS)); //serialNr
|
||||
if (ExchR[5] in [ 'A' .. 'Z' ]) then
|
||||
edtContestExchangeMessageReceived.Text:= copy(ExchR,5,length(ExchR)) //exMsg=state
|
||||
else
|
||||
edtContestSerialReceived.Text := copy(ExchR,5,length(ExchR)); //serialNr
|
||||
end;
|
||||
5,6 : edtContestName.Text := ContestName[ContestNr]+'-QSO';
|
||||
end;
|
||||
case ContestNr of
|
||||
1,2,3,4 : edtContestSerialReceived.Text := copy( edtContestSerialReceived.Text,1,6); //Max Db length=6
|
||||
end;
|
||||
//----------------------------------------------------
|
||||
if dmData.DebugLevel>=1 then Writeln(' WSJTX decode #5 logging: press save');
|
||||
SaveRemote;
|
||||
@ -2839,7 +2947,12 @@ begin
|
||||
dmSatellite.GetPropShortName(cmbPropagation.Text),
|
||||
dmSatellite.GetSatShortName(cmbSatellite.Text),
|
||||
RxFreq,
|
||||
id);
|
||||
id,
|
||||
edtContestSerialReceived.Text,
|
||||
edtContestSerialSent.Text,
|
||||
edtContestExchangeMessageReceived.Text,
|
||||
edtContestExchangeMessageSent.Text,
|
||||
edtContestName.Text);
|
||||
if (old_call<>edtCall.Text) or (old_mode<>cmbMode.Text) or (StrToFloat(old_freq)<>StrToFloat(cmbFreq.Text)) or
|
||||
(old_date<>StrToDate(edtDate.Text)) or (old_time<>edtStartTime.Text) or (old_rsts<>edtHisRST.Text) or
|
||||
(old_rstr<>edtMyRST.Text) then
|
||||
@ -2926,7 +3039,12 @@ begin
|
||||
frmQSODetails.ClubNR5,
|
||||
dmSatellite.GetPropShortName(cmbPropagation.Text),
|
||||
dmSatellite.GetSatShortName(cmbSatellite.Text),
|
||||
RxFreq
|
||||
RxFreq,
|
||||
edtContestSerialReceived.Text,
|
||||
edtContestSerialSent.Text,
|
||||
edtContestExchangeMessageReceived.Text,
|
||||
edtContestExchangeMessageSent.Text,
|
||||
edtContestName.Text
|
||||
)
|
||||
end;
|
||||
if fEditQSO and (not fromNewQSO) then
|
||||
@ -4896,7 +5014,9 @@ begin
|
||||
RunVK(dmUtils.GetDescKeyFromCode(Key))
|
||||
else
|
||||
if Assigned(CWint) then
|
||||
CWint.SendText(dmUtils.GetCWMessage(dmUtils.GetDescKeyFromCode(Key),edtCall.Text,edtHisRST.Text,edtName.Text,lblGreeting.Caption,''));
|
||||
CWint.SendText(dmUtils.GetCWMessage(dmUtils.GetDescKeyFromCode(Key),frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
key := 0
|
||||
end;
|
||||
|
||||
@ -5675,7 +5795,12 @@ begin
|
||||
end;
|
||||
dmSatellite.GetListOfSatellites(cmbSatellite, dmData.qQSOBefore.FieldByName('satellite').AsString);
|
||||
dmSatellite.GetListOfPropModes(cmbPropagation, dmData.qQSOBefore.FieldByName('prop_mode').AsString);
|
||||
edtRXFreq.Text := FloatToStr(dmData.qQSOBefore.FieldByName('rxfreq').AsFloat)
|
||||
edtRXFreq.Text := FloatToStr(dmData.qQSOBefore.FieldByName('rxfreq').AsFloat);
|
||||
edtContestName.Text := dmData.qQSOBefore.FieldByName('contestname').AsString;
|
||||
edtContestSerialSent.Text := dmData.qQSOBefore.FieldByName('stx').AsString;
|
||||
edtContestSerialReceived.Text := dmData.qQSOBefore.FieldByName('srx').AsString;
|
||||
edtContestExchangeMessageSent.Text := dmData.qQSOBefore.FieldByName('stx_string').AsString;
|
||||
edtContestExchangeMessageReceived.Text := dmData.qQSOBefore.FieldByName('srx_string').AsString;
|
||||
end
|
||||
else begin
|
||||
cmbProfiles.Text := dmData.GetProfileText(dmData.qCQRLOG.FieldByName('profile').AsInteger);
|
||||
@ -5708,6 +5833,11 @@ begin
|
||||
edtAward.Text := dmData.qCQRLOG.FieldByName('award').AsString;
|
||||
edtState.Text := dmData.qCQRLOG.FieldByName('state').AsString;
|
||||
lotw_qslr := dmData.qCQRLOG.FieldByName('lotw_qslr').AsString;
|
||||
edtContestName.Text := dmData.qCQRLOG.FieldByName('contestname').AsString;
|
||||
edtContestSerialSent.Text := dmData.qCQRLOG.FieldByName('stx').AsString;
|
||||
edtContestSerialReceived.Text := dmData.qCQRLOG.FieldByName('srx').AsString;
|
||||
edtContestExchangeMessageSent.Text := dmData.qCQRLOG.FieldByName('stx_string').AsString;
|
||||
edtContestExchangeMessageReceived.Text := dmData.qCQRLOG.FieldByName('srx_string').AsString;
|
||||
if lotw_qslr = 'L' then
|
||||
begin
|
||||
lblCfmLoTW.Caption := 'QSO confirmed by LoTW ' + dmData.qCQRLOG.FieldByName('lotw_qslrdate').AsString;
|
||||
@ -6759,3 +6889,4 @@ end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
object frmPreferences: TfrmPreferences
|
||||
Left = 105
|
||||
Left = 169
|
||||
Height = 659
|
||||
Top = 33
|
||||
Top = 65
|
||||
Width = 1000
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/h1.html'
|
||||
@ -14,16 +14,16 @@ object frmPreferences: TfrmPreferences
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '1.8.4.0'
|
||||
LCLVersion = '2.0.0.4'
|
||||
object pgPreferences: TPageControl
|
||||
Left = 160
|
||||
Height = 659
|
||||
Top = 0
|
||||
Width = 752
|
||||
ActivePage = tabFldigi1
|
||||
ActivePage = tabVisibleColumns
|
||||
Align = alClient
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
TabIndex = 20
|
||||
TabIndex = 3
|
||||
TabOrder = 0
|
||||
OnChange = pgPreferencesChange
|
||||
object tabProgram: TTabSheet
|
||||
@ -838,333 +838,555 @@ object frmPreferences: TfrmPreferences
|
||||
ClientHeight = 628
|
||||
ClientWidth = 742
|
||||
object chkDate: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = tabVisibleColumns
|
||||
AnchorSideTop.Control = tabVisibleColumns
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 12
|
||||
Top = 6
|
||||
Width = 57
|
||||
BorderSpacing.Left = 18
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Date'
|
||||
TabOrder = 0
|
||||
end
|
||||
object chkTimeOn: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 43
|
||||
Top = 32
|
||||
Width = 79
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Time on'
|
||||
TabOrder = 1
|
||||
end
|
||||
object chkTimeOff: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkTimeOn
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 75
|
||||
Top = 58
|
||||
Width = 80
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Time off'
|
||||
TabOrder = 2
|
||||
end
|
||||
object chkCallSign: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkTimeOff
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 107
|
||||
Top = 84
|
||||
Width = 79
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'CallSign'
|
||||
TabOrder = 3
|
||||
end
|
||||
object chkMode: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkCallSign
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 139
|
||||
Top = 110
|
||||
Width = 62
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Mode'
|
||||
TabOrder = 4
|
||||
end
|
||||
object chkFreq: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkMode
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 171
|
||||
Top = 136
|
||||
Width = 54
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Freq'
|
||||
TabOrder = 5
|
||||
end
|
||||
object chkQSL_S: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkQTH
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 334
|
||||
Top = 266
|
||||
Width = 83
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL sent'
|
||||
TabOrder = 6
|
||||
end
|
||||
object chkQSL_R: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkQSL_S
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 366
|
||||
Top = 292
|
||||
Width = 111
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL received'
|
||||
TabOrder = 7
|
||||
end
|
||||
object chkRST_S: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkFreq
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 203
|
||||
Top = 162
|
||||
Width = 83
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'RST sent'
|
||||
TabOrder = 8
|
||||
end
|
||||
object chkRST_R: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkRST_S
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 235
|
||||
Top = 188
|
||||
Width = 114
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'RST Received'
|
||||
TabOrder = 9
|
||||
end
|
||||
object chkName: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkRST_R
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 267
|
||||
Top = 214
|
||||
Width = 65
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Name'
|
||||
TabOrder = 10
|
||||
end
|
||||
object chkQTH: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 299
|
||||
Top = 240
|
||||
Width = 54
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QTH'
|
||||
TabOrder = 11
|
||||
end
|
||||
object chkQSL_VIA: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkDate
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 12
|
||||
Top = 6
|
||||
Width = 113
|
||||
BorderSpacing.Left = 145
|
||||
Caption = 'QSL manager'
|
||||
TabOrder = 12
|
||||
end
|
||||
object chkLoc: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkQSL_VIA
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 43
|
||||
Top = 32
|
||||
Width = 74
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Locator'
|
||||
TabOrder = 13
|
||||
end
|
||||
object chkMyLoc: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkLoc
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 75
|
||||
Top = 58
|
||||
Width = 95
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'My locator'
|
||||
TabOrder = 14
|
||||
end
|
||||
object chkIOTA: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkMyLoc
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 107
|
||||
Top = 84
|
||||
Width = 56
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'IOTA'
|
||||
TabOrder = 15
|
||||
end
|
||||
object chkAward: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkIOTA
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 139
|
||||
Top = 110
|
||||
Width = 66
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Award'
|
||||
TabOrder = 16
|
||||
end
|
||||
object chkCounty: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkAward
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 171
|
||||
Top = 136
|
||||
Width = 72
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'County'
|
||||
TabOrder = 17
|
||||
end
|
||||
object chkPower: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkCounty
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 203
|
||||
Top = 162
|
||||
Width = 66
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Power'
|
||||
TabOrder = 18
|
||||
end
|
||||
object chkDXCC: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkPower
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 235
|
||||
Top = 188
|
||||
Width = 62
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'DXCC'
|
||||
TabOrder = 19
|
||||
end
|
||||
object chkRemarks: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkDXCC
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 267
|
||||
Top = 214
|
||||
Width = 139
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Comment to QSO'
|
||||
TabOrder = 20
|
||||
end
|
||||
object chkWAZ: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkRemarks
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 299
|
||||
Top = 240
|
||||
Width = 56
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'WAZ'
|
||||
TabOrder = 21
|
||||
end
|
||||
object chkITU: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkWAZ
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 334
|
||||
Top = 266
|
||||
Width = 48
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'ITU'
|
||||
TabOrder = 22
|
||||
end
|
||||
object chkState: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkITU
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 366
|
||||
Top = 292
|
||||
Width = 60
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'State'
|
||||
TabOrder = 23
|
||||
end
|
||||
object chkLoTWQSLSDate: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkDate
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 12
|
||||
Top = 6
|
||||
Width = 159
|
||||
BorderSpacing.Left = 145
|
||||
Caption = 'LoTW QSL send date'
|
||||
TabOrder = 24
|
||||
end
|
||||
object chkLoTWQSLRDate: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLSDate
|
||||
AnchorSideTop.Control = chkLoTWQSLSDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 43
|
||||
Top = 32
|
||||
Width = 184
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'LoTW QSL received date'
|
||||
TabOrder = 25
|
||||
end
|
||||
object chkLoTWQSLS: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLSDate
|
||||
AnchorSideTop.Control = chkLoTWQSLRDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 75
|
||||
Top = 58
|
||||
Width = 123
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'LoTW QSL sent'
|
||||
TabOrder = 26
|
||||
end
|
||||
object chkLoTWQSLR: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLSDate
|
||||
AnchorSideTop.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 107
|
||||
Top = 84
|
||||
Width = 151
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'LoTW QSL received'
|
||||
TabOrder = 27
|
||||
end
|
||||
object chkCont: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkLoTWQSLR
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 139
|
||||
Top = 110
|
||||
Width = 89
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Continent'
|
||||
TabOrder = 28
|
||||
end
|
||||
object chkQSLSentDate: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkCont
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 171
|
||||
Top = 136
|
||||
Width = 116
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL sent date'
|
||||
TabOrder = 29
|
||||
end
|
||||
object chkQSLRcvdDate: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkQSLSentDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 203
|
||||
Top = 162
|
||||
Width = 144
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'QSL received date'
|
||||
TabOrder = 30
|
||||
end
|
||||
object chkeQSLSent: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkQSLRcvdDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 235
|
||||
Top = 188
|
||||
Width = 91
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'eQSL sent'
|
||||
TabOrder = 31
|
||||
end
|
||||
object chkeQSLSentDate: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkeQSLSent
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 267
|
||||
Top = 214
|
||||
Width = 124
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'eQSL sent date'
|
||||
TabOrder = 32
|
||||
end
|
||||
object chkeQSLRcvd: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkeQSLSentDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 299
|
||||
Top = 240
|
||||
Width = 119
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'eQSL received'
|
||||
TabOrder = 33
|
||||
end
|
||||
object chkeQSLRcvdDate: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkeQSLRcvd
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 334
|
||||
Top = 266
|
||||
Width = 152
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'eQSL received date'
|
||||
TabOrder = 34
|
||||
end
|
||||
object chkQSLRAll: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkLoTWQSLS
|
||||
AnchorSideTop.Control = chkeQSLRcvdDate
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 366
|
||||
Top = 292
|
||||
Width = 195
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Received QSL,LoTW,eQSL '
|
||||
TabOrder = 35
|
||||
end
|
||||
object Label16: TLabel
|
||||
Left = 357
|
||||
AnchorSideLeft.Control = chkLoTWQSLSDate
|
||||
AnchorSideTop.Control = chkQSLRAll
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 329
|
||||
Height = 17
|
||||
Top = 392
|
||||
Top = 315
|
||||
Width = 169
|
||||
BorderSpacing.Left = 21
|
||||
Caption = '(all values in one column)'
|
||||
ParentColor = False
|
||||
end
|
||||
object chkCountry: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkQSL_R
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 395
|
||||
Top = 318
|
||||
Width = 118
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Country name'
|
||||
TabOrder = 36
|
||||
end
|
||||
object chkPropagation: TCheckBox
|
||||
Left = 14
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkCountry
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 424
|
||||
Top = 344
|
||||
Width = 104
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Propagation'
|
||||
TabOrder = 37
|
||||
end
|
||||
object chkSatellite: TCheckBox
|
||||
Left = 167
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkState
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 424
|
||||
Top = 318
|
||||
Width = 121
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'Satellite name'
|
||||
TabOrder = 38
|
||||
end
|
||||
object chkRXFreq: TCheckBox
|
||||
Left = 327
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkSatellite
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 424
|
||||
Top = 344
|
||||
Width = 113
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'RX frequency'
|
||||
TabOrder = 39
|
||||
end
|
||||
object chkContestName: TCheckBox
|
||||
AnchorSideLeft.Control = chkLoTWQSLSDate
|
||||
AnchorSideTop.Control = chkQSLRAll
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 308
|
||||
Height = 23
|
||||
Top = 344
|
||||
Width = 117
|
||||
BorderSpacing.Top = 29
|
||||
Caption = 'Contest name'
|
||||
TabOrder = 40
|
||||
end
|
||||
object chkSTX: TCheckBox
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkPropagation
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 370
|
||||
Width = 114
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'SerialNR sent'
|
||||
TabOrder = 41
|
||||
end
|
||||
object chkSRX: TCheckBox
|
||||
AnchorSideLeft.Control = chkDate
|
||||
AnchorSideTop.Control = chkSTX
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 18
|
||||
Height = 23
|
||||
Top = 396
|
||||
Width = 114
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'SerialNR rcvd'
|
||||
TabOrder = 42
|
||||
end
|
||||
object chkSTX_str: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkRXFreq
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 370
|
||||
Width = 118
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'ContMSG sent'
|
||||
TabOrder = 43
|
||||
end
|
||||
object chkSRX_str: TCheckBox
|
||||
AnchorSideLeft.Control = chkQSL_VIA
|
||||
AnchorSideTop.Control = chkSTX_str
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 163
|
||||
Height = 23
|
||||
Top = 396
|
||||
Width = 118
|
||||
BorderSpacing.Top = 3
|
||||
Caption = 'ContMSG rcvd'
|
||||
TabOrder = 44
|
||||
end
|
||||
end
|
||||
object tabBands: TTabSheet
|
||||
Caption = 'Bands'
|
||||
@ -3327,57 +3549,45 @@ object frmPreferences: TfrmPreferences
|
||||
DesignLeft = 623
|
||||
DesignTop = 214
|
||||
inherited chkProfile: TCheckBox
|
||||
Height = 23
|
||||
Top = 326
|
||||
Width = 67
|
||||
end
|
||||
inherited chkAscTime: TCheckBox
|
||||
Left = 8
|
||||
Height = 23
|
||||
Top = 448
|
||||
Width = 197
|
||||
end
|
||||
inherited chkExCont: TCheckBox
|
||||
Height = 23
|
||||
Width = 89
|
||||
end
|
||||
inherited chkexQTH: TCheckBox
|
||||
Height = 23
|
||||
Width = 54
|
||||
end
|
||||
inherited chkexName: TCheckBox
|
||||
Height = 23
|
||||
Width = 65
|
||||
end
|
||||
inherited chkexRSTR: TCheckBox
|
||||
Height = 23
|
||||
Width = 83
|
||||
end
|
||||
inherited chkexRSTS: TCheckBox
|
||||
Height = 23
|
||||
Width = 83
|
||||
end
|
||||
inherited chkexFreq: TCheckBox
|
||||
Height = 23
|
||||
Width = 54
|
||||
end
|
||||
inherited chkexMode: TCheckBox
|
||||
Height = 23
|
||||
Width = 62
|
||||
end
|
||||
inherited chkexCall: TCheckBox
|
||||
Height = 23
|
||||
Width = 51
|
||||
end
|
||||
inherited chkexTimeoff: TCheckBox
|
||||
Height = 23
|
||||
Width = 80
|
||||
end
|
||||
inherited chkexTimeon: TCheckBox
|
||||
Height = 23
|
||||
Width = 79
|
||||
end
|
||||
inherited chkexDate: TCheckBox
|
||||
Height = 23
|
||||
Width = 57
|
||||
end
|
||||
inherited edtWDate: TEdit
|
||||
@ -3411,65 +3621,60 @@ object frmPreferences: TfrmPreferences
|
||||
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
|
||||
Height = 23
|
||||
Width = 83
|
||||
end
|
||||
inherited chkexQSLR: TCheckBox
|
||||
Height = 23
|
||||
Width = 111
|
||||
end
|
||||
inherited chkexQSLVIA: TCheckBox
|
||||
Height = 23
|
||||
Width = 113
|
||||
end
|
||||
inherited chkexLoc: TCheckBox
|
||||
Height = 23
|
||||
Width = 74
|
||||
end
|
||||
inherited chkexMyLoc: TCheckBox
|
||||
Height = 23
|
||||
Width = 95
|
||||
end
|
||||
inherited chkexIOTA: TCheckBox
|
||||
Height = 23
|
||||
Width = 56
|
||||
end
|
||||
inherited chkexAward: TCheckBox
|
||||
Height = 23
|
||||
Width = 66
|
||||
end
|
||||
inherited chkexCounty: TCheckBox
|
||||
Height = 23
|
||||
Width = 72
|
||||
end
|
||||
inherited chkexPower: TCheckBox
|
||||
Height = 23
|
||||
Width = 66
|
||||
end
|
||||
inherited chkexDXCC: TCheckBox
|
||||
Height = 23
|
||||
Width = 62
|
||||
end
|
||||
inherited chkexRemarks: TCheckBox
|
||||
Height = 23
|
||||
Width = 83
|
||||
end
|
||||
inherited edtWRemarks: TEdit
|
||||
@ -3506,58 +3711,45 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
end
|
||||
inherited chkexeQSLRDate: TCheckBox
|
||||
Height = 23
|
||||
Width = 130
|
||||
end
|
||||
inherited chkexeQSLR: TCheckBox
|
||||
Height = 23
|
||||
Width = 120
|
||||
end
|
||||
inherited chkexeQSLSDate: TCheckBox
|
||||
Height = 23
|
||||
Width = 129
|
||||
end
|
||||
inherited chkexeQSLS: TCheckBox
|
||||
Height = 23
|
||||
Width = 120
|
||||
end
|
||||
inherited chkexQSLRDate: TCheckBox
|
||||
Height = 23
|
||||
Width = 116
|
||||
end
|
||||
inherited chkexQSLSDate: TCheckBox
|
||||
Height = 23
|
||||
Width = 116
|
||||
end
|
||||
inherited chkexLQSLRDate: TCheckBox
|
||||
Height = 23
|
||||
Width = 133
|
||||
end
|
||||
inherited chkexLQSLR: TCheckBox
|
||||
Height = 23
|
||||
Width = 123
|
||||
end
|
||||
inherited chkexLQSLSDate: TCheckBox
|
||||
Height = 23
|
||||
Width = 132
|
||||
end
|
||||
inherited chkexLQSLS: TCheckBox
|
||||
Height = 23
|
||||
Width = 123
|
||||
end
|
||||
inherited chkexState: TCheckBox
|
||||
Height = 23
|
||||
Width = 60
|
||||
end
|
||||
inherited chkexNote: TCheckBox
|
||||
Height = 23
|
||||
Width = 57
|
||||
end
|
||||
inherited chkexITU: TCheckBox
|
||||
Height = 23
|
||||
Width = 48
|
||||
end
|
||||
inherited chkexWAZ: TCheckBox
|
||||
Height = 23
|
||||
Width = 56
|
||||
end
|
||||
inherited edtWWAZ: TEdit
|
||||
@ -3603,15 +3795,12 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
end
|
||||
inherited chkExPropagation: TCheckBox
|
||||
Height = 23
|
||||
Width = 104
|
||||
end
|
||||
inherited chkExSat: TCheckBox
|
||||
Height = 23
|
||||
Width = 121
|
||||
end
|
||||
inherited chkExRXFreq: TCheckBox
|
||||
Height = 23
|
||||
Width = 113
|
||||
end
|
||||
inherited edtWProp: TEdit
|
||||
@ -3623,6 +3812,9 @@ object frmPreferences: TfrmPreferences
|
||||
inherited edtWRxFreq: TEdit
|
||||
Height = 34
|
||||
end
|
||||
inherited chkexContest: TCheckBox
|
||||
Width = 76
|
||||
end
|
||||
end
|
||||
end
|
||||
object tabDXCluster: TTabSheet
|
||||
@ -6701,7 +6893,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 370
|
||||
Top = 8
|
||||
Width = 608
|
||||
ClientHeight = 368
|
||||
ClientHeight = 352
|
||||
ClientWidth = 606
|
||||
TabOrder = 0
|
||||
object Label93: TLabel
|
||||
@ -7680,8 +7872,6 @@ object frmPreferences: TfrmPreferences
|
||||
top = 208
|
||||
end
|
||||
object dlgColor: TColorDialog
|
||||
Width = 565
|
||||
Height = 295
|
||||
Color = clBlack
|
||||
CustomColors.Strings = (
|
||||
'ColorA=000000'
|
||||
|
@ -120,6 +120,11 @@ type
|
||||
cb60m: TCheckBox;
|
||||
cb30cm: TCheckBox;
|
||||
cgLimit: TCheckGroup;
|
||||
chkSTX: TCheckBox;
|
||||
chkSRX: TCheckBox;
|
||||
chkSTX_str: TCheckBox;
|
||||
chkSRX_str: TCheckBox;
|
||||
chkContestName: TCheckBox;
|
||||
chkShowB4call: TCheckBox;
|
||||
chkRXFreq : TCheckBox;
|
||||
chkSatellite : TCheckBox;
|
||||
@ -1183,6 +1188,11 @@ begin
|
||||
cqrini.WriteBool('Columns', 'Propagation', chkPropagation.Checked);
|
||||
cqrini.WriteBool('Columns', 'SatelliteName', chkSatellite.Checked);
|
||||
cqrini.WriteBool('Columns', 'RXFreq', chkRXFreq.Checked);
|
||||
cqrini.WriteBool('Columns', 'ContestName', chkContestName.Checked);
|
||||
cqrini.WriteBool('Columns', 'STX', chkSTX.Checked);
|
||||
cqrini.WriteBool('Columns', 'SRX', chkSRX.Checked);
|
||||
cqrini.WriteBool('Columns', 'ContMsgSent', chkSTX_str.Checked);
|
||||
cqrini.WriteBool('Columns', 'ContMsgRcvd', chkSRX_str.Checked);
|
||||
|
||||
cqrini.WriteBool('Bands', '137kHz', cb136kHz.Checked);
|
||||
cqrini.WriteBool('Bands', '472kHz', cb472kHz.Checked);
|
||||
@ -2533,6 +2543,11 @@ begin
|
||||
chkPropagation.Checked := cqrini.ReadBool('Columns', 'Propagation', False);
|
||||
chkSatellite.Checked := cqrini.ReadBool('Columns', 'SatelliteName', False);
|
||||
chkRXFreq.Checked := cqrini.ReadBool('Columns', 'RXFreq', False);
|
||||
chkContestName.Checked := cqrini.ReadBool('Columns', 'ContestName', False);
|
||||
chkSTX.Checked := cqrini.ReadBool('Columns', 'STX', False);
|
||||
chkSRX.Checked := cqrini.ReadBool('Columns', 'SRX', False);
|
||||
chkSTX_str.Checked := cqrini.ReadBool('Columns', 'ContMsgSent', False);
|
||||
chkSRX_str.Checked := cqrini.ReadBool('Columns', 'ContMsgRcvd', False);
|
||||
|
||||
cb136kHz.Checked := cqrini.ReadBool('Bands', '137kHz', False);
|
||||
cb472kHz.Checked := cqrini.ReadBool('Bands', '472kHz', False);
|
||||
|
@ -1,7 +1,7 @@
|
||||
object frmSQLConsole: TfrmSQLConsole
|
||||
Left = 423
|
||||
Left = 122
|
||||
Height = 455
|
||||
Top = 229
|
||||
Top = 250
|
||||
Width = 660
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'help/h27.html'
|
||||
@ -12,7 +12,7 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
OnClose = FormClose
|
||||
OnShow = FormShow
|
||||
ShowHint = True
|
||||
LCLVersion = '0.9.30.2'
|
||||
LCLVersion = '2.0.0.4'
|
||||
inline mSQL: TSynMemo
|
||||
Cursor = crIBeam
|
||||
Left = 0
|
||||
@ -31,26 +31,13 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
Gutter.Width = 57
|
||||
Gutter.MouseActions = <
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbLeft
|
||||
ClickCount = ccAny
|
||||
ClickDir = cdDown
|
||||
Command = 13
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcOnMainGutterClick
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbRight
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdUp
|
||||
Command = 12
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcContextMenu
|
||||
end>
|
||||
Highlighter = SynSQLSyn1
|
||||
Keystrokes = <
|
||||
@ -476,134 +463,89 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
end>
|
||||
MouseActions = <
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = [ssShift, ssAlt]
|
||||
Button = mbLeft
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdDown
|
||||
Command = 1
|
||||
Command = emcStartSelections
|
||||
MoveCaret = True
|
||||
Option = 0
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = [ssShift]
|
||||
ShiftMask = [ssShift, ssAlt]
|
||||
Button = mbLeft
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdDown
|
||||
Command = 1
|
||||
Command = emcStartSelections
|
||||
MoveCaret = True
|
||||
Option = 1
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = [ssAlt]
|
||||
ShiftMask = [ssShift, ssAlt]
|
||||
Button = mbLeft
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdDown
|
||||
Command = 3
|
||||
Command = emcStartColumnSelections
|
||||
MoveCaret = True
|
||||
Option = 0
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = [ssShift, ssAlt]
|
||||
ShiftMask = [ssShift, ssAlt]
|
||||
Button = mbLeft
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdDown
|
||||
Command = 3
|
||||
Command = emcStartColumnSelections
|
||||
MoveCaret = True
|
||||
Option = 1
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbRight
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdUp
|
||||
Command = 12
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcContextMenu
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbLeft
|
||||
ClickCount = ccDouble
|
||||
ClickDir = cdDown
|
||||
Command = 6
|
||||
Command = emcSelectWord
|
||||
MoveCaret = True
|
||||
Option = 0
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbLeft
|
||||
ClickCount = ccTriple
|
||||
ClickDir = cdDown
|
||||
Command = 7
|
||||
Command = emcSelectLine
|
||||
MoveCaret = True
|
||||
Option = 0
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbLeft
|
||||
ClickCount = ccQuad
|
||||
ClickDir = cdDown
|
||||
Command = 8
|
||||
Command = emcSelectPara
|
||||
MoveCaret = True
|
||||
Option = 0
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbMiddle
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdDown
|
||||
Command = 10
|
||||
Command = emcPasteSelection
|
||||
MoveCaret = True
|
||||
Option = 0
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = [ssCtrl]
|
||||
ShiftMask = [ssShift, ssAlt, ssCtrl]
|
||||
Button = mbLeft
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdUp
|
||||
Command = 11
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcMouseLink
|
||||
end>
|
||||
MouseTextActions = <>
|
||||
MouseSelActions = <
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbLeft
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdDown
|
||||
Command = 9
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcStartDragMove
|
||||
end>
|
||||
Lines.Strings = (
|
||||
''
|
||||
)
|
||||
VisibleSpecialChars = [vscSpace, vscTabAtLast]
|
||||
RightEdge = 0
|
||||
SelectedColor.BackPriority = 50
|
||||
SelectedColor.ForePriority = 50
|
||||
SelectedColor.FramePriority = 50
|
||||
SelectedColor.BoldPriority = 50
|
||||
SelectedColor.ItalicPriority = 50
|
||||
SelectedColor.UnderlinePriority = 50
|
||||
SelectedColor.StrikeOutPriority = 50
|
||||
inline TSynGutterPartList
|
||||
object TSynGutterMarks
|
||||
Width = 24
|
||||
MouseActions = <>
|
||||
end
|
||||
object TSynGutterLineNumber
|
||||
Width = 17
|
||||
@ -617,35 +559,28 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
end
|
||||
object TSynGutterChanges
|
||||
Width = 4
|
||||
MouseActions = <>
|
||||
ModifiedColor = 59900
|
||||
SavedColor = clGreen
|
||||
end
|
||||
object TSynGutterSeparator
|
||||
Width = 2
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clWhite
|
||||
MarkupInfo.Foreground = clGray
|
||||
end
|
||||
object TSynGutterCodeFolding
|
||||
MouseActions = <
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbRight
|
||||
ClickCount = ccSingle
|
||||
ClickDir = cdUp
|
||||
Command = 16
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcCodeFoldContextMenu
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = [ssShift]
|
||||
Button = mbMiddle
|
||||
ClickCount = ccAny
|
||||
ClickDir = cdDown
|
||||
Command = 14
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcCodeFoldCollaps
|
||||
end
|
||||
item
|
||||
Shift = [ssShift]
|
||||
@ -653,58 +588,36 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
Button = mbMiddle
|
||||
ClickCount = ccAny
|
||||
ClickDir = cdDown
|
||||
Command = 14
|
||||
MoveCaret = False
|
||||
Command = emcCodeFoldCollaps
|
||||
Option = 1
|
||||
Priority = 0
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbLeft
|
||||
ClickCount = ccAny
|
||||
ClickDir = cdDown
|
||||
Command = 0
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcNone
|
||||
end>
|
||||
MarkupInfo.Background = clNone
|
||||
MarkupInfo.Foreground = clGray
|
||||
MouseActionsExpanded = <
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = []
|
||||
Button = mbLeft
|
||||
ClickCount = ccAny
|
||||
ClickDir = cdDown
|
||||
Command = 14
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcCodeFoldCollaps
|
||||
end>
|
||||
MouseActionsCollapsed = <
|
||||
item
|
||||
Shift = [ssCtrl]
|
||||
ShiftMask = [ssCtrl]
|
||||
Button = mbLeft
|
||||
ClickCount = ccAny
|
||||
ClickDir = cdDown
|
||||
Command = 15
|
||||
MoveCaret = False
|
||||
Option = 0
|
||||
Priority = 0
|
||||
Command = emcCodeFoldExpand
|
||||
end
|
||||
item
|
||||
Shift = []
|
||||
ShiftMask = [ssCtrl]
|
||||
Button = mbLeft
|
||||
ClickCount = ccAny
|
||||
ClickDir = cdDown
|
||||
Command = 15
|
||||
MoveCaret = False
|
||||
Command = emcCodeFoldExpand
|
||||
Option = 1
|
||||
Priority = 0
|
||||
end>
|
||||
end
|
||||
end
|
||||
@ -718,6 +631,7 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
Color = clWindow
|
||||
Columns = <>
|
||||
DataSource = dsrSQL
|
||||
Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgTabs, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgAutoSizeColumns]
|
||||
ReadOnly = True
|
||||
TabOrder = 1
|
||||
TitleStyle = tsNative
|
||||
@ -737,8 +651,8 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
end
|
||||
object ToolButton2: TToolButton
|
||||
Left = 24
|
||||
Height = 22
|
||||
Top = 2
|
||||
Width = 8
|
||||
Caption = 'ToolButton2'
|
||||
Style = tbsSeparator
|
||||
end
|
||||
@ -754,8 +668,8 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
end
|
||||
object ToolButton5: TToolButton
|
||||
Left = 78
|
||||
Height = 22
|
||||
Top = 2
|
||||
Width = 8
|
||||
Caption = 'ToolButton5'
|
||||
Style = tbsSeparator
|
||||
end
|
||||
@ -771,8 +685,8 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
end
|
||||
object ToolButton8: TToolButton
|
||||
Left = 132
|
||||
Height = 22
|
||||
Top = 2
|
||||
Width = 8
|
||||
Caption = 'ToolButton8'
|
||||
Style = tbsSeparator
|
||||
end
|
||||
@ -783,8 +697,8 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
end
|
||||
object ToolButton10: TToolButton
|
||||
Left = 163
|
||||
Height = 22
|
||||
Top = 2
|
||||
Width = 8
|
||||
Caption = 'ToolButton10'
|
||||
Style = tbsSeparator
|
||||
end
|
||||
@ -835,26 +749,11 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
object SynSQLSyn1: TSynSQLSyn
|
||||
DefaultFilter = 'SQL Files (*.sql)|*.sql'
|
||||
Enabled = False
|
||||
CommentAttri.FrameEdges = sfeAround
|
||||
DataTypeAttri.FrameEdges = sfeAround
|
||||
DefaultPackageAttri.FrameEdges = sfeAround
|
||||
ExceptionAttri.FrameEdges = sfeAround
|
||||
FunctionAttri.FrameEdges = sfeAround
|
||||
IdentifierAttri.FrameEdges = sfeAround
|
||||
KeyAttri.FrameEdges = sfeAround
|
||||
NumberAttri.FrameEdges = sfeAround
|
||||
PLSQLAttri.FrameEdges = sfeAround
|
||||
SpaceAttri.FrameEdges = sfeAround
|
||||
SQLPlusAttri.FrameEdges = sfeAround
|
||||
StringAttri.FrameEdges = sfeAround
|
||||
SymbolAttri.FrameEdges = sfeAround
|
||||
TableNameAttri.FrameEdges = sfeAround
|
||||
VariableAttri.FrameEdges = sfeAround
|
||||
SQLDialect = sqlInterbase6
|
||||
left = 392
|
||||
top = 56
|
||||
end
|
||||
object dsrSQL: TDatasource
|
||||
object dsrSQL: TDataSource
|
||||
DataSet = dmData.qSQLConsole
|
||||
left = 400
|
||||
top = 288
|
||||
@ -1139,8 +1038,9 @@ object frmSQLConsole: TfrmSQLConsole
|
||||
end
|
||||
object SynAutoComplete1: TSynAutoComplete
|
||||
EndOfTokenChr = '()[].'
|
||||
Editor = mSQL
|
||||
ShortCut = 8224
|
||||
ExecCommandID = ecSynAutoCompletionExecute
|
||||
Editor = mSQL
|
||||
left = 536
|
||||
top = 56
|
||||
end
|
||||
|
@ -105,13 +105,15 @@ end;
|
||||
procedure TfraCWKeys.btnF1MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F1',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF10MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F10',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF10MouseLeave(Sender: TObject);
|
||||
@ -127,7 +129,8 @@ end;
|
||||
procedure TfraCWKeys.btnF2MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F2',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF2MouseLeave(Sender: TObject);
|
||||
@ -138,7 +141,8 @@ end;
|
||||
procedure TfraCWKeys.btnF3MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F3',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF3MouseLeave(Sender: TObject);
|
||||
@ -149,7 +153,8 @@ end;
|
||||
procedure TfraCWKeys.btnF4MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F4',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF4MouseLeave(Sender: TObject);
|
||||
@ -160,7 +165,8 @@ end;
|
||||
procedure TfraCWKeys.btnF5MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F5',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF5MouseLeave(Sender: TObject);
|
||||
@ -171,7 +177,8 @@ end;
|
||||
procedure TfraCWKeys.btnF6MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F6',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF6MouseLeave(Sender: TObject);
|
||||
@ -182,7 +189,8 @@ end;
|
||||
procedure TfraCWKeys.btnF7MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F7',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF7MouseLeave(Sender: TObject);
|
||||
@ -193,7 +201,8 @@ end;
|
||||
procedure TfraCWKeys.btnF8MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F8',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF8MouseLeave(Sender: TObject);
|
||||
@ -204,7 +213,8 @@ end;
|
||||
procedure TfraCWKeys.btnF9MouseEnter(Sender: TObject);
|
||||
begin
|
||||
self.lblToShowMouseOverTextCwKeys.Caption:=dmUtils.GetCWMessage('F9',frmNewQSO.edtCall.Text,
|
||||
frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
frmNewQSO.edtHisRST.Text, frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,'');
|
||||
end;
|
||||
|
||||
procedure TfraCWKeys.btnF9MouseLeave(Sender: TObject);
|
||||
@ -274,8 +284,9 @@ begin
|
||||
frmNewQSO.RunVK(cwkey)
|
||||
else
|
||||
if Assigned(frmNewQSO.CWint) then
|
||||
// works with contest addition - frmNewQSO.CWint.SendText(dmUtils.GetCWMessage(cwkey,frmNewQSO.edtCall.Text,frmNewQSO.edtHisRST.Text,frmNewQSO.edtHisRSTstx.Text,frmNewQSO.edtHisRSTstxAdd.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage(cwkey,frmNewQSO.edtCall.Text,frmNewQSO.edtHisRST.Text,frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''))
|
||||
frmNewQSO.CWint.SendText(dmUtils.GetCWMessage(cwkey,frmNewQSO.edtCall.Text,frmNewQSO.edtHisRST.Text,
|
||||
frmNewQSO.edtContestSerialSent.Text,frmNewQSO.edtContestExchangeMessageSent.Text,
|
||||
frmNewQSO.edtName.Text,frmNewQSO.lblGreeting.Caption,''));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -6,115 +6,115 @@ object fraExportPref: TfraExportPref
|
||||
ClientHeight = 480
|
||||
ClientWidth = 595
|
||||
TabOrder = 0
|
||||
DesignLeft = 590
|
||||
DesignTop = 201
|
||||
DesignLeft = 87
|
||||
DesignTop = 319
|
||||
object chkProfile: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 324
|
||||
Width = 72
|
||||
Width = 63
|
||||
Caption = 'Profile'
|
||||
TabOrder = 0
|
||||
end
|
||||
object chkAscTime: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 440
|
||||
Width = 207
|
||||
Width = 185
|
||||
Caption = 'Most recent entries on top'
|
||||
TabOrder = 72
|
||||
end
|
||||
object chkExCont: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 296
|
||||
Width = 95
|
||||
Width = 85
|
||||
Caption = 'Continent'
|
||||
TabOrder = 1
|
||||
end
|
||||
object chkexQTH: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 270
|
||||
Width = 57
|
||||
Width = 51
|
||||
Caption = 'QTH'
|
||||
TabOrder = 2
|
||||
end
|
||||
object chkexName: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 243
|
||||
Width = 66
|
||||
Width = 61
|
||||
Caption = 'Name'
|
||||
TabOrder = 3
|
||||
end
|
||||
object chkexRSTR: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 217
|
||||
Width = 84
|
||||
Width = 80
|
||||
Caption = 'RST rcvd'
|
||||
TabOrder = 4
|
||||
end
|
||||
object chkexRSTS: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 191
|
||||
Width = 84
|
||||
Width = 79
|
||||
Caption = 'RST sent'
|
||||
TabOrder = 5
|
||||
end
|
||||
object chkexFreq: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 165
|
||||
Width = 57
|
||||
Width = 52
|
||||
Caption = 'Freq'
|
||||
TabOrder = 6
|
||||
end
|
||||
object chkexMode: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 139
|
||||
Width = 65
|
||||
Width = 58
|
||||
Caption = 'Mode'
|
||||
TabOrder = 7
|
||||
end
|
||||
object chkexCall: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 114
|
||||
Width = 51
|
||||
Width = 47
|
||||
Caption = 'Call'
|
||||
TabOrder = 8
|
||||
end
|
||||
object chkexTimeoff: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 89
|
||||
Width = 83
|
||||
Width = 74
|
||||
Caption = 'Time off'
|
||||
TabOrder = 9
|
||||
end
|
||||
object chkexTimeon: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 64
|
||||
Width = 80
|
||||
Width = 74
|
||||
Caption = 'Time on'
|
||||
TabOrder = 10
|
||||
end
|
||||
object chkexDate: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 38
|
||||
Width = 59
|
||||
Width = 54
|
||||
Caption = 'Date'
|
||||
TabOrder = 11
|
||||
end
|
||||
object edtWDate: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 37
|
||||
Width = 40
|
||||
TabOrder = 12
|
||||
@ -122,7 +122,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWTimeOn: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 64
|
||||
Width = 40
|
||||
TabOrder = 13
|
||||
@ -130,7 +130,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWTimeOff: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 88
|
||||
Width = 40
|
||||
TabOrder = 14
|
||||
@ -138,7 +138,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWCall: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 113
|
||||
Width = 40
|
||||
TabOrder = 15
|
||||
@ -146,7 +146,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWMode: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 139
|
||||
Width = 40
|
||||
TabOrder = 16
|
||||
@ -154,7 +154,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWFreq: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 166
|
||||
Width = 40
|
||||
TabOrder = 17
|
||||
@ -162,7 +162,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWRstS: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 190
|
||||
Width = 40
|
||||
TabOrder = 18
|
||||
@ -170,7 +170,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWRstR: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 217
|
||||
Width = 40
|
||||
TabOrder = 19
|
||||
@ -178,7 +178,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWName: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 243
|
||||
Width = 40
|
||||
TabOrder = 20
|
||||
@ -186,7 +186,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWQTH: TEdit
|
||||
Left = 110
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 269
|
||||
Width = 40
|
||||
TabOrder = 21
|
||||
@ -194,143 +194,143 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object Label46: TLabel
|
||||
Left = 6
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 12
|
||||
Width = 33
|
||||
Width = 27
|
||||
Caption = 'Field'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label49: TLabel
|
||||
Left = 110
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 12
|
||||
Width = 42
|
||||
Width = 36
|
||||
Caption = 'Width'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label47: TLabel
|
||||
Left = 174
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 12
|
||||
Width = 33
|
||||
Width = 27
|
||||
Caption = 'Field'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label50: TLabel
|
||||
Left = 302
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 12
|
||||
Width = 42
|
||||
Width = 36
|
||||
Caption = 'Width'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label48: TLabel
|
||||
Left = 366
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 12
|
||||
Width = 33
|
||||
Width = 27
|
||||
Caption = 'Field'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label51: TLabel
|
||||
Left = 528
|
||||
Height = 17
|
||||
Height = 15
|
||||
Top = 12
|
||||
Width = 42
|
||||
Width = 36
|
||||
Caption = 'Width'
|
||||
ParentColor = False
|
||||
end
|
||||
object chkexQSLS: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 39
|
||||
Width = 87
|
||||
Width = 80
|
||||
Caption = 'QSL sent'
|
||||
TabOrder = 22
|
||||
end
|
||||
object chkexQSLR: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 64
|
||||
Width = 115
|
||||
Width = 105
|
||||
Caption = 'QSL received'
|
||||
TabOrder = 23
|
||||
end
|
||||
object chkexQSLVIA: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 89
|
||||
Width = 118
|
||||
Width = 108
|
||||
Caption = 'QSL manager'
|
||||
TabOrder = 24
|
||||
end
|
||||
object chkexLoc: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 114
|
||||
Width = 79
|
||||
Width = 71
|
||||
Caption = 'Locator'
|
||||
TabOrder = 25
|
||||
end
|
||||
object chkexMyLoc: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 139
|
||||
Width = 98
|
||||
Width = 88
|
||||
Caption = 'My locator'
|
||||
TabOrder = 26
|
||||
end
|
||||
object chkexIOTA: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 166
|
||||
Width = 59
|
||||
Width = 53
|
||||
Caption = 'IOTA'
|
||||
TabOrder = 27
|
||||
end
|
||||
object chkexAward: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 192
|
||||
Width = 71
|
||||
Width = 64
|
||||
Caption = 'Award'
|
||||
TabOrder = 28
|
||||
end
|
||||
object chkexCounty: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 217
|
||||
Width = 75
|
||||
Width = 69
|
||||
Caption = 'County'
|
||||
TabOrder = 29
|
||||
end
|
||||
object chkexPower: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 243
|
||||
Width = 70
|
||||
Width = 62
|
||||
Caption = 'Power'
|
||||
TabOrder = 30
|
||||
end
|
||||
object chkexDXCC: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 270
|
||||
Width = 64
|
||||
Width = 58
|
||||
Caption = 'DXCC'
|
||||
TabOrder = 31
|
||||
end
|
||||
object chkexRemarks: TCheckBox
|
||||
Left = 174
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 297
|
||||
Width = 85
|
||||
Width = 77
|
||||
Caption = 'Remarks'
|
||||
TabOrder = 32
|
||||
end
|
||||
object edtWRemarks: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 296
|
||||
Width = 40
|
||||
TabOrder = 33
|
||||
@ -338,7 +338,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWDXCC: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 270
|
||||
Width = 40
|
||||
TabOrder = 34
|
||||
@ -346,7 +346,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWPower: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 243
|
||||
Width = 40
|
||||
TabOrder = 35
|
||||
@ -354,7 +354,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWCounty: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 217
|
||||
Width = 40
|
||||
TabOrder = 36
|
||||
@ -362,7 +362,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWAward: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 191
|
||||
Width = 40
|
||||
TabOrder = 37
|
||||
@ -370,7 +370,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWIOTA: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 165
|
||||
Width = 40
|
||||
TabOrder = 38
|
||||
@ -378,7 +378,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWMyLoc: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 139
|
||||
Width = 40
|
||||
TabOrder = 39
|
||||
@ -386,7 +386,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWLoc: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 114
|
||||
Width = 40
|
||||
TabOrder = 40
|
||||
@ -394,7 +394,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWQSLVIA: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 89
|
||||
Width = 40
|
||||
TabOrder = 41
|
||||
@ -402,7 +402,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWQSLR: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 64
|
||||
Width = 40
|
||||
TabOrder = 42
|
||||
@ -410,7 +410,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWQSLS: TEdit
|
||||
Left = 302
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 38
|
||||
Width = 40
|
||||
TabOrder = 43
|
||||
@ -418,119 +418,119 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object chkexeQSLRDate: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 376
|
||||
Width = 136
|
||||
Width = 124
|
||||
Caption = 'eQSL QSLR date'
|
||||
TabOrder = 44
|
||||
end
|
||||
object chkexeQSLR: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 350
|
||||
Width = 126
|
||||
Width = 116
|
||||
Caption = 'eQSL QSL rcvd'
|
||||
TabOrder = 45
|
||||
end
|
||||
object chkexeQSLSDate: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 324
|
||||
Width = 135
|
||||
Width = 124
|
||||
Caption = 'eQSL QSLS date'
|
||||
TabOrder = 46
|
||||
end
|
||||
object chkexeQSLS: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 298
|
||||
Width = 126
|
||||
Width = 115
|
||||
Caption = 'eQSL QSL sent'
|
||||
TabOrder = 47
|
||||
end
|
||||
object chkexQSLRDate: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 271
|
||||
Width = 121
|
||||
Width = 112
|
||||
Caption = 'QSL rcvd date'
|
||||
TabOrder = 48
|
||||
end
|
||||
object chkexQSLSDate: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 244
|
||||
Width = 121
|
||||
Width = 111
|
||||
Caption = 'QSL sent date'
|
||||
TabOrder = 49
|
||||
end
|
||||
object chkexLQSLRDate: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 218
|
||||
Width = 139
|
||||
Width = 126
|
||||
Caption = 'LoTW QSLR date'
|
||||
TabOrder = 50
|
||||
end
|
||||
object chkexLQSLR: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 192
|
||||
Width = 129
|
||||
Width = 118
|
||||
Caption = 'LoTW QSL rcvd'
|
||||
TabOrder = 51
|
||||
end
|
||||
object chkexLQSLSDate: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 166
|
||||
Width = 138
|
||||
Width = 126
|
||||
Caption = 'LoTW QSLS date'
|
||||
TabOrder = 52
|
||||
end
|
||||
object chkexLQSLS: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 140
|
||||
Width = 129
|
||||
Width = 117
|
||||
Caption = 'LoTW QSL sent'
|
||||
TabOrder = 53
|
||||
end
|
||||
object chkexState: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 115
|
||||
Width = 62
|
||||
Width = 58
|
||||
Caption = 'State'
|
||||
TabOrder = 54
|
||||
end
|
||||
object chkexNote: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 89
|
||||
Width = 60
|
||||
Width = 54
|
||||
Caption = 'Note'
|
||||
TabOrder = 55
|
||||
end
|
||||
object chkexITU: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 64
|
||||
Width = 48
|
||||
Width = 46
|
||||
Caption = 'ITU'
|
||||
TabOrder = 56
|
||||
end
|
||||
object chkexWAZ: TCheckBox
|
||||
Left = 368
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 39
|
||||
Width = 59
|
||||
Width = 53
|
||||
Caption = 'WAZ'
|
||||
TabOrder = 57
|
||||
end
|
||||
object edtWWAZ: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 38
|
||||
Width = 40
|
||||
TabOrder = 58
|
||||
@ -538,7 +538,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWITU: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 63
|
||||
Width = 40
|
||||
TabOrder = 59
|
||||
@ -546,7 +546,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWNote: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 88
|
||||
Width = 40
|
||||
TabOrder = 60
|
||||
@ -554,7 +554,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWState: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 113
|
||||
Width = 40
|
||||
TabOrder = 61
|
||||
@ -562,7 +562,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWLQSLS: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 139
|
||||
Width = 40
|
||||
TabOrder = 62
|
||||
@ -570,7 +570,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWLQSLSDate: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 165
|
||||
Width = 40
|
||||
TabOrder = 63
|
||||
@ -578,7 +578,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWLQSLR: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 191
|
||||
Width = 40
|
||||
TabOrder = 64
|
||||
@ -586,7 +586,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWLQSLRDate: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 217
|
||||
Width = 40
|
||||
TabOrder = 65
|
||||
@ -594,7 +594,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWQSLSDate: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 243
|
||||
Width = 40
|
||||
TabOrder = 66
|
||||
@ -602,7 +602,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWQSLRDate: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 270
|
||||
Width = 40
|
||||
TabOrder = 67
|
||||
@ -610,7 +610,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWeQSLS: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 297
|
||||
Width = 40
|
||||
TabOrder = 68
|
||||
@ -618,7 +618,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWeQSLSDate: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 323
|
||||
Width = 40
|
||||
TabOrder = 69
|
||||
@ -626,7 +626,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWeQSLR: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 349
|
||||
Width = 40
|
||||
TabOrder = 70
|
||||
@ -634,7 +634,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWeQSLRDate: TEdit
|
||||
Left = 530
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 375
|
||||
Width = 40
|
||||
TabOrder = 71
|
||||
@ -642,31 +642,31 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object chkExPropagation: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 350
|
||||
Width = 112
|
||||
Width = 98
|
||||
Caption = 'Propagation'
|
||||
TabOrder = 73
|
||||
end
|
||||
object chkExSat: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 378
|
||||
Width = 123
|
||||
Width = 112
|
||||
Caption = 'Satellite name'
|
||||
TabOrder = 74
|
||||
end
|
||||
object chkExRXFreq: TCheckBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 23
|
||||
Top = 410
|
||||
Width = 116
|
||||
Width = 107
|
||||
Caption = 'RX frequency'
|
||||
TabOrder = 75
|
||||
end
|
||||
object edtWProp: TEdit
|
||||
Left = 160
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 349
|
||||
Width = 40
|
||||
TabOrder = 76
|
||||
@ -674,7 +674,7 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWSatName: TEdit
|
||||
Left = 160
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 377
|
||||
Width = 40
|
||||
TabOrder = 77
|
||||
@ -682,10 +682,21 @@ object fraExportPref: TfraExportPref
|
||||
end
|
||||
object edtWRxFreq: TEdit
|
||||
Left = 160
|
||||
Height = 27
|
||||
Height = 32
|
||||
Top = 407
|
||||
Width = 40
|
||||
TabOrder = 78
|
||||
Text = '50'
|
||||
end
|
||||
object chkexContest: TCheckBox
|
||||
Left = 174
|
||||
Height = 23
|
||||
Hint = 'ADIF Fields SRX, STX, SRX_STRING, STX_STRING AND CONTEST_ID'
|
||||
Top = 324
|
||||
Width = 72
|
||||
Caption = 'Contest'
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 79
|
||||
end
|
||||
end
|
||||
|
@ -12,6 +12,7 @@ type
|
||||
{ TfraExportPref }
|
||||
|
||||
TfraExportPref = class(TFrame)
|
||||
chkexContest: TCheckBox;
|
||||
chkExRXFreq : TCheckBox;
|
||||
chkExSat : TCheckBox;
|
||||
chkExPropagation : TCheckBox;
|
||||
@ -152,6 +153,7 @@ 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.WriteString('Export', 'WDate', edtWDate.Text);
|
||||
cqrini.WriteString('Export', 'Wtime_on', edtWTimeOn.Text);
|
||||
@ -236,6 +238,7 @@ 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);
|
||||
|
||||
|
||||
edtWDate.Text := cqrini.ReadString('Export', 'WDate', '50');
|
||||
|
@ -35,6 +35,7 @@ const h_SRX = 6056;
|
||||
const h_SRX_STRING = 59227;
|
||||
const h_STX = 6072;
|
||||
const h_STX_STRING = 61787;
|
||||
const h_CONTEST_ID = 33914;
|
||||
const h_TIME_OFF = 39033;
|
||||
const h_TIME_ON = 62223;
|
||||
const h_TX_PWR = 21722;
|
||||
|
@ -768,36 +768,41 @@ begin
|
||||
//not implemented in hamlib command set
|
||||
//sending 0xFF as text works with Icom
|
||||
tcp.SendMessage('b'+#$0FF+LineEnding);
|
||||
//All chrs are spaces stops cw for kenwood (by ts480 manual, not tested)
|
||||
tcp.SendMessage('b'+' '+LineEnding);
|
||||
//All chrs are spaces stops cw for kenwood. Empty chrs (max24) in buffer are filled with spaces.
|
||||
// (info by ts480 manual, not tested)
|
||||
tcp.SendMessage('b '+LineEnding);
|
||||
end;
|
||||
|
||||
procedure TCWHamLib.SendText(text : String);
|
||||
var c:integer;
|
||||
|
||||
begin
|
||||
c:= length(text);
|
||||
if c>10 then
|
||||
Begin
|
||||
//different rigs support different length of b-command. 10chr should be safe for all
|
||||
repeat
|
||||
Begin
|
||||
Rmsg :='';
|
||||
tcp.SendMessage('b'+copy(text,1,10)+LineEnding);
|
||||
if fDebugMode then
|
||||
if text<>'' then
|
||||
begin
|
||||
c:= length(text);
|
||||
if c>10 then
|
||||
Begin
|
||||
Writeln('Sending HL-block:',copy(text,1,10));
|
||||
//different rigs support different length of b-command. 10chr should be safe for all
|
||||
repeat
|
||||
Begin
|
||||
Rmsg :='';
|
||||
tcp.SendMessage('b'+copy(text,1,10)+LineEnding);
|
||||
if fDebugMode then
|
||||
Begin
|
||||
Writeln('Sending HL-block:',copy(text,1,10));
|
||||
end;
|
||||
text := copy(text,11,length(text));
|
||||
c:= length(text);
|
||||
end;
|
||||
until c=0;
|
||||
end
|
||||
else
|
||||
Begin
|
||||
tcp.SendMessage('b'+text+LineEnding);
|
||||
if fDebugMode then Writeln('Sending HL-message:','b'+text+LineEnding);
|
||||
end;
|
||||
text := copy(text,11,length(text));
|
||||
c:= length(text);
|
||||
end;
|
||||
until c=0;
|
||||
end
|
||||
else
|
||||
Begin
|
||||
tcp.SendMessage('b'+text+LineEnding);
|
||||
if fDebugMode then Writeln('Sending HL-message:',text);
|
||||
end;
|
||||
end
|
||||
else if fDebugMode then Writeln('Empty message!');
|
||||
end;
|
||||
|
||||
procedure TCWHamLib.Close;
|
||||
|