1 (*
2  ***************************************************************************
3  *                                                                         *
4  *   This program is free software; you can redistribute it and/or modify  *
5  *   it under the terms of the GNU General Public License as published by  *
6  *   the Free Software Foundation; either version 2 of the License.        *
7  *                                                                         *
8  ***************************************************************************
9 *)
10 
11 
12 unit fPreferences;
13 
14 {$mode objfpc}{$H+}
15 
16 interface
17 
18 uses
19   Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
20   ExtCtrls, StdCtrls, Buttons, inifiles, DB, process, Spin, ColorBox, lcltype,
21   Calendar, EditBtn, uCWKeying, frExportPref, types, fileutil, LazFileUtils,LCLIntf, Dos;
22 
23 type
24 
25   { TfrmPreferences }
26 
27   TfrmPreferences = class(TForm)
28     Bevel1: TBevel;
29     Bevel2: TBevel;
30     Bevel3: TBevel;
31     Bevel4: TBevel;
32     btnBrowseBackup1: TButton;
33     btnDefineProfile1: TButton;
34     btnHelp1: TButton;
35     btnWsjtPath: TButton;
36     btnSecondLoad: TButton;
37     btnFrequencies1: TButton;
38     btnLoadFifth: TButton;
39     btnLoadFourth: TButton;
40     btnLoadThird: TButton;
41     btnLoadSecond: TButton;
42     btnOK: TButton;
43     btnCancel: TButton;
44     btnFrequencies: TButton;
45     btnDefineProfile: TButton;
46     btnSplit: TButton;
47     btnThirdLoad: TButton;
48     btnSetRadio3: TButton;
49     btnSetRadio4: TButton;
50     btnSelbFont: TButton;
51     btnSeleFont: TButton;
52     btnSelsFont: TButton;
53     btnSelqFont: TButton;
54     btnSetFirst: TButton;
55     btnSetSecond: TButton;
56     btnSetThird: TButton;
57     btnSetFourth: TButton;
58     btnSetFifth: TButton;
59     btnLoadFirst: TButton;
60     btnHelp: TButton;
61     btnSelectBandFont: TButton;
62     Button1: TButton;
63     Button2: TButton;
64     btnTestXplanet: TButton;
65     btnFirstLoad: TButton;
66     btnChangeDefaultFreq: TButton;
67     btnKeyMacros: TButton;
68     btnBrowseBackup: TButton;
69     btnFldigiPath: TButton;
70     btnChangeDefFreq: TButton;
71     btnChangeDefMode: TButton;
72     btnAlertCallsigns: TButton;
73     btnCfgStorage: TButton;
74     btnAddTrxMem : TButton;
75     btnSelectQSOColor : TButton;
76     btnForceMembershipUpdate : TButton;
77     cb10m1: TCheckBox;
78     cb12m1: TCheckBox;
79     cb136kHz: TCheckBox;
80     cb472kHz: TCheckBox;
81     cb13cm1: TCheckBox;
82     cb15m1: TCheckBox;
83     cb160m: TCheckBox;
84     cb160m1: TCheckBox;
85     cb17m1: TCheckBox;
86     cb1cm1: TCheckBox;
87     cb20m1: TCheckBox;
88     cb23cm1: TCheckBox;
89     cb2m1: TCheckBox;
90     cb30m1: TCheckBox;
91     cb3cm1: TCheckBox;
92     cb40m1: TCheckBox;
93     cb47GHz1: TCheckBox;
94     cb5cm1: TCheckBox;
95     cb6m1: TCheckBox;
96     cb70cm1: TCheckBox;
97     cb76GHz1: TCheckBox;
98     cb80m: TCheckBox;
99     cb40m: TCheckBox;
100     cb30m: TCheckBox;
101     cb20m: TCheckBox;
102     cb17m: TCheckBox;
103     cb15m: TCheckBox;
104     cb12m: TCheckBox;
105     cb10m: TCheckBox;
106     cb6m: TCheckBox;
107     cb2m: TCheckBox;
108     cb70cm: TCheckBox;
109     cb23cm: TCheckBox;
110     cb13cm: TCheckBox;
111     cb80m1: TCheckBox;
112     cb8cm: TCheckBox;
113     cb5cm: TCheckBox;
114     cb3cm: TCheckBox;
115     cb1cm: TCheckBox;
116     cb47GHz: TCheckBox;
117     cb76GHz: TCheckBox;
118     cb8cm1: TCheckBox;
119     cb4m: TCheckBox;
120     cb125m: TCheckBox;
121     cb60m: TCheckBox;
122     cb30cm: TCheckBox;
123     cgLimit: TCheckGroup;
124     cbNoKeyerReset: TCheckBox;
125     chkOperator: TCheckBox;
126     chkDarcDok: TCheckBox;
127     chkNewDOKTables: TCheckBox;
128     chkRBNMAutoConn: TCheckBox;
129     chkRBNLink: TCheckBox;
130     chkRot1AzMinMax: TCheckBox;
131     chkRot2AzMinMax: TCheckBox;
132     chkShowOwnPos: TCheckBox;
133     chkDistance: TCheckBox;
134     chkSTX: TCheckBox;
135     chkSRX: TCheckBox;
136     chkSTX_str: TCheckBox;
137     chkSRX_str: TCheckBox;
138     chkContestName: TCheckBox;
139     chkShowB4call: TCheckBox;
140     chkRXFreq : TCheckBox;
141     chkSatellite : TCheckBox;
142     chkPropagation : TCheckBox;
143     chkSatelliteMode : TCheckBox;
144     chkUpdateAMSATstatus : TCheckBox;
145     chkCheckMembershipUpdate : TCheckBox;
146     chkConToDXC: TCheckBox;
147     chkFldXmlRpc: TCheckBox;
148     chkQSOColor : TCheckBox;
149     chkFillAwardField : TCheckBox;
150     chkShowDxcCountry: TCheckBox;
151     chkUseCallbookZonesEtc : TCheckBox;
152     chkModeRelatedOnly : TCheckBox;
153     chkTrxControlDebug : TCheckBox;
154     chkShowCondxValues: TCheckBox;
155     chkCondxCalcHF: TCheckBox;
156     chkCondxCalcVHF: TCheckBox;
157     chkCapFirstQTHLetter: TCheckBox;
158     chkIgnoreLoTW: TCheckBox;
159     chkExpCommet: TCheckBox;
160     chkPlusToBandMap: TCheckBox;
161     chkgridshowhint: TCheckBox;
162     chkgriddotsinsteadspaces: TCheckBox;
163     chkgridboldtitle: TCheckBox;
164     chkgridsmallrows: TCheckBox;
165     chkgridgreenbar: TCheckBox;
166     chkCloseAfterUpload : TCheckBox;
167     chkRunWsjt: TCheckBox;
168     chkUseNewQSOFreqMode: TCheckBox;
169     chkUseCallBookData: TCheckBox;
170     chkHrUpEnabled: TCheckBox;
171     chkHrUpOnline: TCheckBox;
172     chkHaUpEnabled: TCheckBox;
173     chkClUpEnabled: TCheckBox;
174     chkHaupOnline: TCheckBox;
175     chkAskBackup : TCheckBox;
176     chkClUpOnline: TCheckBox;
177     chkShow630M : TCheckBox;
178     chkRBNAutoConn : TCheckBox;
179     chkShowMiles : TCheckBox;
180     chkIgnoreBandFreq : TCheckBox;
181     chkRot1RunRotCtld: TCheckBox;
182     chkRot2RunRotCtld: TCheckBox;
183     chkClearRIT : TCheckBox;
184     chkCountry: TCheckBox;
185     chkR1RunRigCtld: TCheckBox;
186     chkR2RunRigCtld: TCheckBox;
187     chkR1SendCWR: TCheckBox;
188     chkR2SendCWR: TCheckBox;
189     chkShowBckEQSL: TCheckBox;
190     chkSysUTC: TCheckBox;
191     chkAllVariants: TCheckBox;
192     chkeQSLRcvd: TCheckBox;
193     chkeQSLRcvdDate: TCheckBox;
194     chkQSLRAll: TCheckBox;
195     chkeQSLSentDate: TCheckBox;
196     chkeQSLSent: TCheckBox;
197     chkShowLoTWInfo: TCheckBox;
198     chkShowBckLoTW: TCheckBox;
199     chkAutoQSLS: TCheckBox;
200     chkAutoDQSLS: TCheckBox;
201     chkAutoQQSLS: TCheckBox;
202     chkIntQSLViewer: TCheckBox;
203     chkQSLSentDate: TCheckBox;
204     chkQSLRcvdDate: TCheckBox;
205     chkAddAfterSaveQSO: TCheckBox;
206     chkRunFldigi: TCheckBox;
207     chkIgnoreQRZQSL: TCheckBox;
208     chkMvToRem: TCheckBox;
209     chkXplanetColor: TCheckBox;
210     chkEnableBackup: TCheckBox;
211     chkCompressBackup: TCheckBox;
212     chkCont: TCheckBox;
213     chkNewQSLTables: TCheckBox;
214     chkSunUTC: TCheckBox;
215     chkShow60M: TCheckBox;
216     chkShow125M: TCheckBox;
217     chkPotSpeed: TCheckBox;
218     chkShowRecentQSOs: TCheckBox;
219     chkUseDXCColors: TCheckBox;
220     chkNewQSOLoTW: TCheckBox;
221     chkIncLoTWDXCC: TCheckBox;
222     chkLoTWQSLSDate: TCheckBox;
223     chkLoTWQSLRDate: TCheckBox;
224     chkLoTWQSLS: TCheckBox;
225     chkLoTWQSLR: TCheckBox;
226     chkState: TCheckBox;
227     chkShowDeleted: TCheckBox;
228     chkNewDXCCTables: TCheckBox;
229     chkShow4M: TCheckBox;
230     chkDeleteAfterQSO: TCheckBox;
231     chkAutoSearch: TCheckBox;
232     chkShowXplanet: TCheckBox;
233     chkCloseXplanet: TCheckBox;
234     chkShowActiveBand: TCheckBox;
235     chkShowActiveMode: TCheckBox;
236     chkSaveBandMap: TCheckBox;
237     chkBandMapkHz: TCheckBox;
238     chkShowIOTAInfo: TCheckBox;
239     chkShowITUInfo: TCheckBox;
240     chkShowWAZInfo: TCheckBox;
241     chkUseDefaultSEttings: TCheckBox;
242     chkAward3: TCheckBox;
243     chkAward4: TCheckBox;
244     chkAward5: TCheckBox;
245     chkCallSign3: TCheckBox;
246     chkCallSign4: TCheckBox;
247     chkCallSign5: TCheckBox;
248     chkCounty3: TCheckBox;
249     chkCounty4: TCheckBox;
250     chkCounty5: TCheckBox;
251     chkCW1: TCheckBox;
252     chkDate3: TCheckBox;
253     chkDate4: TCheckBox;
254     chkDate5: TCheckBox;
255     chkDXCC3: TCheckBox;
256     chkDXCC4: TCheckBox;
257     chkDXCC5: TCheckBox;
258     chkexAward1: TCheckBox;
259     chkexCall1: TCheckBox;
260     chkexCounty1: TCheckBox;
261     chkexDate1: TCheckBox;
262     chkexDXCC1: TCheckBox;
263     chkexFreq1: TCheckBox;
264     chkexIOTA1: TCheckBox;
265     chkexITU1: TCheckBox;
266     chkexLoc1: TCheckBox;
267     chkexMode1: TCheckBox;
268     chkexMyLoc1: TCheckBox;
269     chkexName1: TCheckBox;
270     chkexNote1: TCheckBox;
271     chkexPower1: TCheckBox;
272     chkexQSLR1: TCheckBox;
273     chkexQSLS1: TCheckBox;
274     chkexQSLVIA1: TCheckBox;
275     chkexQTH1: TCheckBox;
276     chkexRemarks1: TCheckBox;
277     chkexRSTR1: TCheckBox;
278     chkexRSTS1: TCheckBox;
279     chkexTimeoff1: TCheckBox;
280     chkexTimeon1: TCheckBox;
281     chkexWAZ1: TCheckBox;
282     chkexAscTime: TCheckBox;
283     chkFreq3: TCheckBox;
284     chkFreq4: TCheckBox;
285     chkFreq5: TCheckBox;
286     chkIOTA3: TCheckBox;
287     chkIOTA4: TCheckBox;
288     chkIOTA5: TCheckBox;
289     chkITU3: TCheckBox;
290     chkITU4: TCheckBox;
291     chkITU5: TCheckBox;
292     chkLoc3: TCheckBox;
293     chkLoc4: TCheckBox;
294     chkLoc5: TCheckBox;
295     chkMode3: TCheckBox;
296     chkMode4: TCheckBox;
297     chkMode5: TCheckBox;
298     chkMyLoc3: TCheckBox;
299     chkMyLoc4: TCheckBox;
300     chkMyLoc5: TCheckBox;
301     chkName3: TCheckBox;
302     chkName4: TCheckBox;
303     chkName5: TCheckBox;
304     chkPower3: TCheckBox;
305     chkPower4: TCheckBox;
306     chkPower5: TCheckBox;
307     chkProfile1: TCheckBox;
308     chkQSL_R3: TCheckBox;
309     chkQSL_R4: TCheckBox;
310     chkQSL_R5: TCheckBox;
311     chkQSL_S3: TCheckBox;
312     chkQSL_S4: TCheckBox;
313     chkQSL_S5: TCheckBox;
314     chkQSL_VIA3: TCheckBox;
315     chkQSL_VIA4: TCheckBox;
316     chkQSL_VIA5: TCheckBox;
317     chkQTH3: TCheckBox;
318     chkQTH4: TCheckBox;
319     chkQTH5: TCheckBox;
320     chkRefreshAfterSave1: TCheckBox;
321     chkRemarks3: TCheckBox;
322     chkRemarks4: TCheckBox;
323     chkRemarks5: TCheckBox;
324     chkRST_R3: TCheckBox;
325     chkRST_R4: TCheckBox;
326     chkRST_R5: TCheckBox;
327     chkRST_S3: TCheckBox;
328     chkRST_S4: TCheckBox;
329     chkRST_S5: TCheckBox;
330     chkShow10m1: TCheckBox;
331     chkShow12m1: TCheckBox;
332     chkShow136k1: TCheckBox;
333     chkShow13cm1: TCheckBox;
334     chkShow15m1: TCheckBox;
335     chkShow160m1: TCheckBox;
336     chkShow17m1: TCheckBox;
337     chkShow1cm1: TCheckBox;
338     chkShow20m1: TCheckBox;
339     chkShow23cm1: TCheckBox;
340     chkShow2m1: TCheckBox;
341     chkShow30m1: TCheckBox;
342     chkShow3cm1: TCheckBox;
343     chkShow3mm1: TCheckBox;
344     chkShow40m1: TCheckBox;
345     chkShow5cm1: TCheckBox;
346     chkShow6m1: TCheckBox;
347     chkShow6mm1: TCheckBox;
348     chkShow33CM: TCheckBox;
349     chkShow80m1: TCheckBox;
350     chkShow8cm1: TCheckBox;
351     chkSkipModeFreq: TCheckBox;
352     chkRefreshAfterSave: TCheckBox;
353     chkCW: TCheckBox;
354     chkSkipModeFreq1: TCheckBox;
355     chkSSB: TCheckBox;
356     chkShow125CM: TCheckBox;
357     chkShow23CM: TCheckBox;
358     chkShow3CM: TCheckBox;
359     chkShow4MM: TCheckBox;
360     chkShow70CM: TCheckBox;
361     chkShow6CM: TCheckBox;
362     chkShow9CM: TCheckBox;
363     chkShow6M: TCheckBox;
364     chkShow2M: TCheckBox;
365     chkShow10M: TCheckBox;
366     chkShow30M: TCheckBox;
367     chkShow20M: TCheckBox;
368     chkShow12M: TCheckBox;
369     chkShow40M: TCheckBox;
370     chkShow15M: TCheckBox;
371     chkShow13CM: TCheckBox;
372     chkShow80M: TCheckBox;
373     chkShow160M: TCheckBox;
374     chkShow2190M: TCheckBox;
375     chkCloseAterSave1: TCheckBox;
376     chkNoConnection1: TCheckBox;
377     chkOpenAfterRun1: TCheckBox;
378     chkProfileLocator1: TCheckBox;
379     chkProfileQTH1: TCheckBox;
380     chkProfileRig: TCheckBox;
381     chkProfileQTH: TCheckBox;
382     chkProfileLocator: TCheckBox;
383     chkProfileRig1: TCheckBox;
384     chkShow17M: TCheckBox;
385     chkShow6MM: TCheckBox;
386     chkShowGrayline1: TCheckBox;
387     chkShowTRXwindow1: TCheckBox;
388     chkSSB1: TCheckBox;
389     chkTimeOff3: TCheckBox;
390     chkTimeOff4: TCheckBox;
391     chkTimeOff5: TCheckBox;
392     chkTimeOn3: TCheckBox;
393     chkTimeOn4: TCheckBox;
394     chkTimeOn5: TCheckBox;
395     chkUseProfiles: TCheckBox;
396     chkUseProfiles1: TCheckBox;
397     chkUseSpaceBar: TCheckBox;
398     chkITU: TCheckBox;
399     chkUseSpaceBar1: TCheckBox;
400     chkWAZ: TCheckBox;
401     chkRemarks: TCheckBox;
402     chkDXCC: TCheckBox;
403     chkPower: TCheckBox;
404     chkCounty: TCheckBox;
405     chkAward: TCheckBox;
406     chkIOTA: TCheckBox;
407     chkMyLoc: TCheckBox;
408     chkLoc: TCheckBox;
409     chkQSL_VIA: TCheckBox;
410     chkQTH: TCheckBox;
411     chkName: TCheckBox;
412     chkRST_R: TCheckBox;
413     chkRST_S: TCheckBox;
414     chkQSL_R: TCheckBox;
415     chkQSL_S: TCheckBox;
416     chkFreq: TCheckBox;
417     chkMode: TCheckBox;
418     chkCallSign: TCheckBox;
419     chkTimeOff: TCheckBox;
420     chkTimeOn: TCheckBox;
421     chkDate: TCheckBox;
422     chkWAZ3: TCheckBox;
423     chkWAZ4: TCheckBox;
424     chkWAZ5: TCheckBox;
425     cmbCl20db : TColorBox;
426     cmbCl30db : TColorBox;
427     cmbClOver30db : TColorBox;
428     clBoxBandITU: TColorBox;
429     clboxQSLIOTA: TColorBox;
430     clboxNewITU: TColorBox;
431     clboxNewIOTA: TColorBox;
432     clBoxQSLITU: TColorBox;
433     cmbDataBitsR2: TComboBox;
434     cmbDataBitsRot1: TComboBox;
435     cmbDataBitsRot2: TComboBox;
436     cmbIfaceType2: TComboBox;
437     cmbModelRot1: TComboBox;
438     cmbModelRot2: TComboBox;
439     cmbWsjtDefaultMode: TComboBox;
440     cmbDTRR1: TComboBox;
441     cmbDTRRot1: TComboBox;
442     cmbDTRRot2: TComboBox;
443     cmbHaColor: TColorBox;
444     cmbClColor: TColorBox;
445     cmbHrColor: TColorBox;
446     cmbHanshakeRot1: TComboBox;
447     cmbHanshakeRot2: TComboBox;
448     cmbModelRig2: TComboBox;
449     cmbParityRot1: TComboBox;
450     cmbParityRot2: TComboBox;
451     cmbRTSR1: TComboBox;
452     cmbDTRR2: TComboBox;
453     cmbRTSR2: TComboBox;
454     cmbHanshakeR2: TComboBox;
455     cmbParityR2: TComboBox;
456     cmbRTSRot1: TComboBox;
457     cmbRTSRot2: TComboBox;
458     cmbSpeedR1: TComboBox;
459     cmbSpeedR2: TComboBox;
460     cmbSpeedRot1: TComboBox;
461     cmbSpeedRot2: TComboBox;
462     cmbStopBitsR1: TComboBox;
463     cmbDefaultMode: TComboBox;
464     cmbeQSLBckColor: TColorBox;
465     cmbHanshakeR1: TComboBox;
466     cmbParityR1: TComboBox;
467     cmbQSL_S: TComboBox;
468     cmbSecondSaveTo: TComboBox;
469     cmbStopBitsR2: TComboBox;
470     cmbStopBitsRot1: TComboBox;
471     cmbStopBitsRot2: TComboBox;
472     cmbThirdSaveTo: TComboBox;
473     cmbSecondZip: TComboBox;
474     cmbSecondClub: TComboBox;
475     cmbThirdZip: TComboBox;
476     cmbThirdClub: TComboBox;
477     cmbFourthClub: TComboBox;
478     cmbFifthClub: TComboBox;
479     cmbMode: TComboBox;
480     cmbMode1: TComboBox;
481     cmbNewBand1: TColorBox;
482     cmbNewMode: TColorBox;
483     cmbQSLNeeded: TColorBox;
484     cmbFreq: TComboBox;
485     cmbProfiles: TComboBox;
486     cmbNewCountry: TColorBox;
487     cmbNewBand: TColorBox;
488     clboxNewWaz: TColorBox;
489     clBoxBandWAZ: TColorBox;
490     clBoxQSLWAZ: TColorBox;
491     cmbFirstClub: TComboBox;
492     cmbQSOBandColor: TColorBox;
493     cmbFrmDXCColor: TColorBox;
494     cmbFirstZip: TComboBox;
495     cmbFirstSaveTo: TComboBox;
496     cmbIfaceType1: TComboBox;
497     cmbXplanetColor: TColorBox;
498     cmbLoTWBckColor: TColorBox;
499     cmbDataBitsR1: TComboBox;
500     cmbCl10db : TColorBox;
501     cmbModelRig1: TComboBox;
502     DateEditCall: TDateEdit;
503     DateEditLoc: TDateEdit;
504     dlgColor : TColorDialog;
505     edtUsr1R1Name: TEdit;
506     edtR2Host: TEdit;
507     edtRadio2Name: TEdit;
508     edtUsr1R2Name: TEdit;
509     edtUsr2R2Name: TEdit;
510     edtUsr3R2Name: TEdit;
511     edtUsr2R1Name: TEdit;
512     edtUsr3R1Name: TEdit;
513     edtUsr2R2: TEdit;
514     edtUsr1R1: TEdit;
515     edtUsr2R1: TEdit;
516     edtUsr1R2: TEdit;
517     edtUsr3R1: TEdit;
518     edtClub: TEdit;
519     edtCWPort2: TEdit;
520     edteQSLDnlAddr: TEdit;
521     edteQSLStartAddr: TEdit;
522     edteQSLViewAddr: TEdit;
523     edtK3NGPort2: TEdit;
524     edtR1Host: TEdit;
525     edtRadio1Name: TEdit;
526     edtRot1Host: TEdit;
527     edtRot2Host: TEdit;
528     edtRotor2: TEdit;
529     edtMailingAddress: TEdit;
530     edtUsr3R2: TEdit;
531     edtWinPort2: TEdit;
532     edtZipCity: TEdit;
533     edtStartConCmd: TEdit;
534     edtDropSyncErr: TSpinEdit;
535     edtQSOColorDate : TEdit;
536     edtWsjtIp: TEdit;
537     edtCondxImageUrl: TEdit;
538     edtBackupPath1: TEdit;
539     edtWsjtDefaultFreq: TEdit;
540     edtK3NGSerSpeed: TEdit;
541     edtAlertCmd: TEdit;
542     edtHamLibSpeed: TSpinEdit;
543     edtRBNServer : TEdit;
544     edtClEmail: TEdit;
545     edtHrCode: TEdit;
546     edtHrUserName: TEdit;
547     edtHaPasswd: TEdit;
548     edtClPasswd: TEdit;
549     edtHaUserName: TEdit;
550     edtDelAfter : TEdit;
551     edtClUserName: TEdit;
552     edtWatchFor : TEdit;
553     edtRBNLogin : TEdit;
554     edtPoll1: TEdit;
555     edtPoll2: TEdit;
556     edtRot1Poll: TEdit;
557     edtRot2Poll: TEdit;
558     edtR1Device: TEdit;
559     edtRot1Device: TEdit;
560     edtRot1RotCtldArgs: TEdit;
561     edtRot1RotCtldPort: TEdit;
562     edtR2Device: TEdit;
563     edtRot2Device: TEdit;
564     edtR1RigCtldArgs: TEdit;
565     edtR2RigCtldArgs: TEdit;
566     edtR1RigCtldPort: TEdit;
567     edtRot2RotCtldArgs: TEdit;
568     edtR2RigCtldPort: TEdit;
569     edtRot2RotCtldPort: TEdit;
570     edtRotor1: TEdit;
571     edtRigCtldPath: TEdit;
572     edtAM1: TSpinEdit;
573     edtClub1Date: TEdit;
574     edtClub2Date: TEdit;
575     edtClub4Date: TEdit;
576     edtClub5Date: TEdit;
577     edtClub3Date: TEdit;
578     edtCW1: TSpinEdit;
579     edtCW2: TSpinEdit;
580     edtFM1: TSpinEdit;
581     edtFM2: TSpinEdit;
582     edtImgFiles: TEdit;
583     edtHtmlFiles: TEdit;
584     edtCbPass: TEdit;
585     edtCbUser: TEdit;
586     edteQSLName: TEdit;
587     edteQSLPass: TEdit;
588     edtRotCtldPath: TEdit;
589     edtRTTY1: TSpinEdit;
590     edtRTTY2: TSpinEdit;
591     edtSSB1: TSpinEdit;
592     edtSSB2: TSpinEdit;
593     edtTxtFiles: TEdit;
594     edtDigiModes: TEdit;
595     edtFldigiPath: TEdit;
596     edtBackupPath: TEdit;
597     edtDefaultFreq: TEdit;
598     edtDefaultRST: TEdit;
599     edtGrayLineOffset: TEdit;
600     edtSunOffset: TEdit;
601     edtOffset: TEdit;
602     edtCWAddress: TEdit;
603     edtCWPort1: TEdit;
604     edtPdfFiles: TEdit;
605     edtWinPort1: TEdit;
606     edtRecetQSOs: TEdit;
607     edtLoTWPass: TEdit;
608     edtLoTWName: TEdit;
609     edtCWSpeed: TSpinEdit;
610     edtWinMinSpeed: TSpinEdit;
611     edtWinMaxSpeed: TSpinEdit;
612     edtK3NGPort1: TEdit;
613     edtK3NGSpeed: TSpinEdit;
614     edtFldigiIp: TEdit;
615     edtADIFIp: TEdit;
616     edtWsjtPath: TEdit;
617     edtWsjtPort: TEdit;
618     edtFldigiPort: TEdit;
619     edtADIFPort: TEdit;
620     edtXRefresh: TEdit;
621     edtXLastSpots: TEdit;
622     edtXTop: TEdit;
623     edtXWidth: TEdit;
624     edtXHeight: TEdit;
625     edtXplanetLoc: TEdit;
626     edtXplanetPath: TEdit;
627     edtFirst: TEdit;
628     edtSecond: TEdit;
629     edtDisep: TEdit;
630     edtWebBrowser: TEdit;
631     edtDoNotShow1: TEdit;
632     edtWAward1: TEdit;
633     edtDoNotShow: TEdit;
634     edtXLeft: TEdit;
635     edtAM2: TSpinEdit;
636     edtCIV3: TEdit;
637     edtPasswd1: TEdit;
638     edtPort1: TEdit;
639     edtRadioPort2: TEdit;
640     edtPasswd: TEdit;
641     edtUser: TEdit;
642     edtPort: TEdit;
643     edtProxy: TEdit;
644     edtComments: TEdit;
645     edtPWR: TEdit;
646     edtRST_S: TEdit;
647     edtLoc: TEdit;
648     edtCall: TEdit;
649     edtQTH: TEdit;
650     edtName: TEdit;
651     edtRST_R: TEdit;
652     dlgFont: TFontDialog;
653     edtEmail: TEdit;
654     fraExportPref1: TfraExportPref;
655     gbProfiles1: TGroupBox;
656     grbSerialR2: TGroupBox;
657     grbSerialRot1: TGroupBox;
658     grbSerialRot2: TGroupBox;
659     GroupBox1: TGroupBox;
660     GroupBox10: TGroupBox;
661     GroupBox11: TGroupBox;
662     GroupBox12: TGroupBox;
663     GroupBox13: TGroupBox;
664     GroupBox14: TGroupBox;
665     GroupBox15: TGroupBox;
666     GroupBox16: TGroupBox;
667     GroupBox17: TGroupBox;
668     GroupBox18: TGroupBox;
669     GroupBox19: TGroupBox;
670     GroupBox2: TGroupBox;
671     GroupBox20: TGroupBox;
672     GroupBox21: TGroupBox;
673     GroupBox22: TGroupBox;
674     GroupBox23: TGroupBox;
675     GroupBox24: TGroupBox;
676     GroupBox25: TGroupBox;
677     GroupBox26: TGroupBox;
678     GroupBox27: TGroupBox;
679     gbLoTW: TGroupBox;
680     gbWidths: TGroupBox;
681     gbWinkeyer: TGroupBox;
682     grbRadio1: TGroupBox;
683     gbCwkeyer: TGroupBox;
684     grpUsrCmds: TGroupBox;
685     GroupBox31: TGroupBox;
686     GroupBox32: TGroupBox;
687     GroupBox33: TGroupBox;
688     GroupBox34: TGroupBox;
689     GroupBox35: TGroupBox;
690     gbeQSL: TGroupBox;
691     GroupBox37: TGroupBox;
692     GroupBox38: TGroupBox;
693     GroupBox39: TGroupBox;
694     gbProfiles: TGroupBox;
695     grbRadio2: TGroupBox;
696     grbRigctldPath: TGroupBox;
697     grbSerialR1: TGroupBox;
698     GroupBox41: TGroupBox;
699     gbRot1: TGroupBox;
700     gbRot2: TGroupBox;
701     GroupBox44: TGroupBox;
702     GroupBox45: TGroupBox;
703     GroupBox46: TGroupBox;
704     gbDXCAlert: TGroupBox;
705     GroupBox48: TGroupBox;
706     gbK3NGkey: TGroupBox;
707     gbDXCColor: TGroupBox;
708     GroupBox5: TGroupBox;
709     gbHamlib: TGroupBox;
710     GroupBox51: TGroupBox;
711     GroupBox52: TGroupBox;
712     gbDXCConnect: TGroupBox;
713     gbDXCSpots: TGroupBox;
714     GroupBox53: TGroupBox;
715     GroupBox6: TGroupBox;
716     GroupBox7: TGroupBox;
717     GroupBox8: TGroupBox;
718     GroupBox9: TGroupBox;
719     grpUsrCmds1: TGroupBox;
720     Label1: TLabel;
721     Label10: TLabel;
722     Label108: TLabel;
723     lblHost2: TLabel;
724     lblUsr1R1: TLabel;
725     lblUsr1R2: TLabel;
726     lblUsr2R1: TLabel;
727     lblUsr2R2: TLabel;
728     lblUsr3R1: TLabel;
729     lblHost: TLabel;
730     Label26: TLabel;
731     Label80: TLabel;
732     Label81: TLabel;
733     lblRbnWindowOpen: TLabel;
734     lblCWPort2: TLabel;
735     lblHamlib: TLabel;
736     lblHamlib1: TLabel;
737     lblK3NGPort2: TLabel;
738     lblRadio1: TLabel;
739     lbCallW: TLabel;
740     lbFreqW: TLabel;
741     lbleQSLDnlAddr: TLabel;
742     lbleQSLStartAddr: TLabel;
743     lbleQSLViewAddr: TLabel;
744     lblLoTWBkg: TLabel;
745     Label100: TLabel;
746     Label101: TLabel;
747     Label102: TLabel;
748     Label103: TLabel;
749     Label104: TLabel;
750     Label105: TLabel;
751     Label106: TLabel;
752     Label107: TLabel;
753     lbleQSLUsr: TLabel;
754     lbleQSLPass: TLabel;
755     Label11: TLabel;
756     Label110: TLabel;
757     Label111: TLabel;
758     Label112: TLabel;
759     Label113: TLabel;
760     Label114: TLabel;
761     Label115: TLabel;
762     Label116: TLabel;
763     Label117: TLabel;
764     Label118: TLabel;
765     Label119: TLabel;
766     Label12: TLabel;
767     Label120: TLabel;
768     Label121: TLabel;
769     Label122: TLabel;
770     Label123: TLabel;
771     Label124: TLabel;
772     lblDevice1: TLabel;
773     lblPortR1: TLabel;
774     lblPortR2: TLabel;
775     lbleQSLBkg: TLabel;
776     lblRadio2: TLabel;
777     lblRotId1: TLabel;
778     Label13: TLabel;
779     lblSerialR1Spd: TLabel;
780     lblserialR1DataBits: TLabel;
781     lblSerialR1Stop: TLabel;
782     lblSerialR1Hand: TLabel;
783     lblSerialR1Parity: TLabel;
784     lblSerialR1Dtr: TLabel;
785     lblSerialR1Rts: TLabel;
786     lblSerialR2Spd: TLabel;
787     lblSerialR2DataBits: TLabel;
788     lblSerialR2Stop: TLabel;
789     Label14: TLabel;
790     lblSerialR2Hand: TLabel;
791     lblSerialR2Parity: TLabel;
792     lblSerialR2Dtr: TLabel;
793     lblSerialr2Rts: TLabel;
794     lblPoll1: TLabel;
795     lblExtaArgs1: TLabel;
796     lblPort1: TLabel;
797     lblSpeed1: TLabel;
798     lblDataBits1: TLabel;
799     lblStopBits1: TLabel;
800     Label15: TLabel;
801     lblHandshake1: TLabel;
802     lblParity1: TLabel;
803     lblDTR1: TLabel;
804     lblRTS1: TLabel;
805     lblDevice2: TLabel;
806     lblRotId2: TLabel;
807     lblPoll2: TLabel;
808     lblExtaArgs2: TLabel;
809     lblPort2: TLabel;
810     lblSpeed2: TLabel;
811     Label16: TLabel;
812     lblDataBits2: TLabel;
813     lblStopBits2: TLabel;
814     lblHandshake2: TLabel;
815     lblParity2: TLabel;
816     lblDTR2: TLabel;
817     lblRTS2: TLabel;
818     lblRbnLogin : TLabel;
819     lblRbnWatchFor : TLabel;
820     lblRbnLoginHint : TLabel;
821     lblRbnWatchForHint : TLabel;
822     lblRigctdPath: TLabel;
823     lblRbnHeader : TLabel;
824     lblRbnSignal : TLabel;
825     lblRbnColor : TLabel;
826     lblRbnDb1 : TLabel;
827     lblRbnDb2 : TLabel;
828     lblRbnDb3 : TLabel;
829     lblRbnDb4 : TLabel;
830     lblRbnDeleteAfterSec : TLabel;
831     Label179: TLabel;
832     lblDeviceR1: TLabel;
833     Label180: TLabel;
834     Label181: TLabel;
835     Label182: TLabel;
836     Label183: TLabel;
837     Label184: TLabel;
838     Label185: TLabel;
839     Label186: TLabel;
840     Label187: TLabel;
841     Label188: TLabel;
842     Label189: TLabel;
843     lblUsr3R2: TLabel;
844     lnlRbnServer : TLabel;
845     lblRbnAdrFormat : TLabel;
846     Label192: TLabel;
847     lblK3NGPort: TLabel;
848     lblK3NGSpeed: TLabel;
849     lblK3NGWPM: TLabel;
850     lblK3NGSerSpeed: TLabel;
851     Label197: TLabel;
852     Label198: TLabel;
853     lblHamLibSpeed: TLabel;
854     lblHamLibWPM: TLabel;
855     Label202: TLabel;
856     lblADIFport: TLabel;
857     lblADIFaddr: TLabel;
858     lblWinPort2: TLabel;
859     lblwsjtport: TLabel;
860     Label204: TLabel;
861     Label205: TLabel;
862     lblDebug : TLabel;
863     Label207: TLabel;
864     lblwsjtaddr: TLabel;
865     Label46 : TLabel;
866     Label47 : TLabel;
867     Label48: TLabel;
868     Label49: TLabel;
869     Label50: TLabel;
870     Label51: TLabel;
871     lbl: TLabel;
872     Label19: TLabel;
873     Label2: TLabel;
874     lblExtra: TLabel;
875     lblModelR1: TLabel;
876     lblDevieR2: TLabel;
877     Label23: TLabel;
878     lblModelR2: TLabel;
879     lblExtra2: TLabel;
880     lblPollR1: TLabel;
881     Label28: TLabel;
882     Label29: TLabel;
883     Label30: TLabel;
884     Label31: TLabel;
885     Label32: TLabel;
886     Label33: TLabel;
887     Label34: TLabel;
888     Label35: TLabel;
889     Label36: TLabel;
890     Label37: TLabel;
891     Label38: TLabel;
892     Label39: TLabel;
893     Label52: TLabel;
894     Label53: TLabel;
895     Label54: TLabel;
896     Label55: TLabel;
897     Label56: TLabel;
898     Label59: TLabel;
899     Label61: TLabel;
900     Label63: TLabel;
901     Label91: TLabel;
902     Label92: TLabel;
903     Label93: TLabel;
904     Label94: TLabel;
905     Label95: TLabel;
906     lblPollR2: TLabel;
907     lbl1: TLabel;
908     lblButtons: TLabel;
909     Label3: TLabel;
910     Label4: TLabel;
911     Label40: TLabel;
912     Label41: TLabel;
913     Label42: TLabel;
914     Label43: TLabel;
915     Label44: TLabel;
916     Label45: TLabel;
917     Label5: TLabel;
918     lblbFont: TLabel;
919     lblEdits: TLabel;
920     lblStatistics: TLabel;
921     lblQSOList: TLabel;
922     lblLoTWpass: TLabel;
923     Label82: TLabel;
924     lbIfaceType: TLabel;
925     lblWinPort: TLabel;
926     lblWinSpeed: TLabel;
927     lblWinWPM: TLabel;
928     lblCWAddr: TLabel;
929     lblCWPort1: TLabel;
930     lblCWDefSpeed: TLabel;
931     lblCWWPM: TLabel;
932     lblWinMinSpeed: TLabel;
933     lblWinMaxSpeed: TLabel;
934     Label99: TLabel;
935     lbleFont: TLabel;
936     lblgFont: TLabel;
937     lblqFont: TLabel;
938     Label57: TLabel;
939     Label58: TLabel;
940     Label6: TLabel;
941     Label60: TLabel;
942     lblBandMapFont: TLabel;
943     Label62: TLabel;
944     Label64: TLabel;
945     Label65: TLabel;
946     Label66: TLabel;
947     Label67: TLabel;
948     Label68: TLabel;
949     Label69: TLabel;
950     Label7: TLabel;
951     Label70: TLabel;
952     Label71: TLabel;
953     Label72: TLabel;
954     Label73: TLabel;
955     Label74: TLabel;
956     Label75: TLabel;
957     Label76: TLabel;
958     Label77: TLabel;
959     Label78: TLabel;
960     Label79: TLabel;
961     Label8: TLabel;
962     lblLoUsr: TLabel;
963     Label9: TLabel;
964     lbleFont1: TLabel;
965     lbPreferences: TListBox;
966     dlgOpen: TOpenDialog;
967     odFindBrowser: TOpenDialog;
968     pnl2Host: TPanel;
969     pnlHost1: TPanel;
970     pnlQSOColor : TPanel;
971     pgTRXControl: TPageControl;
972     pgPreferences: TPageControl;
973     Panel1: TPanel;
974     pgROTControl: TPageControl;
975     rbCondxAsText: TRadioButton;
976     rbCondxAsImage: TRadioButton;
977     rbHamQTH: TRadioButton;
978     rbQRZ: TRadioButton;
979     rgBackupType: TRadioGroup;
980     rgRSTFrom: TRadioGroup;
981     RadioGroup2: TRadioGroup;
982     rbRSTDefault1: TRadioButton;
983     rbRSTFldigi1: TRadioButton;
984     rgWsjtFreqFrom: TRadioGroup;
985     rgModeFrom: TRadioGroup;
986     rgFreqFrom: TRadioGroup;
987     rgFirstZipPos: TRadioGroup;
988     rgWsjtModeFrom: TRadioGroup;
989     rgSecondZipPos: TRadioGroup;
990     rgThirdZipPos: TRadioGroup;
991     rgShowFrom: TRadioGroup;
992     rgProjection: TRadioGroup;
993     rgStatistics: TRadioGroup;
994     rbShowAll1: TRadioButton;
995     rbShowSince1: TRadioButton;
996     edtWinSpeed: TSpinEdit;
997     edtLoadFromFldigi: TSpinEdit;
998     seCallWidth: TSpinEdit;
999     seFreqWidth: TSpinEdit;
1000     tabExport: TTabSheet;
1001     tabExport1: TTabSheet;
1002     tabFont1: TTabSheet;
1003     tabModes1: TTabSheet;
1004     tabQTHProfiles1: TTabSheet;
1005     tabBandMap: TTabSheet;
1006     tabLoTW: TTabSheet;
1007     tabCWInterface: TTabSheet;
1008     tabFldigi1: TTabSheet;
1009     tabAutoBackup: TTabSheet;
1010     tabExtViewers: TTabSheet;
1011     tabCallbook: TTabSheet;
1012     TabROTcontrol: TTabSheet;
1013     tabRBN : TTabSheet;
1014     tabOnlineLog: TTabSheet;
1015     tabCondx: TTabSheet;
1016     tabTRX2: TTabSheet;
1017     tabTRX1: TTabSheet;
1018     tabRot1: TTabSheet;
1019     tabRot2: TTabSheet;
1020     tabZipCode: TTabSheet;
1021     tabXplanet: TTabSheet;
1022     tabStation: TTabSheet;
1023     tabFont: TTabSheet;
1024     tabIOTA: TTabSheet;
1025     tabMemebership: TTabSheet;
1026     tabWazItu: TTabSheet;
1027     TabSheet11: TTabSheet;
1028     TabSheet12: TTabSheet;
1029     TabSheet13: TTabSheet;
1030     TabSheet14: TTabSheet;
1031     TabSheet15: TTabSheet;
1032     TabSheet16: TTabSheet;
1033     TabSheet17: TTabSheet;
1034     TabSheet18: TTabSheet;
1035     tabNewQSO: TTabSheet;
1036     tabProgram: TTabSheet;
1037     tabVisibleColumns: TTabSheet;
1038     tabBands: TTabSheet;
1039     tabTRXcontrol: TTabSheet;
1040     tabModes: TTabSheet;
1041     tabQTHProfiles: TTabSheet;
1042     tabDXCluster: TTabSheet;
1043     procedure btnAddTrxMemClick(Sender : TObject);
1044     procedure btnAlertCallsignsClick(Sender: TObject);
1045     procedure btnBrowseBackup1Click(Sender: TObject);
1046     procedure btnCfgStorageClick(Sender: TObject);
1047     procedure btnChangeDefFreqClick(Sender: TObject);
1048     procedure btnChangeDefModeClick(Sender: TObject);
1049     procedure btnHelp1Click(Sender: TObject);
1050     procedure btnWsjtPathClick(Sender: TObject);
1051     procedure btnFldigiPathClick(Sender: TObject);
1052     procedure btnSelectQSOColorClick(Sender : TObject);
1053     procedure Button1Click(Sender: TObject);
1054     procedure Button2Click(Sender: TObject);
1055     procedure btnBrowseBackupClick(Sender: TObject);
1056     procedure btnChangeDefaultFreqClick(Sender: TObject);
1057     procedure btnKeyMacrosClick(Sender: TObject);
1058     procedure btnSplitClick(Sender: TObject);
1059     procedure btnForceMembershipUpdateClick(Sender : TObject);
1060     procedure cbNoKeyerResetChange(Sender: TObject);
1061     procedure chkClUpEnabledChange(Sender: TObject);
1062     procedure chkHaUpEnabledChange(Sender: TObject);
1063     procedure chkHrUpEnabledChange(Sender: TObject);
1064     procedure chkPotSpeedChange(Sender: TObject);
1065     procedure chkProfileLocatorClick(Sender: TObject);
1066     procedure chkProfileQTHClick(Sender: TObject);
1067     procedure chkProfileRigClick(Sender: TObject);
1068     procedure chkRBNLinkChange(Sender: TObject);
1069     procedure chkSysUTCClick(Sender: TObject);
1070     procedure chkUseDXCColorsChange(Sender: TObject);
1071     procedure btnFirstLoadClick(Sender: TObject);
1072     procedure btnSecondLoadClick(Sender: TObject);
1073     procedure btnThirdLoadClick(Sender: TObject);
1074     procedure cmbDataBitsR1Change(Sender : TObject);
1075     procedure cmbDataBitsR2Change(Sender : TObject);
1076     procedure cmbDTRR1Change(Sender : TObject);
1077     procedure cmbDTRR2Change(Sender : TObject);
1078     procedure cmbHanshakeR1Change(Sender : TObject);
1079     procedure cmbHanshakeR2Change(Sender : TObject);
1080     procedure cmbIfaceType1Change(Sender: TObject);
1081     procedure cmbIfaceType2Change(Sender: TObject);
1082     procedure cmbParityR1Change(Sender : TObject);
1083     procedure cmbParityR2Change(Sender : TObject);
1084     procedure cmbRTSR1Change(Sender : TObject);
1085     procedure cmbRTSR2Change(Sender : TObject);
1086     procedure cmbSpeedR1Change(Sender : TObject);
1087     procedure cmbSpeedR2Change(Sender : TObject);
1088     procedure cmbStopBitsR1Change(Sender : TObject);
1089     procedure cmbStopBitsR2Change(Sender : TObject);
1090     procedure edtHtmlFilesClick(Sender: TObject);
1091     procedure edtK3NGSerSpeedChange(Sender: TObject);
1092     procedure edtLocChange(Sender: TObject);
1093     procedure edtR1RigCtldArgsChange(Sender: TObject);
1094     procedure edtR1RigCtldPortChange(Sender : TObject);
1095     procedure edtR2RigCtldArgsChange(Sender : TObject);
1096     procedure edtR2RigCtldPortChange(Sender : TObject);
1097     procedure edtRadio1NameChange(Sender: TObject);
1098     procedure edtRadio2Change(Sender: TObject);
1099     procedure edtRecetQSOsKeyPress(Sender: TObject; var Key: char);
1100     procedure edtWebBrowserClick(Sender: TObject);
1101     procedure edtWebBrowserExit(Sender: TObject);
1102     procedure edtWinMaxSpeedChange(Sender: TObject);
1103     procedure edtWinMinSpeedChange(Sender: TObject);
1104     procedure edtWinPort1Change(Sender: TObject);
1105     procedure edtWinSpeedChange(Sender: TObject);
1106     procedure edtXplanetLocChange(Sender: TObject);
1107     procedure lbPreferencesClick(Sender: TObject);
1108     procedure btnDefineProfileClick(Sender: TObject);
1109     procedure btnHelpClick(Sender: TObject);
1110     procedure btnLoadFifthClick(Sender: TObject);
1111     procedure btnLoadFirstClick(Sender: TObject);
1112     procedure btnLoadFourthClick(Sender: TObject);
1113     procedure btnLoadSecondClick(Sender: TObject);
1114     procedure btnLoadThirdClick(Sender: TObject);
1115     procedure btnSelbFontClick(Sender: TObject);
1116     procedure btnSeleFontClick(Sender: TObject);
1117     procedure btnSelectBandFontClick(Sender: TObject);
1118     procedure btnSelqFontClick(Sender: TObject);
1119     procedure btnSelsFontClick(Sender: TObject);
1120     procedure btnSetFifthClick(Sender: TObject);
1121     procedure btnSetFirstClick(Sender: TObject);
1122     procedure btnSetFourthClick(Sender: TObject);
1123     procedure btnSetSecondClick(Sender: TObject);
1124     procedure btnSetThirdClick(Sender: TObject);
1125     procedure btnTestXplanetClick(Sender: TObject);
1126     procedure chkUseProfilesChange(Sender: TObject);
1127     procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
1128     procedure FormCreate(Sender: TObject);
1129     procedure btnFrequenciesClick(Sender: TObject);
1130     procedure btnOKClick(Sender: TObject);
1131     procedure FormShow(Sender: TObject);
1132     procedure edtPoll2Exit(Sender: TObject);
1133     procedure edtPoll1Exit(Sender: TObject);
1134     procedure Panel1Click(Sender: TObject);
1135     procedure pgPreferencesChange(Sender: TObject);
1136     procedure pnlQSOColorClick(Sender : TObject);
1137   private
1138     wasOnlineLogSupportEnabled : Boolean;
1139 
1140     procedure SaveClubSection;
1141     procedure LoadMebershipCombo;
1142     procedure LoadMembersFromCombo(ClubComboText, ClubNumber : String);
1143   public
1144     { public declarations }
1145     ActPageIdx : integer;
1146   end;
1147 
1148 var
1149   frmPreferences: TfrmPreferences;
1150   feSize: integer;
1151   fbSize: integer;
1152   fgSize: integer;
1153   fqSize: integer;
1154   fbandSize: integer;
1155   TRXChanged: boolean;
1156   ReloadFreq: Boolean = False;
1157   ReloadModes: Boolean = False;
1158   WinKeyerChanged : Boolean;
1159 
1160 implementation
1161 {$R *.lfm}
1162 
1163 { TfrmPreferences }
1164 uses dUtils, dData, fMain, fFreq, fQTHProfiles, fSerialPort, fClubSettings, fLoadClub,
1165   fGrayline, fNewQSO, fBandMap, fBandMapWatch, fDefaultFreq, fKeyTexts, fTRXControl,
1166   fSplitSettings, uMyIni, fNewQSODefValues, fDXCluster, fCallAlert, fConfigStorage, fPropagation,
1167   fRadioMemories, dMembership, dLogUpload;
1168 
1169 procedure TfrmPreferences.btnOKClick(Sender: TObject);
1170 var
1171   freq : Currency;
1172   int  : integer;
1173   KeyType: TKeyType;
1174 begin
1175   cqrini.WriteString('Station', 'Call', edtCall.Text);
1176   cqrini.WriteString('Station', 'Name', edtName.Text);
1177   cqrini.WriteString('Station', 'QTH', edtQTH.Text);
1178   cqrini.WriteString('Station', 'LOC', edtLoc.Text);
1179   cqrini.WriteString('Station', 'MailingAddress', edtMailingAddress.Text);
1180   cqrini.WriteString('Station', 'ZipCity', edtZipCity.Text);
1181   cqrini.WriteString('Station', 'Email', edtEmail.Text);
1182   cqrini.WriteString('Station', 'Club', edtClub.Text);
1183 
1184   cqrini.WriteString('NewQSO', 'RST_S', edtRST_S.Text);
1185   cqrini.WriteString('NewQSO', 'RST_R', edtRST_R.Text);
1186   cqrini.WriteString('NewQSO', 'PWR', edtPWR.Text);
1187   cqrini.WriteString('NewQSO', 'FREQ', cmbFreq.Text);
1188   cqrini.WriteString('NewQSO', 'Mode', cmbMode.Text);
1189   cqrini.WriteString('NewQSO', 'QSL_S', cmbQSL_S.Text);
1190   cqrini.WriteString('NewQSO', 'RemQSO', edtComments.Text);
1191   cqrini.WriteBool('NewQSO', 'UseSpaceBar', chkUseSpaceBar.Checked);
1192   cqrini.WriteBool('NewQSO', 'RefreshAfterSave', chkRefreshAfterSave.Checked);
1193   cqrini.WriteBool('NewQSO', 'SkipModeFreq', chkSkipModeFreq.Checked);
1194   cqrini.WriteBool('NewQSO', 'AutoSearch', chkAutoSearch.Checked);
1195   cqrini.WriteBool('NewQSO', 'ShowRecentQSOs', chkShowRecentQSOs.Checked);
1196   cqrini.Writebool('NewQSO', 'ShowB4call', chkShowB4call.Checked);
1197   cqrini.WriteString('NewQSO', 'RecQSOsNum', edtRecetQSOs.Text);
1198   cqrini.WriteBool('NewQSO', 'IgnoreQRZ', chkIgnoreQRZQSL.Checked);
1199   cqrini.WriteBool('NewQSO', 'MvToRem', chkMvToRem.Checked);
1200   cqrini.WriteBool('NewQSO', 'AutoQSLS', chkAutoQSLS.Checked);
1201   cqrini.WriteBool('NewQSO', 'AutoDQSLS', chkAutoDQSLS.Checked);
1202   cqrini.WriteBool('NewQSO', 'AutoQQSLS', chkAutoQQSLS.Checked);
1203   cqrini.WriteBool('NewQSO', 'AllVariants', chkAllVariants.Checked);
1204   cqrini.WriteBool('NewQSO','ClearRIT',chkClearRIT.Checked);
1205   cqrini.WriteBool('NewQSO','UseCallBookData',chkUseCallBookData.Checked);
1206   cqrini.WriteBool('NewQSO','CapFirstQTHLetter',chkCapFirstQTHLetter.Checked);
1207   cqrini.WriteBool('NewQSO','UseCallbookZonesEtc',chkUseCallbookZonesEtc.Checked);
1208   cqrini.WriteBool('NewQSO','FillAwardField',chkFillAwardField.Checked);
1209   cqrini.WriteBool('NewQSO','SatelliteMode', chkSatelliteMode.Checked);
1210   cqrini.WriteBool('NewQSO','UpdateAMSATstatus', chkUpdateAMSATstatus.Checked);
1211 
1212   cqrini.WriteString('Program', 'Proxy', edtProxy.Text);
1213   cqrini.WriteString('Program', 'Port', edtPort.Text);
1214   cqrini.WriteString('Program', 'User', edtUser.Text);
1215   cqrini.WriteString('Program', 'Passwd', edtPasswd.Text);
1216   cqrini.WriteFloat('Program', 'offset', StrToCurr(edtOffset.Text));
1217   cqrini.WriteInteger('Program', 'Options', pgPreferences.ActivePageIndex);
1218   cqrini.WriteBool('Program', 'BandStatMHz', rgStatistics.ItemIndex = 0);
1219   cqrini.WriteFloat('Program', 'GraylineOffset', StrToCurr(edtGrayLineOffset.Text));
1220 
1221   if  edtWebBrowser.Text = '' then  edtWebBrowser.Text:= dmUtils.MyDefaultBrowser; //may not be empty string
1222   cqrini.WriteString('Program', 'WebBrowser', edtWebBrowser.Text);
1223 
1224   cqrini.WriteBool('Program', 'CheckDXCCTabs', chkNewDXCCTables.Checked);
1225   cqrini.WriteBool('Program', 'ShowDeleted', chkShowDeleted.Checked);
1226   cqrini.WriteBool('Program', 'SunUTC', chkSunUTC.Checked);
1227   cqrini.WriteBool('Program', 'CheckQSLTabs', chkNewQSLTables.Checked);
1228   cqrini.WriteBool('Program', 'CheckDOKTabs', chkNewDOKTables.Checked);
1229   cqrini.WriteFloat('Program', 'SunOffset', StrToCurr(edtSunOffset.Text));
1230   cqrini.WriteBool('Program', 'SysUTC', chkSysUTC.Checked);
1231   cqrini.WriteBool('Program','ShowMiles',chkShowMiles.Checked);
1232   cqrini.WriteBool('Program', 'QSODiffColor', chkQSOColor.Checked);
1233   cqrini.WriteInteger('Program', 'QSOColor', pnlQSOColor.Color);
1234   cqrini.WriteString('Program', 'QSOColorDate', edtQSOColorDate.Text);
1235 
1236   cqrini.WriteBool('Columns', 'Date', chkDate.Checked);
1237   cqrini.WriteBool('Columns', 'time_on', chkTimeOn.Checked);
1238   cqrini.WriteBool('Columns', 'time_off', chkTimeOff.Checked);
1239   cqrini.WriteBool('Columns', 'CallSign', chkCallSign.Checked);
1240   cqrini.WriteBool('Columns', 'Mode', chkMode.Checked);
1241   cqrini.WriteBool('Columns', 'Freq', chkFreq.Checked);
1242   cqrini.WriteBool('Columns', 'RST_S', chkRST_S.Checked);
1243   cqrini.WriteBool('Columns', 'RST_R', chkRST_R.Checked);
1244   cqrini.WriteBool('Columns', 'Name', chkName.Checked);
1245   cqrini.WriteBool('Columns', 'QTH', chkQTH.Checked);
1246   cqrini.WriteBool('Columns', 'QSL_S', chkQSL_S.Checked);
1247   cqrini.WriteBool('Columns', 'QSL_R', chkQSL_R.Checked);
1248   cqrini.WriteBool('Columns', 'QSL_VIA', chkQSL_VIA.Checked);
1249   cqrini.WriteBool('Columns', 'Locator', chkLoc.Checked);
1250   cqrini.WriteBool('Columns', 'MyLoc', chkMyLoc.Checked);
1251   cqrini.WriteBool('Columns', 'Operator', chkOperator.Checked);
1252   cqrini.WriteBool('Columns', 'Distance', chkDistance.Checked);
1253   cqrini.WriteBool('Columns', 'IOTA', chkIOTA.Checked);
1254   cqrini.WriteBool('Columns', 'Award', chkAward.Checked);
1255   cqrini.WriteBool('Columns', 'Power', chkPower.Checked);
1256   cqrini.WriteBool('Columns', 'DXCC', chkDXCC.Checked);
1257   cqrini.WriteBool('Columns', 'Remarks', chkRemarks.Checked);
1258   cqrini.WriteBool('Columns', 'WAZ', chkWAZ.Checked);
1259   cqrini.WriteBool('Columns', 'ITU', chkITU.Checked);
1260   cqrini.WriteBool('Columns', 'County', chkCounty.Checked);
1261   cqrini.WriteBool('Columns', 'State', chkState.Checked);
1262   cqrini.WriteBool('Columns', 'LoTWQSLSDate', chkLoTWQSLSDate.Checked);
1263   cqrini.WriteBool('Columns', 'LoTWQSLRDate', chkLoTWQSLRDate.Checked);
1264   cqrini.WriteBool('Columns', 'LoTWQSLS', chkLoTWQSLS.Checked);
1265   cqrini.WriteBool('Columns', 'LOTWQSLR', chkLoTWQSLR.Checked);
1266   cqrini.WriteBool('Columns', 'Cont', chkCont.Checked);
1267   cqrini.WriteBool('Columns', 'QSLSDate', chkQSLSentDate.Checked);
1268   cqrini.WriteBool('Columns', 'QSLRDate', chkQSLRcvdDate.Checked);
1269   cqrini.WriteBool('Columns', 'eQSLQSLS', chkeQSLSent.Checked);
1270   cqrini.WriteBool('Columns', 'eQSLQSLSDate', chkeQSLSentDate.Checked);
1271   cqrini.WriteBool('Columns', 'eQSLQSLR', chkeQSLRcvd.Checked);
1272   cqrini.WriteBool('Columns', 'eQSLQSLRDate', chkeQSLRcvdDate.Checked);
1273   cqrini.WriteBool('Columns', 'QSLRAll', chkQSLRAll.Checked);
1274   cqrini.WriteBool('Columns', 'Country', chkCountry.Checked);
1275   cqrini.WriteBool('Columns', 'Propagation', chkPropagation.Checked);
1276   cqrini.WriteBool('Columns', 'SatelliteName', chkSatellite.Checked);
1277   cqrini.WriteBool('Columns', 'RXFreq', chkRXFreq.Checked);
1278   cqrini.WriteBool('Columns', 'ContestName', chkContestName.Checked);
1279   cqrini.WriteBool('Columns', 'STX', chkSTX.Checked);
1280   cqrini.WriteBool('Columns', 'SRX', chkSRX.Checked);
1281   cqrini.WriteBool('Columns', 'ContMsgSent', chkSTX_str.Checked);
1282   cqrini.WriteBool('Columns', 'ContMsgRcvd', chkSRX_str.Checked);
1283   cqrini.WriteBool('Columns', 'DarcDok', chkDarcDok.Checked);
1284 
1285   cqrini.WriteBool('Bands', '137kHz', cb136kHz.Checked);
1286   cqrini.WriteBool('Bands', '472kHz', cb472kHz.Checked);
1287   cqrini.WriteBool('Bands', '160m', cb160m.Checked);
1288   cqrini.WriteBool('Bands', '80m', cb80m.Checked);
1289   cqrini.WriteBool('Bands', '60m', cb60m.Checked);
1290   cqrini.WriteBool('Bands', '40m', cb40m.Checked);
1291   cqrini.WriteBool('Bands', '30m', cb30m.Checked);
1292   cqrini.WriteBool('Bands', '20m', cb20m.Checked);
1293   cqrini.WriteBool('Bands', '17m', cb17m.Checked);
1294   cqrini.WriteBool('Bands', '15m', cb15m.Checked);
1295   cqrini.WriteBool('Bands', '12m', cb12m.Checked);
1296   cqrini.WriteBool('Bands', '10m', cb10m.Checked);
1297 
1298   cqrini.WriteBool('Bands', '4m', cb4m.Checked);
1299   cqrini.WriteBool('Bands', '6m', cb6m.Checked);
1300   cqrini.WriteBool('Bands', '2m', cb2m.Checked);
1301   cqrini.WriteBool('Bands', '1.25m', cb125m.Checked);
1302   cqrini.WriteBool('Bands', '70cm', cb70cm.Checked);
1303   cqrini.WriteBool('Bands', '33cm', cb30cm.Checked);
1304   cqrini.WriteBool('Bands', '23cm', cb23cm.Checked);
1305   cqrini.WriteBool('Bands', '13cm', cb13cm.Checked);
1306   cqrini.WriteBool('Bands', '8cm', cb8cm.Checked);
1307   cqrini.WriteBool('Bands', '5cm', cb5cm.Checked);
1308   cqrini.WriteBool('Bands', '3cm', cb3cm.Checked);
1309   cqrini.WriteBool('Bands', '1cm', cb1cm.Checked);
1310   cqrini.WriteBool('Bands', '47GHz', cb47GHz.Checked);
1311   cqrini.WriteBool('Bands', '76GHz', cb76GHz.Checked);
1312 
1313   cqrini.WriteString('TRX', 'RigCtldPath', edtRigCtldPath.Text);
1314   cqrini.WriteBool('TRX','Debug',chkTrxControlDebug.Checked);
1315   cqrini.WriteBool('TRX','MemModeRelated',chkModeRelatedOnly.Checked);
1316 
1317   cqrini.WriteString('TRX1', 'device', edtR1Device.Text);
1318   cqrini.WriteString('TRX1', 'model', dmUtils.GetRigIdFromComboBoxItem(cmbModelRig1.Text));
1319   cqrini.WriteString('TRX1', 'poll', edtPoll1.Text);
1320   cqrini.WriteString('TRX1', 'Desc', edtRadio1Name.Text);
1321   cqrini.WriteBool('TRX1', 'CWR', chkR1SendCWR.Checked);
1322   cqrini.WriteString('TRX1', 'RigCtldPort', edtR1RigCtldPort.Text);
1323   cqrini.WriteString('TRX1', 'ExtraRigCtldArgs', edtR1RigCtldArgs.Text);
1324   cqrini.WriteBool('TRX1', 'RunRigCtld', chkR1RunRigCtld.Checked);
1325   cqrini.WriteString('TRX1', 'host', edtR1Host.Text);
1326   cqrini.WriteInteger('TRX1', 'SerialSpeed', cmbSpeedR1.ItemIndex);
1327   cqrini.WriteInteger('TRX1', 'DataBits', cmbDataBitsR1.ItemIndex);
1328   cqrini.WriteInteger('TRX1', 'StopBits', cmbStopBitsR1.ItemIndex);
1329   cqrini.WriteInteger('TRX1', 'Parity', cmbParityR1.ItemIndex);
1330   cqrini.WriteInteger('TRX1', 'HandShake', cmbHanshakeR1.ItemIndex);
1331   cqrini.WriteInteger('TRX1', 'DTR', cmbDTRR1.ItemIndex);
1332   cqrini.WriteInteger('TRX1', 'RTS', cmbRTSR1.ItemIndex);
1333   cqrini.WriteString('TRX1', 'usr1name', edtUsr1R1name.Text);
1334   cqrini.WriteString('TRX1', 'usr2name', edtUsr2R1name.Text);
1335   cqrini.WriteString('TRX1', 'usr3name', edtUsr3R1name.Text);
1336   cqrini.WriteString('TRX1', 'usr1', edtUsr1R1.Text);
1337   cqrini.WriteString('TRX1', 'usr2', edtUsr2R1.Text);
1338   cqrini.WriteString('TRX1', 'usr3', edtUsr3R1.Text);
1339 
1340   cqrini.WriteString('TRX2', 'device', edtR2Device.Text);
1341   cqrini.WriteString('TRX2', 'model', dmUtils.GetRigIdFromComboBoxItem(cmbModelRig2.Text));
1342   cqrini.WriteString('TRX2', 'poll', edtPoll2.Text);
1343   cqrini.WriteString('TRX2', 'Desc', edtRadio2Name.Text);
1344   cqrini.WriteBool('TRX2', 'CWR', chkR2SendCWR.Checked);
1345   cqrini.WriteString('TRX2', 'RigCtldPort', edtR2RigCtldPort.Text);
1346   cqrini.WriteString('TRX2', 'ExtraRigCtldArgs', edtR2RigCtldArgs.Text);
1347   cqrini.WriteBool('TRX2', 'RunRigCtld', chkR2RunRigCtld.Checked);
1348   cqrini.WriteString('TRX2', 'host', edtR2Host.Text);
1349   cqrini.WriteInteger('TRX2', 'SerialSpeed', cmbSpeedR2.ItemIndex);
1350   cqrini.WriteInteger('TRX2', 'DataBits', cmbDataBitsR2.ItemIndex);
1351   cqrini.WriteInteger('TRX2', 'StopBits', cmbStopBitsR2.ItemIndex);
1352   cqrini.WriteInteger('TRX2', 'Parity', cmbParityR2.ItemIndex);
1353   cqrini.WriteInteger('TRX2', 'HandShake', cmbHanshakeR2.ItemIndex);
1354   cqrini.WriteInteger('TRX2', 'DTR', cmbDTRR2.ItemIndex);
1355   cqrini.WriteInteger('TRX2', 'RTS', cmbRTSR2.ItemIndex);
1356   cqrini.WriteString('TRX2', 'usr1name', edtUsr1R2name.Text);
1357   cqrini.WriteString('TRX2', 'usr2name', edtUsr2R2name.Text);
1358   cqrini.WriteString('TRX2', 'usr3name', edtUsr3R2name.Text);
1359   cqrini.WriteString('TRX2', 'usr1', edtUsr1R2.Text);
1360   cqrini.WriteString('TRX2', 'usr2', edtUsr2R2.Text);
1361   cqrini.WriteString('TRX2', 'usr3', edtUsr3R2.Text);
1362 
1363   cqrini.WriteString('ROT', 'RotCtldPath', edtRotCtldPath.Text);
1364 
1365   cqrini.WriteString('ROT1', 'device', edtRot1Device.Text);
1366   cqrini.WriteString('ROT1', 'model',  dmUtils.GetRigIdFromComboBoxItem(cmbModelRot1.Text));
1367   cqrini.WriteString('ROT1', 'poll', edtRot1Poll.Text);
1368   cqrini.WriteString('ROT1', 'Desc', edtRotor1.Text);
1369   cqrini.WriteString('ROT1', 'RotCtldPort', edtRot1RotCtldPort.Text);
1370   cqrini.WriteString('ROT1', 'ExtraRotCtldArgs', edtRot1RotCtldArgs.Text);
1371   cqrini.WriteBool('ROT1', 'RunRotCtld', chkRot1RunRotCtld.Checked);
1372   cqrini.WriteBool('ROT1', 'RotAzMinMax', chkRot1AzMinMax.Checked);
1373   cqrini.WriteString('ROT1', 'host', edtRot1Host.Text);
1374   cqrini.WriteInteger('ROT1', 'SerialSpeed', cmbSpeedRot1.ItemIndex);
1375   cqrini.WriteInteger('ROT1', 'DataBits', cmbDataBitsRot1.ItemIndex);
1376   cqrini.WriteInteger('ROT1', 'StopBits', cmbStopBitsRot1.ItemIndex);
1377   cqrini.WriteInteger('ROT1', 'Parity', cmbParityRot1.ItemIndex);
1378   cqrini.WriteInteger('ROT1', 'HandShake', cmbHanshakeRot1.ItemIndex);
1379   cqrini.WriteInteger('ROT1', 'DTR', cmbDTRRot1.ItemIndex);
1380   cqrini.WriteInteger('ROT1', 'RTS', cmbRTSRot1.ItemIndex);
1381 
1382   cqrini.WriteString('ROT2', 'device', edtRot2Device.Text);
1383   cqrini.WriteString('ROT2', 'model', dmUtils.GetRigIdFromComboBoxItem(cmbModelRot2.Text));
1384   cqrini.WriteString('ROT2', 'poll', edtRot2Poll.Text);
1385   cqrini.WriteString('ROT2', 'Desc', edtRotor2.Text);
1386   cqrini.WriteString('ROT2', 'RotCtldPort', edtRot2RotCtldPort.Text);
1387   cqrini.WriteString('ROT2', 'ExtraRotCtldArgs', edtRot2RotCtldArgs.Text);
1388   cqrini.WriteBool('ROT2', 'RunRotCtld', chkRot2RunRotCtld.Checked);
1389   cqrini.WriteBool('ROT2', 'RotAzMinMax', chkRot2AzMinMax.Checked);
1390   cqrini.WriteString('ROT2', 'host', edtRot2Host.Text);
1391   cqrini.WriteInteger('ROT2', 'SerialSpeed', cmbSpeedRot2.ItemIndex);
1392   cqrini.WriteInteger('ROT2', 'DataBits', cmbDataBitsRot2.ItemIndex);
1393   cqrini.WriteInteger('ROT2', 'StopBits', cmbStopBitsRot2.ItemIndex);
1394   cqrini.WriteInteger('ROT2', 'Parity', cmbParityRot2.ItemIndex);
1395   cqrini.WriteInteger('ROT2', 'HandShake', cmbHanshakeRot2.ItemIndex);
1396   cqrini.WriteInteger('ROT2', 'DTR', cmbDTRRot2.ItemIndex);
1397   cqrini.WriteInteger('ROT2', 'RTS', cmbRTSRot2.ItemIndex);
1398 
1399   cqrini.WriteInteger('Band1', 'CW', edtCW1.Value);
1400   cqrini.WriteInteger('Band1', 'SSB', edtSSB1.Value);
1401   cqrini.WriteInteger('Band1', 'RTTY', edtRTTY1.Value);
1402   cqrini.WriteInteger('Band1', 'AM', edtAM1.Value);
1403   cqrini.WriteInteger('Band1', 'FM', edtFM1.Value);
1404 
1405   cqrini.WriteInteger('Band2', 'CW', edtCW2.Value);
1406   cqrini.WriteInteger('Band2', 'SSB', edtSSB2.Value);
1407   cqrini.WriteInteger('Band2', 'RTTY', edtRTTY2.Value);
1408   cqrini.WriteInteger('Band2', 'AM', edtAM2.Value);
1409   cqrini.WriteInteger('Band2', 'FM', edtFM2.Value);
1410 
1411   cqrini.WriteString('Modes', 'Digi', edtDigiModes.Text);
1412 
1413   cqrini.WriteBool('Profiles', 'Use', chkUseProfiles.Checked);
1414   cqrini.WriteInteger('Profiles', 'Selected', dmData.GetNRFromProfile(cmbProfiles.Text));
1415   cqrini.WriteBool('Profiles', 'Locator', chkProfileLocator.Checked);
1416   cqrini.WriteBool('Profiles', 'QTH', chkProfileQTH.Checked);
1417   cqrini.WriteBool('Profiles', 'RIG', chkProfileRig.Checked);
1418 
1419   cqrini.WriteInteger('DXCluster', 'NewCountry', cmbNewCountry.Selected);
1420   cqrini.WriteInteger('DXCluster', 'NewBand', cmbNewBand.Selected);
1421   cqrini.WriteInteger('DXCluster', 'NewMode', cmbNewMode.Selected);
1422   cqrini.WriteInteger('DXCluster', 'NeedQSL', cmbQSLNeeded.Selected);
1423   cqrini.WriteBool('DXCluster', 'Show2190M', chkShow2190M.Checked);
1424   cqrini.WriteBool('DXCluster', 'Show630M', chkShow630M.Checked);
1425   cqrini.WriteBool('DXCluster', 'Show160M', chkShow160M.Checked);
1426   cqrini.WriteBool('DXCluster', 'Show80M', chkShow80M.Checked);
1427   cqrini.WriteBool('DXCluster', 'Show60M', chkShow60M.Checked);
1428   cqrini.WriteBool('DXCluster', 'Show40M', chkShow40M.Checked);
1429   cqrini.WriteBool('DXCluster', 'Show30M', chkShow30M.Checked);
1430   cqrini.WriteBool('DXCluster', 'Show20M', chkShow20M.Checked);
1431   cqrini.WriteBool('DXCluster', 'Show17M', chkShow17M.Checked);
1432   cqrini.WriteBool('DXCluster', 'Show15M', chkShow15M.Checked);
1433   cqrini.WriteBool('DXCluster', 'Show12M', chkShow12M.Checked);
1434   cqrini.WriteBool('DXCluster', 'Show10M', chkShow10M.Checked);
1435   cqrini.WriteBool('DXCluster', 'Show6M', chkShow6M.Checked);
1436   cqrini.WriteBool('DXCluster', 'Show4M', chkShow4M.Checked);
1437   cqrini.WriteBool('DXCluster', 'Show2M', chkShow2M.Checked);
1438   cqrini.WriteBool('DXCluster', 'Show125M', chkShow125M.Checked);
1439   cqrini.WriteBool('DXCluster', 'Show70CM', chkShow70CM.Checked);
1440   cqrini.WriteBool('DXCluster', 'Show33CM', chkShow33CM.Checked);
1441   cqrini.WriteBool('DXCluster', 'Show23CM', chkShow23CM.Checked);
1442   cqrini.WriteBool('DXCluster', 'Show13CM', chkShow13CM.Checked);
1443   cqrini.WriteBool('DXCluster', 'Show9CM', chkShow9CM.Checked);
1444   cqrini.WriteBool('DXCluster', 'Show6CM', chkShow6CM.Checked);
1445   cqrini.WriteBool('DXCluster', 'Show3CM', chkShow3CM.Checked);
1446   cqrini.WriteBool('DXCluster', 'Show125CM', chkShow125CM.Checked);
1447   cqrini.WriteBool('DXCluster', 'Show6MM', chkShow6MM.Checked);
1448   cqrini.WriteBool('DXCluster', 'Show4MM', chkShow4MM.Checked);
1449   cqrini.WriteBool('DXCluster', 'CW', chkCW.Checked);
1450   cqrini.WriteBool('DXCluster', 'SSB', chkSSB.Checked);
1451   cqrini.WriteString('DXCluster', 'NotShow', edtDoNotShow.Text);
1452   cqrini.WriteBool('DXCluster', 'ConAfterRun', chkConToDXC.Checked);
1453   cqrini.WriteBool('DXCluster','ShowDxcCountry',chkShowDxcCountry.Checked);
1454   cqrini.WriteString('DXCluster','AlertCmd', edtAlertCmd.Text);
1455   cqrini.WriteString('DXCluster','StartCmd', edtStartConCmd.Text);
1456 
1457   cqrini.WriteBool('Fonts', 'UseDefault', chkUseDefaultSEttings.Checked);
1458   cqrini.WriteString('Fonts', 'Buttons', lblbFont.Caption);
1459   cqrini.WriteString('Fonts', 'Edits', lbleFont.Caption);
1460   cqrini.WriteString('Fonts', 'Grids', lblgFont.Caption);
1461   cqrini.WriteString('Fonts', 'QGrids', lblqFont.Caption);
1462   cqrini.WriteInteger('Fonts', 'eSize', feSize);
1463   cqrini.WriteInteger('Fonts', 'bSize', fbSize);
1464   cqrini.WriteInteger('Fonts', 'gSize', fgSize);
1465   cqrini.WriteInteger('Fonts', 'qSize', fqSize);
1466 
1467   cqrini.WriteBool('Fonts','GridGreenBar',chkgridgreenbar.Checked);
1468   cqrini.WriteBool('Fonts','GridBoldTitle',chkgridboldtitle.Checked);
1469   cqrini.WriteBool('Fonts','GridShowHint',chkgridshowhint.Checked);
1470   cqrini.WriteBool('Fonts','GridSmallRows',chkgridsmallrows.Checked);
1471   cqrini.WriteBool('Fonts','GridDotsInsteadSpaces',chkgriddotsinsteadspaces.Checked);
1472 
1473   cqrini.WriteInteger('Zones', 'NewWAZ', clboxNewWaz.Selected);
1474   cqrini.WriteInteger('Zones', 'NewBandWAZ', clBoxBandWAZ.Selected);
1475   cqrini.WriteInteger('Zones', 'QSLWAZ', clBoxQSLWAZ.Selected);
1476   cqrini.WriteInteger('Zones', 'NewITU', clboxNewITU.Selected);
1477   cqrini.WriteInteger('Zones', 'NewBandITU', clBoxBandITU.Selected);
1478   cqrini.WriteInteger('Zones', 'QSLITU', clBoxQSLITU.Selected);
1479   cqrini.WriteBool('Zones', 'ShowWAZInfo', chkShowWAZInfo.Checked);
1480   cqrini.WriteBool('Zones', 'ShowITUInfo', chkShowITUInfo.Checked);
1481 
1482   cqrini.WriteInteger('IOTA', 'NewIOTA', clboxNewIOTA.Selected);
1483   cqrini.WriteInteger('IOTA', 'QSLIOTA', clboxQSLIOTA.Selected);
1484   cqrini.WriteBool('IOTA', 'ShowIOTAInfo', chkShowIOTAInfo.Checked);
1485 
1486   SaveClubSection;
1487 
1488   cqrini.WriteString('BandMap', 'BandFont', lblBandMapFont.Font.Name);
1489   cqrini.WriteInteger('BandMap', 'FontSize', fbandSize);
1490   cqrini.WriteInteger('BandMap', 'NewQSOColor', cmbQSOBandColor.Selected);
1491   cqrini.WriteBool('BandMap', 'in_kHz', chkBandMapkHz.Checked);
1492   cqrini.WriteBool('BandMap', 'Save', chkSaveBandMap.Checked);
1493   cqrini.WriteInteger('BandMap', 'FirstAging', StrToInt(edtFirst.Text));
1494   cqrini.WriteInteger('BandMap', 'SecondAging', StrToInt(edtSecond.Text));
1495   cqrini.WriteInteger('BandMap', 'Disep', StrToInt(edtDisep.Text));
1496   cqrini.WriteInteger('BandMap', 'ClusterColor', cmbFrmDXCColor.Selected);
1497   cqrini.WriteBool('BandMap', 'OnlyActiveBand', chkShowActiveBand.Checked);
1498   cqrini.WriteBool('BandMap', 'OnlyActiveMode', chkShowActiveMode.Checked);
1499   cqrini.WriteBool('BandMap', 'DeleteAfterQSO', chkDeleteAfterQSO.Checked);
1500   cqrini.WriteBool('BandMap', 'UseDXCColors', chkUseDXCColors.Checked);
1501   cqrini.WriteBool('BandMap', 'AddAfterQSO', chkAddAfterSaveQSO.Checked);
1502   cqrini.WriteBool('BandMap','IgnoreBandFreq',chkIgnoreBandFreq.Checked);
1503   cqrini.WriteBool('BandMap','UseNewQSOFreqMode',chkUseNewQSOFreqMode.Checked);
1504   cqrini.WriteBool('BandMap','PlusToBandMap',chkPlusToBandMap.Checked);
1505   cqrini.WriteInteger('BandMapFilter','FreqWidth',seFreqWidth.Value);
1506   cqrini.WriteInteger('BandMapFilter','CallWidth',seCallWidth.Value);
1507 
1508   cqrini.WriteString('xplanet', 'path', edtXplanetPath.Text);
1509   cqrini.WriteString('xplanet', 'height', edtXHeight.Text);
1510   cqrini.WriteString('xplanet', 'width', edtXWidth.Text);
1511   cqrini.WriteString('xplanet', 'top', edtXTop.Text);
1512   cqrini.WriteString('xplanet', 'left', edtXLeft.Text);
1513   cqrini.WriteBool('xplanet', 'run', chkShowXplanet.Checked);
1514   cqrini.WriteBool('xplanet', 'close', chkCloseXplanet.Checked);
1515   cqrini.WriteString('xplanet', 'refresh', edtXRefresh.Text);
1516   cqrini.WriteString('xplanet', 'LastSpots', edtXLastSpots.Text);
1517   cqrini.WriteInteger('xplanet', 'project', rgProjection.ItemIndex);
1518   cqrini.WriteInteger('xplanet', 'ShowFrom', rgShowFrom.ItemIndex);
1519   cqrini.WriteInteger('xplanet', 'color', cmbXplanetColor.Selected);
1520   cqrini.WriteBool('xplanet', 'UseDefColor', chkXplanetColor.Checked);
1521   cqrini.WriteString('xplanet', 'loc', edtXplanetLoc.Text);
1522   cqrini.WriteBool('xplanet', 'ShowOwnPos', chkShowOwnPos.Checked);
1523 
1524   cqrini.WriteString('ZipCode', 'First', cmbFirstZip.Text);
1525   cqrini.WriteString('ZipCode', 'FirstSaveTo', cmbFirstSaveTo.Text);
1526   cqrini.WriteInteger('ZipCode', 'FirstPos', rgFirstZipPos.ItemIndex);
1527   cqrini.WriteString('ZipCode', 'Second', cmbSecondZip.Text);
1528   cqrini.WriteString('ZipCode', 'SecondSaveTo', cmbSecondSaveTo.Text);
1529   cqrini.WriteInteger('ZipCode', 'SecondPos', rgSecondZipPos.ItemIndex);
1530   cqrini.WriteString('ZipCode', 'Third', cmbThirdZip.Text);
1531   cqrini.WriteString('ZipCode', 'ThirdSaveTo', cmbThirdSaveTo.Text);
1532   cqrini.WriteInteger('ZipCode', 'ThirdPos', rgThirdZipPos.ItemIndex);
1533 
1534   cqrini.WriteBool('LoTW', 'IncLoTWDXCC', chkIncLoTWDXCC.Checked);
1535   cqrini.WriteBool('LoTW', 'NewQSOLoTW', chkNewQSOLoTW.Checked);
1536   cqrini.WriteString('LoTW', 'LoTWName', edtLoTWName.Text);
1537   cqrini.WriteString('LoTW', 'LoTWPass', edtLoTWPass.Text);
1538   cqrini.WriteBool('LoTW', 'ShowInfo', chkShowLoTWInfo.Checked);
1539   cqrini.WriteBool('LoTW', 'UseBackColor', chkShowBckLoTW.Checked);
1540   cqrini.WriteInteger('LoTW', 'BckColor', cmbLoTWBckColor.Selected);
1541   cqrini.WriteString('LoTW', 'eQSLName', edteQSLName.Text);
1542   cqrini.WriteString('LoTW', 'eQSLPass', edteQSLPass.Text);
1543   cqrini.WriteString('LoTW', 'eQSLStartAddr',edteQSLStartAddr.Text);
1544   cqrini.WriteString('LoTW', 'eQSLDnlAddr',edteQSLDnlAddr.Text);
1545   cqrini.WriteString('LoTW', 'eQSViewAddr',edteQSLViewAddr.Text);
1546   cqrini.WriteBool('LoTW', 'eUseBackColor', chkShowBckEQSL.Checked);
1547   cqrini.WriteInteger('LoTW', 'eBckColor', cmbeQSLBckColor.Selected);
1548   cqrini.WriteBool('LoTW', 'ExpComment', chkExpCommet.Checked);
1549 
1550   cqrini.WriteInteger('CW', 'Type1', cmbIfaceType1.ItemIndex);
1551   cqrini.WriteInteger('CW', 'Type2', cmbIfaceType2.ItemIndex);
1552   cqrini.WriteBool('CW', 'NoReset', cbNoKeyerReset.Checked);
1553   cqrini.WriteString('CW', 'wk_port1', edtWinPort1.Text);
1554   cqrini.WriteString('CW', 'wk_port2', edtWinPort2.Text);
1555   cqrini.WriteBool('CW', 'PotSpeed', chkPotSpeed.Checked);
1556   cqrini.WriteInteger('CW', 'wk_speed', edtWinSpeed.Value);
1557   cqrini.WriteString('CW', 'cw_address', edtCWAddress.Text);
1558   cqrini.WriteString('CW', 'cw_port1', edtCWPort1.Text);
1559   cqrini.WriteString('CW', 'cw_port2', edtCWPort2.Text);
1560   cqrini.WriteInteger('CW', 'cw_speed', edtCWSpeed.Value);
1561   cqrini.WriteInteger('CW', 'wk_min', edtWinMinSpeed.Value);
1562   cqrini.WriteInteger('CW', 'wk_max', edtWinMaxSpeed.Value);
1563   cqrini.WriteString('CW','K3NGPort1',edtK3NGPort1.Text);
1564   cqrini.WriteString('CW','K3NGPort2',edtK3NGPort2.Text);
1565   cqrini.WriteInteger('CW','K3NGSerSpeed',StrToInt(edtK3NGSerSpeed.Text));
1566   cqrini.WriteInteger('CW','K3NGSpeed',StrToInt(edtK3NGSpeed.Text));
1567   cqrini.WriteInteger('CW','HamLibSpeed',StrToInt(edtHamLibSpeed.Text));
1568 
1569   cqrini.WriteInteger('fldigi', 'freq', rgFreqFrom.ItemIndex);
1570   cqrini.WriteString('fldigi', 'deffreq', edtDefaultFreq.Text);
1571   cqrini.WriteInteger('fldigi', 'mode', rgModeFrom.ItemIndex);
1572   cqrini.WriteString('fldigi', 'defmode', cmbDefaultMode.Text);
1573   cqrini.WriteString('fldigi', 'defrst', edtDefaultRST.Text);
1574   cqrini.WriteInteger('fldigi', 'rst', rgRSTFrom.ItemIndex);
1575   cqrini.WriteInteger('fldigi', 'interval', edtLoadFromFldigi.Value);
1576   cqrini.WriteBool('fldigi', 'run', chkRunFldigi.Checked);
1577   cqrini.WriteString('fldigi', 'path', edtFldigiPath.Text);
1578   cqrini.WriteString('fldigi','port',edtFldigiPort.Text);
1579   cqrini.WriteString('fldigi','ip',edtFldigiIp.Text);
1580   cqrini.WriteBool('fldigi', 'xmlrpc', chkFldXmlRpc.Checked);
1581   cqrini.WriteInteger('fldigi', 'dropSyErr', edtDropSyncErr.Value);
1582 
1583   cqrini.WriteString('wsjt','path',edtWsjtPath.Text);
1584   cqrini.WriteString('wsjt','port',edtWsjtPort.Text);
1585   cqrini.WriteString('wsjt','ip',edtWsjtIp.Text);
1586   cqrini.WriteBool('wsjt','run',chkRunWsjt.Checked);
1587   cqrini.WriteInteger('wsjt', 'freq', rgWsjtFreqFrom.ItemIndex);
1588   cqrini.WriteString('wsjt', 'deffreq', edtWsjtDefaultFreq.Text);
1589   cqrini.WriteInteger('wsjt', 'mode', rgWsjtModeFrom.ItemIndex);
1590   cqrini.WriteString('wsjt', 'defmode', cmbWsjtDefaultMode.Text);
1591   cqrini.WriteString('wsjt', 'wb4calldate', DateEditCall.Text);
1592   cqrini.WriteString('wsjt', 'wb4locdate', DateEditLoc.Text);
1593   cqrini.WriteBool('wsjt','wb4CCall', cgLimit.Checked[0]);
1594   cqrini.WriteBool('wsjt','wb4CLoc', cgLimit.Checked[1]);
1595 
1596   cqrini.WriteString('n1mm','port',edtADIFPort.Text);
1597   cqrini.WriteString('n1mm','ip',edtADIFIp.Text);
1598 
1599   if edtBackupPath.Text <> '' then
1600     if edtBackupPath.Text[Length(edtBackupPath.Text)] <> PathDelim then
1601       edtBackupPath.Text := edtBackupPath.Text + PathDelim;
1602   cqrini.WriteBool('Backup', 'Enable', chkEnableBackup.Checked);
1603   cqrini.WriteBool('Backup', 'Compress', chkCompressBackup.Checked);
1604   cqrini.WriteString('Backup', 'Path', edtBackupPath.Text);
1605   cqrini.WriteString('Backup', 'Path1', edtBackupPath1.Text);
1606   cqrini.WriteInteger('Backup', 'BackupType', rgBackupType.ItemIndex);
1607   cqrini.WriteBool('Backup','AskFirst',chkAskBackup.Checked);
1608 
1609   cqrini.WriteString('ExtView', 'txt', edtTxtFiles.Text);
1610   cqrini.WriteString('ExtView', 'pdf', edtPdfFiles.Text);
1611   cqrini.WriteString('ExtView', 'img', edtImgFiles.Text);
1612 
1613   if  edtHtmlFiles.Text = '' then  edtHtmlFiles.Text:= dmUtils.MyDefaultBrowser; //may not be empty string
1614   cqrini.WriteString('ExtView', 'html', edtHtmlFiles.Text);
1615 
1616   cqrini.WriteBool('ExtView', 'QSL', chkIntQSLViewer.Checked);
1617 
1618   cqrini.WriteString('FirstClub', 'DateFrom', edtClub1Date.Text);
1619   cqrini.WriteString('SecondClub', 'DateFrom', edtClub2Date.Text);
1620   cqrini.WriteString('ThirdClub', 'DateFrom', edtClub3Date.Text);
1621   cqrini.WriteString('FourthClub', 'DateFrom', edtClub4Date.Text);
1622   cqrini.WriteString('FifthClub', 'DateFrom', edtClub5Date.Text);
1623 
1624   cqrini.WriteBool('CallBook', 'QRZ', rbQRZ.Checked);
1625   cqrini.WriteBool('Callbook', 'HamQTH', rbHamQTH.Checked);
1626   cqrini.WriteString('CallBook', 'CBUser', edtCbUser.Text);
1627   cqrini.WriteString('CallBook', 'CBPass', edtCbPass.Text);
1628 
1629   cqrini.WriteInteger('RBN','10db',cmbCl10db.Selected);
1630   cqrini.WriteInteger('RBN','20db',cmbCl20db.Selected);
1631   cqrini.WriteInteger('RBN','30db',cmbCl30db.Selected);
1632   cqrini.WriteInteger('RBN','over30db',cmbClOver30db.Selected);
1633   cqrini.WriteString('RBN','login',edtRBNLogin.Text);
1634   cqrini.WriteString('RBN','watch',edtWatchFor.Text);
1635   cqrini.WriteBool('RBN','AutoConnect',chkRBNAutoConn.Checked);
1636   cqrini.WriteBool('RBN','AutoConnectM',chkRBNMAutoConn.Checked);
1637   cqrini.WriteBool('RBN','AutoLink',chkRBNLink.Checked);
1638   if TryStrToInt(edtDelAfter.Text,int) then
1639     cqrini.WriteInteger('RBN','deleteAfter',int)
1640   else
1641     cqrini.WriteInteger('RBN','deleteAfter',60);
1642   cqrini.WriteString('RBN','Server',edtRBNServer.Text);
1643 
1644   cqrini.WriteBool('OnlineLog','HaUP',chkHaUpEnabled.Checked);
1645   cqrini.WriteBool('OnlineLog','HaUpOnline',chkHaUpOnline.Checked);
1646   cqrini.WriteString('OnlineLog','HaUserName',edtHaUserName.Text);
1647   cqrini.WriteString('OnlineLog','HaPasswd',edtHaPasswd.Text);
1648   cqrini.WriteInteger('OnlineLog','HaColor',cmbHaColor.Selected);
1649 
1650   cqrini.WriteBool('OnlineLog','ClUP',chkClUpEnabled.Checked);
1651   cqrini.WriteBool('OnlineLog','ClUpOnline',chkClUpOnline.Checked);
1652   cqrini.WriteString('OnlineLog','ClUserName',edtClUserName.Text);
1653   cqrini.WriteString('OnlineLog','ClPasswd',edtClPasswd.Text);
1654   cqrini.WriteString('OnlineLog','ClEmail',edtClEmail.Text);
1655   cqrini.WriteInteger('OnlineLog','ClColor',cmbClColor.Selected);
1656 
1657   cqrini.WriteBool('OnlineLog','HrUP',chkHrUpEnabled.Checked);
1658   cqrini.WriteBool('OnlineLog','HrUpOnline',chkHrUpOnline.Checked);
1659   cqrini.WriteString('OnlineLog','HrUserName',edtHrUserName.Text);
1660   cqrini.WriteString('OnlineLog','HrCode',edtHrCode.Text);
1661   cqrini.WriteInteger('OnlineLog','HrColor',cmbHrColor.Selected);
1662   cqrini.WriteBool('OnlineLog','CloseAfterUpload',chkCloseAfterUpload.Checked);
1663   cqrini.WriteBool('OnlineLog','IgnoreLoTWeQSL',chkIgnoreLoTW.Checked);
1664 
1665   cqrini.WriteString('prop','Url',edtCondxImageUrl.Text);
1666   cqrini.WriteBool('prop','AsImage',rbCondxAsImage.Checked);
1667   cqrini.WriteBool('prop','AsText',rbCondxAsText.Checked);
1668   cqrini.WriteBool('prop','Values',chkShowCondxValues.Checked);
1669   cqrini.WriteBool('prop','CalcHF',chkCondxCalcHF.Checked);
1670   cqrini.WriteBool('prop','CalcVHF',chkCondxCalcVHF.Checked);
1671 
1672   if WinKeyerChanged then frmNewQSO.InitializeCW;
1673 
1674   fraExportPref1.SaveExportPref;
1675 
1676   dmUtils.TimeOffset := StrToCurr(edtOffset.Text);
1677   dmUtils.GrayLineOffset := StrToCurr(edtGrayLineOffset.Text);
1678   dmUtils.SysUTC := chkSysUTC.Checked;
1679 
1680   frmNewQSO.CalculateLocalSunRiseSunSet;
1681 
1682   dmData.InsertProfiles(frmNewQSO.cmbProfiles, False);
1683   frmNewQSO.cmbProfiles.Text := dmData.GetDefaultProfileText;
1684 
1685   frmBandMap.LoadSettings;
1686 
1687   if frmGrayline.Showing then
1688     frmGrayline.tmrGrayLineTimer(nil);
1689   frmNewQSO.UseSpaceBar := chkUseSpaceBar.Checked;
1690   if frmBandMap.Showing then
1691     frmBandMap.LoadFonts;
1692   cqrini.SaveToDisk;
1693   if TRXChanged then
1694     frmTRXControl.InicializeRig;
1695 
1696   frmTRXControl.LoadUsrButtonCaptions;
1697   frmTRXControl.LoadButtonCaptions;
1698   frmTRXControl.LoadBandButtons;
1699 
1700   frmNewQSO.ClearAfterFreqChange := False;//cqrini.ReadBool('NewQSO','ClearAfterFreqChange',False);
1701   frmNewQSO.ChangeFreqLimit      := cqrini.ReadFloat('NewQSO','FreqChange',0.010);
1702 
1703 
1704   if not chkSatelliteMode.Checked then
1705   begin
1706      frmNewQSO.btnClearSatelliteClick(nil);
1707      frmNewQSO.pgDetails.TabIndex := 0
1708   end
1709   else
1710   begin
1711      frmNewQSO.pgDetails.TabIndex := 1
1712   end;
1713   frmNewQSO.pgDetails.Pages[1].TabVisible  := chkSatelliteMode.Checked;
1714   frmNewQSO.pgDetails.Pages[2].TabVisible  := chkSatelliteMode.Checked;
1715 
1716   if ReloadFreq then
1717     dmUtils.InsertFreq(frmNewQSO.cmbFreq);
1718   if ReloadModes then
1719     dmUtils.InsertModes(frmNewQSO.cmbMode);
1720   if frmNewQSO.edtCall.Text = '' then
1721   begin
1722     dmUtils.InsertModes(frmNewQSO.cmbMode);
1723     frmNewQSO.cmbMode.Text := cmbMode.Text;
1724   end;
1725 
1726   if (not (chkHaUpEnabled.Checked or chkClUpEnabled.Checked or chkHrUpEnabled.Checked)) then
1727   begin
1728     if wasOnlineLogSupportEnabled then
1729       dmLogUpload.DisableOnlineLogSupport
1730   end
1731   else begin
1732     if not wasOnlineLogSupportEnabled then
1733     begin
1734       if dmData.TriggersExistsOnCqrlog_main then
1735         dmLogUpload.DisableOnlineLogSupport;
1736       dmLogUpload.EnableOnlineLogSupport
1737     end
1738   end;
1739 
1740   if frmPropagation.Showing then
1741     frmPropagation.RefreshPropagation;
1742 
1743   frmTRXControl.rbRadio1.Caption := edtRadio1Name.Text;
1744   frmTRXControl.rbRadio2.Caption := edtRadio2Name.Text;
1745   frmTRXControl.SetDebugMode(chkTrxControlDebug.Checked or (dmData.DebugLevel>0));
1746 
1747   if ((frmNewQSO.sbNewQSO.Panels[0].Text = '') or (frmNewQSO.sbNewQSO.Panels[0].Text = cMyLoc)) then
1748     frmNewQSO.sbNewQSO.Panels[0].Text := cMyLoc + edtLoc.Text;
1749 
1750   cqrini.SaveToDisk;
1751   dmData.SaveConfigFile;
1752   frmDXCluster.ReloadSettings;
1753   ModalResult := mrOk;
1754   dmUtils.LoadBandLabelSettins;
1755   dmUtils.LoadBandsSettings;
1756   dmData.LoadClubsSettings;
1757   dmData.LoadZipSettings;
1758   dmUtils.UpdateHelpBrowser;
1759 end;
1760 
1761 procedure TfrmPreferences.FormCreate(Sender: TObject);
1762 begin
1763   dmUtils.InsertQSL_S(cmbQSL_S);
1764   dmUtils.InsertFreq(cmbFreq);
1765   ActPageIdx := 0; //tabProgram
1766 end;
1767 
1768 
1769 procedure TfrmPreferences.btnFrequenciesClick(Sender: TObject);
1770 begin
1771   frmFreq := TfrmFreq.Create(frmPreferences);
1772   try
1773     frmFreq.ShowModal
1774   finally
1775     frmFreq.Free
1776   end;
1777   //init user defined bands vs frequencies
1778   dmUtils.BandFromDbase;
1779 end;
1780 
1781 procedure TfrmPreferences.FormCloseQuery(Sender: TObject; var CanClose: boolean);
1782 begin
1783   cqrini.WriteInteger('Pref', 'Top', Top);
1784   cqrini.WriteInteger('Pref', 'Left', Left);
1785   cqrini.WriteInteger('Pref', 'ActPageIdx', pgPreferences.ActivePageIndex);
1786 end;
1787 
1788 procedure TfrmPreferences.chkUseProfilesChange(Sender: TObject);
1789 begin
1790   if chkUseProfiles.Checked then
1791     gbProfiles.Enabled := True
1792   else
1793     gbProfiles.Enabled := False;
1794 end;
1795 
1796 procedure TfrmPreferences.btnDefineProfileClick(Sender: TObject);
1797 begin
1798   frmQTHProfiles := TfrmQTHProfiles.Create(self);
1799   try
1800     frmQTHProfiles.ShowModal
1801   finally
1802     frmQTHProfiles.Free
1803   end;
1804   dmData.InsertProfiles(cmbProfiles, False);
1805   cmbProfiles.Text := dmData.GetDefaultProfileText;
1806 end;
1807 
1808 procedure TfrmPreferences.btnHelpClick(Sender: TObject);
1809 
1810 var
1811     HelpAddr : array [-1 .. 26] of string = (
1812     'h1.html',      //preferences, none tab selected
1813     'h1.html#ah2',  //program
1814     'h1.html#ah3',  //station
1815     'h1.html#ah4',  //new qso
1816     'h1.html#ah5',  //visible columns
1817     'h1.html#ah6',  //bands
1818     'h1.html#ah7',  //trx control
1819     'h1.html#ah7b', //rot control
1820     'h1.html#ah8',  //modes
1821     'h1.html#ah9',  //qth profiles
1822     'h1.html#ah10', //export
1823     'h1.html#ah11', //dx cluster
1824     'h1.html#ah12', //fonts
1825     'h1.html#ah13', //waz itu zones
1826     'h1.html#ah14', //iota
1827     'h1.html#ah15', //membership
1828     'h1.html#bh1 ', //bandmap
1829     'h1.html#bh2',  //xplanet support
1830     'h1.html#bh3',  //zip code tracking
1831     'h1.html#bh4',  //lotw support
1832     'h1.html#ch1',  //cw interface
1833     'h1.html#ch2',  //fldigi wsjt-x ADIF interface
1834     'h1.html#ch3',  //autobackup
1835     'h1.html#ch4',  //external viewers
1836     'h1.html#ch5',  //callbook support
1837     'h1.html#ch6',  //rbn support
1838     'h1.html#ch7',  //online log upload support
1839     'h1.html#ch9'   //propagation
1840     );
1841 
1842 begin
1843   dmUtils.OpenInApp('file://' + dmData.HelpDir + HelpAddr[pgPreferences.TabIndex] );
1844   //ShowHelp;
1845 {
1846  this feels stupid but I could not find any other way to bind help-button to active tab's help
1847  Because of:
1848 
1849  procedure TControl.ShowHelp;
1850   Begin
1851   ...
1852   ...
1853    if Parent <> nil then  <-------------!!!! I THINK: this leads always to show upper level help !!!!
1854       Parent.ShowHelp;
1855   end;
1856  }
1857 
1858 end;
1859 
1860 procedure TfrmPreferences.btnLoadFifthClick(Sender: TObject);
1861 begin
1862   LoadMembersFromCombo(cmbFifthClub.Text, '5')
1863 end;
1864 
1865 procedure TfrmPreferences.btnLoadFirstClick(Sender: TObject);
1866 begin
1867   LoadMembersFromCombo(cmbFirstClub.Text, '1')
1868 end;
1869 
1870 procedure TfrmPreferences.btnLoadFourthClick(Sender: TObject);
1871 begin
1872   LoadMembersFromCombo(cmbFourthClub.Text, '4')
1873 end;
1874 
1875 procedure TfrmPreferences.btnLoadSecondClick(Sender: TObject);
1876 begin
1877   LoadMembersFromCombo(cmbSecondClub.Text, '2')
1878 end;
1879 
1880 procedure TfrmPreferences.btnLoadThirdClick(Sender: TObject);
1881 begin
1882   LoadMembersFromCombo(cmbThirdClub.Text, '3')
1883 end;
1884 
1885 procedure TfrmPreferences.btnSelbFontClick(Sender: TObject);
1886 begin
1887   if dlgFont.Execute then
1888   begin
1889     fbSize := dlgFont.Font.Size;
1890     //dmUtils.ExtractFontSize(dlgFont.Font.Name);
1891     lblbFont.Caption := dlgFont.Font.Name + ' ' + IntToStr(fbSize);
1892     lblbFont.Font.Name := dlgFont.Font.Name;
1893     lblbFont.Font.Size := fbSize;
1894     lblButtons.Font.Name := dlgFont.Font.Name;
1895     lblButtons.Font.Size := fbSize;
1896   end;
1897 end;
1898 
1899 procedure TfrmPreferences.btnSeleFontClick(Sender: TObject);
1900 begin
1901   if dlgFont.Execute then
1902   begin
1903     feSize := dlgFont.Font.Size;
1904     lbleFont.Caption := dlgFont.Font.Name + ' ' + IntToStr(feSize);
1905     lbleFont.Font.Name := dlgFont.Font.Name;
1906     lbleFont.Font.Size := feSize;
1907     lblEdits.Font.Name := dlgFont.Font.Name;
1908     lblEdits.Font.Size := feSize;
1909   end;
1910 end;
1911 
1912 procedure TfrmPreferences.btnSelectBandFontClick(Sender: TObject);
1913 begin
1914   if dlgFont.Execute then
1915   begin
1916     fbandSize := dlgFont.Font.Size;
1917     lblBandMapFont.Font.Name := dlgFont.Font.Name;
1918     lblBandMapFont.Font.Size := dlgFont.Font.Size;
1919     lblBandMapFont.Caption   := dlgFont.Font.Name + ' ' + IntToStr(fbandSize)
1920   end
1921 end;
1922 
1923 procedure TfrmPreferences.btnSelqFontClick(Sender: TObject);
1924 begin
1925   if dlgFont.Execute then
1926   begin
1927     fqSize := dlgFont.Font.Size;
1928     lblqFont.Caption := dlgFont.Font.Name + ' ' + IntToStr(fqSize);
1929     lblqFont.Font.Name := dlgFont.Font.Name;
1930     lblqFont.Font.Size := fqSize;
1931     lblQSOList.Font.Name := dlgFont.Font.Name;
1932     lblQSOList.Font.Size := fqSize;
1933   end;
1934 end;
1935 
1936 procedure TfrmPreferences.btnSelsFontClick(Sender: TObject);
1937 begin
1938   if dlgFont.Execute then
1939   begin
1940     fgSize := dlgFont.Font.Size;
1941     lblgFont.Caption := dlgFont.Font.Name + ' ' + IntToStr(fgSize);
1942     lblgFont.Font.Name := dlgFont.Font.Name;
1943     lblgFont.Font.Size := fgSize;
1944     lblStatistics.Font.Name := dlgFont.Font.Name;
1945     lblStatistics.Font.Size := fgSize;
1946   end;
1947 end;
1948 
1949 procedure TfrmPreferences.btnSetFifthClick(Sender: TObject);
1950 begin
1951   with TfrmClubSettings.Create(self) do
1952     try
1953       Caption := 'Club settings - ' + cmbFifthClub.Text;
1954       ClubStr := 'Fifth';
1955       ShowModal;
1956     finally
1957       Free
1958     end;
1959 end;
1960 
1961 procedure TfrmPreferences.btnSetFirstClick(Sender: TObject);
1962 begin
1963   with TfrmClubSettings.Create(self) do
1964     try
1965       Caption := 'Club settings - ' + cmbFirstClub.Text;
1966       ClubStr := 'First';
1967       ShowModal;
1968     finally
1969       Free
1970     end;
1971 end;
1972 
1973 procedure TfrmPreferences.btnSetFourthClick(Sender: TObject);
1974 begin
1975   with TfrmClubSettings.Create(self) do
1976     try
1977       Caption := 'Club settings - ' + cmbFourthClub.Text;
1978       ClubStr := 'Fourth';
1979       ShowModal;
1980     finally
1981       Free
1982     end;
1983 end;
1984 
1985 procedure TfrmPreferences.btnSetSecondClick(Sender: TObject);
1986 begin
1987   with TfrmClubSettings.Create(self) do
1988     try
1989       Caption := 'Club settings - ' + cmbSecondClub.Text;
1990       ClubStr := 'Second';
1991       ShowModal;
1992     finally
1993       Free
1994     end;
1995 end;
1996 
1997 procedure TfrmPreferences.btnSetThirdClick(Sender: TObject);
1998 begin
1999   with TfrmClubSettings.Create(self) do
2000     try
2001       Caption := 'Club settings - ' + cmbThirdClub.Text;
2002       ClubStr := 'Third';
2003       ShowModal;
2004     finally
2005       Free
2006     end;
2007 end;
2008 
2009 procedure TfrmPreferences.btnTestXplanetClick(Sender: TObject);
2010 var
2011   geom: string = '';
2012   myloc: string = '';
2013   wait: string = '';
2014   cmd: string = '';
2015   lat, long: currency;
2016   AProcess: TProcess;
2017   proj: string = '';
2018   index: integer;
2019   paramList : TStringList;
2020 begin
2021   if not FileExists(edtXplanetPath.Text) then
2022   begin
2023     Application.MessageBox('xplanet not found!', 'Error ...', mb_OK + mb_IconError);
2024     exit;
2025   end;
2026 
2027 
2028   geom := ' -geometry ' + edtXWidth.Text + 'x' + edtXHeight.Text +
2029     '+' + edtXLeft.Text + '+' + edtXTop.Text;
2030   if dmUtils.IsLocOK(edtXplanetLoc.Text) then
2031   begin
2032     dmUtils.CoordinateFromLocator(dmUtils.CompleteLoc(edtXplanetLoc.Text), lat, long);
2033     myloc := ' -longitude ' + CurrToStr(long) + ' -latitude ' + CurrToStr(lat);
2034   end
2035   else if dmUtils.IsLocOK(edtLoc.Text) then
2036   begin
2037     dmUtils.CoordinateFromLocator(dmUtils.CompleteLoc(edtLoc.Text), lat, long);
2038     myloc := ' -longitude ' + CurrToStr(long) + ' -latitude ' + CurrToStr(lat);
2039   end;
2040   wait := '-wait ' + edtXRefresh.Text;
2041 
2042   case rgProjection.ItemIndex of
2043     0: proj := '';
2044     1: proj := ' -projection azimuthal -background ' + dmData.HomeDir +
2045         'xplanet' + PathDelim + 'bck.png';
2046     2: proj := ' -projection azimuthal';
2047     3: proj := ' -projection rectangular';
2048   end; //case
2049 
2050   cmd :=' -config ' + dmData.HomeDir +
2051     'xplanet' + PathDelim + 'geoconfig -window ' + myloc +
2052     ' -glare 28 -light_time -range 2.5 ' + wait + ' ' + geom +
2053     ' -window_title "CQRLOG - xplanet" ' + proj;
2054   AProcess := TProcess.Create(nil);
2055   try
2056     AProcess.Executable := edtXplanetPath.Text;
2057     index:=0;
2058     paramList := TStringList.Create;
2059     paramList.Delimiter := ' ';
2060     paramList.DelimitedText := cmd;
2061     AProcess.Parameters.Clear;
2062     while index < paramList.Count do
2063     begin
2064       AProcess.Parameters.Add(paramList[index]);
2065       inc(index);
2066     end;
2067     paramList.Free;
2068     if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text);
2069     AProcess.Execute;
2070   finally
2071     AProcess.Free;
2072   end;
2073 end;
2074 
2075 procedure TfrmPreferences.Button1Click(Sender: TObject);
2076 begin
2077   with TfrmBandMapWatch.Create(self) do
2078     try
2079       Caption := Caption + ' - watch';
2080       edtDXCC.Text := cqrini.ReadString('BandMap', 'wDXCC', '*');
2081       edtWAZ.Text := cqrini.ReadString('BandMap', 'wWAZ', '*');
2082       edtITU.Text := cqrini.ReadString('BandMap', 'wITU', '*');
2083       chkEU.Checked := cqrini.ReadBool('BandMap', 'wEU', True);
2084       chkAS.Checked := cqrini.ReadBool('BandMap', 'wAS', True);
2085       chkNA.Checked := cqrini.ReadBool('BandMap', 'wNA', True);
2086       chkSA.Checked := cqrini.ReadBool('BandMap', 'wSA', True);
2087       chkAF.Checked := cqrini.ReadBool('BandMap', 'wAF', True);
2088       chkOC.Checked := cqrini.ReadBool('BandMap', 'wOC', True);
2089       chkAN.Checked := cqrini.ReadBool('BandMap', 'wAN', True);
2090       chkIOTA.Checked := cqrini.ReadBool('BandMap', 'wIOTA', True);
2091 
2092       ShowModal;
2093       if ModalResult = mrOk then
2094       begin
2095         cqrini.WriteString('BandMap', 'wDXCC', edtDXCC.Text);
2096         cqrini.WriteString('BandMap', 'wWAZ', edtWAZ.Text);
2097         cqrini.WriteString('BandMap', 'wITU', edtITU.Text);
2098         cqrini.WriteBool('BandMap', 'wEU', chkEU.Checked);
2099         cqrini.WriteBool('BandMap', 'wAS', chkAS.Checked);
2100         cqrini.WriteBool('BandMap', 'wNA', chkNA.Checked);
2101         cqrini.WriteBool('BandMap', 'wSA', chkSA.Checked);
2102         cqrini.WriteBool('BandMap', 'wAF', chkAF.Checked);
2103         cqrini.WriteBool('BandMap', 'wOC', chkOC.Checked);
2104         cqrini.WriteBool('BandMap', 'wAN', chkAN.Checked);
2105         cqrini.WriteBool('BandMap', 'wIOTA', chkIOTA.Checked);
2106       end;
2107     finally
2108       Free
2109     end;
2110 end;
2111 
2112 procedure TfrmPreferences.btnFldigiPathClick(Sender: TObject);
2113 begin
2114   dlgOpen.Title := 'Locate fldigi binary ...';
2115   if dlgOpen.Execute then
2116     edtFldigiPath.Text := dlgOpen.FileName;
2117 end;
2118 
2119 procedure TfrmPreferences.btnSelectQSOColorClick(Sender : TObject);
2120 begin
2121   dlgColor.Color := pnlQSOColor.Color;
2122   if dlgColor.Execute then
2123     pnlQSOColor.Color := dlgColor.Color
2124 end;
2125 
2126 procedure TfrmPreferences.btnChangeDefFreqClick(Sender: TObject);
2127 begin
2128   frmNewQSODefValues := TfrmNewQSODefValues.Create(frmPreferences);
2129   try
2130     frmNewQSODefValues.WhatChangeDesc := 'Frequency';
2131     frmNewQSODefValues.WhatChange :=
2132       cqrini.ReadString('NewQSO', 'FreqList', cDefaultFreq);
2133     if frmNewQSODefValues.ShowModal = mrOk then
2134     begin
2135       cqrini.WriteString('NewQSO', 'FreqList', frmNewQSODefValues.GetValues);
2136       dmUtils.InsertFreq(cmbFreq);
2137       ReloadFreq := True
2138     end
2139   finally
2140     FreeAndNil(frmNewQSODefValues)
2141   end
2142 end;
2143 
2144 procedure TfrmPreferences.btnChangeDefModeClick(Sender: TObject);
2145 var
2146   cDefaultModes: String;
2147   i: Integer;
2148 begin
2149   cDefaultModes := '';
2150   frmNewQSODefValues := TfrmNewQSODefValues.Create(frmPreferences);
2151   try
2152     frmNewQSODefValues.WhatChangeDesc := 'Mode';
2153     for i := 0 to cMaxModes do
2154     begin
2155       cDefaultModes := cDefaultModes + '|' + cModes[i];
2156     end;
2157     frmNewQSODefValues.WhatChange :=
2158       cqrini.ReadString('NewQSO', 'Modes', cDefaultModes);
2159     if frmNewQSODefValues.ShowModal = mrOK then
2160     begin
2161       cqrini.WriteString('NewQSO', 'Modes', frmNewQSODefValues.GetValues);
2162       dmUtils.InsertModes(cmbMode);
2163       ReloadModes := True
2164     end
2165   finally
2166     FreeAndNil(frmNewQSODefValues);
2167   end;
2168 end;
2169 
2170 procedure TfrmPreferences.btnHelp1Click(Sender: TObject);
2171 begin
2172   dmUtils.OpenInApp('file://' + dmData.HelpDir + 'index.html' );
2173 end;
2174 
2175 procedure TfrmPreferences.btnWsjtPathClick(Sender: TObject);
2176 begin
2177   dlgOpen.Title := 'Locate wsjtx binary ...';
2178   if dlgOpen.Execute then
2179     edtWsjtPath.Text := dlgOpen.FileName;
2180 end;
2181 
2182 procedure TfrmPreferences.btnAlertCallsignsClick(Sender: TObject);
2183 var
2184   F : TfrmCallAlert;
2185 begin
2186   F := TfrmCallAlert.Create(self);
2187   try
2188     F.ShowModal
2189   finally
2190     FreeAndNil(F)
2191   end
2192 end;
2193 
2194 procedure TfrmPreferences.btnAddTrxMemClick(Sender : TObject);
2195 begin
2196   frmRadioMemories := TfrmRadioMemories.Create(frmTRXControl);
2197   try
2198     dmData.LoadFreqMemories(frmRadioMemories.sgrdMem);
2199     frmRadioMemories.ShowModal;
2200     if frmRadioMemories.ModalResult = mrOK then
2201     begin
2202       dmData.StoreFreqMemories(frmRadioMemories.sgrdMem)
2203     end
2204   finally
2205     FreeAndNil(frmRadioMemories)
2206   end
2207 end;
2208 
2209 procedure TfrmPreferences.btnBrowseBackup1Click(Sender: TObject);
2210 var
2211   path : String;
2212 begin
2213   if SelectDirectory('Select directory for backuping ...', dmData.DataDir, path) then
2214     edtBackupPath1.Text := path;
2215 end;
2216 
2217 procedure TfrmPreferences.btnCfgStorageClick(Sender: TObject);
2218 var
2219   frmConfigStorage : TfrmConfigStorage;
2220 begin
2221   frmConfigStorage := TfrmConfigStorage.Create(nil);
2222   try
2223     frmConfigStorage.ShowModal
2224   finally
2225     FreeAndNil(frmConfigStorage)
2226   end
2227 end;
2228 
2229 procedure TfrmPreferences.Button2Click(Sender: TObject);
2230 begin
2231   with TfrmBandMapWatch.Create(self) do
2232     try
2233       Caption := Caption + ' - ignore';
2234       chkIOTA.Visible := False;
2235       edtDXCC.Text := cqrini.ReadString('BandMap', 'iDXCC', '');
2236       edtWAZ.Text := cqrini.ReadString('BandMap', 'iWAZ', '');
2237       edtITU.Text := cqrini.ReadString('BandMap', 'iITU', '');
2238       chkEU.Checked := cqrini.ReadBool('BandMap', 'iEU', False);
2239       chkAS.Checked := cqrini.ReadBool('BandMap', 'iAS', False);
2240       chkNA.Checked := cqrini.ReadBool('BandMap', 'iNA', False);
2241       chkSA.Checked := cqrini.ReadBool('BandMap', 'iSA', False);
2242       chkAF.Checked := cqrini.ReadBool('BandMap', 'iAF', False);
2243       chkOC.Checked := cqrini.ReadBool('BandMap', 'iOC', False);
2244       chkAN.Checked := cqrini.ReadBool('BandMap', 'iAN', False);
2245       ShowModal;
2246       if ModalResult = mrOk then
2247       begin
2248         cqrini.WriteString('BandMap', 'iDXCC', edtDXCC.Text);
2249         cqrini.WriteString('BandMap', 'iWAZ', edtWAZ.Text);
2250         cqrini.WriteString('BandMap', 'iITU', edtITU.Text);
2251         cqrini.WriteBool('BandMap', 'iEU', chkEU.Checked);
2252         cqrini.WriteBool('BandMap', 'iAS', chkAS.Checked);
2253         cqrini.WriteBool('BandMap', 'iNA', chkNA.Checked);
2254         cqrini.WriteBool('BandMap', 'iSA', chkSA.Checked);
2255         cqrini.WriteBool('BandMap', 'iAF', chkAF.Checked);
2256         cqrini.WriteBool('BandMap', 'iOC', chkOC.Checked);
2257         cqrini.WriteBool('BandMap', 'iAN', chkAN.Checked);
2258       end;
2259     finally
2260       Free
2261     end;
2262 end;
2263 
2264 procedure TfrmPreferences.btnBrowseBackupClick(Sender: TObject);
2265 var
2266   path: string = '';
2267 begin
2268   if SelectDirectory('Select directory for backuping ...', dmData.DataDir, path) then
2269     edtBackupPath.Text := path;
2270 end;
2271 
2272 
2273 procedure TfrmPreferences.btnChangeDefaultFreqClick(Sender: TObject);
2274 begin
2275   with TfrmDefaultFreq.Create(self) do
2276     try
2277       ShowModal
2278     finally
2279       Free
2280     end;
2281 end;
2282 
2283 procedure TfrmPreferences.btnKeyMacrosClick(Sender: TObject);
2284 begin
2285   frmKeyTexts := TfrmKeyTexts.Create(self);
2286   try
2287     frmKeyTexts.ShowModal
2288   finally
2289     frmKeyTexts.Free
2290   end;
2291 end;
2292 
2293 procedure TfrmPreferences.btnSplitClick(Sender: TObject);
2294 begin
2295   with TfrmSplitSettings.Create(self) do
2296     try
2297       ShowModal
2298     finally
2299       Free
2300     end;
2301 end;
2302 
2303 procedure TfrmPreferences.btnForceMembershipUpdateClick(Sender : TObject);
2304 begin
2305   SaveClubSection;
2306   dmMembership.CheckForMembershipUpdate
2307 end;
2308 
2309 procedure TfrmPreferences.cbNoKeyerResetChange(Sender: TObject);
2310 begin
2311   if  cbNoKeyerReset.Checked
2312     and  (cmbIfaceType1.ItemIndex <> cmbIfaceType2.ItemIndex ) //both keyers are not same
2313      or  (cmbIfaceType1.ItemIndex = 4)
2314      or  (cmbIfaceType2.ItemIndex = 4) //type is HamLib
2315      then cbNoKeyerReset.Checked := false; //restart is always needed  when radio changes
2316 end;
2317 
2318 
2319 procedure TfrmPreferences.chkClUpEnabledChange(Sender: TObject);
2320 begin
2321   edtClUserName.Enabled := chkClUpEnabled.Checked;
2322   edtClPasswd.Enabled   := chkClUpEnabled.Checked;
2323   edtClEmail.Enabled    := chkClUpEnabled.Checked;
2324   chkClupOnline.Enabled := chkClUpEnabled.Checked;
2325   cmbClColor.Enabled    := chkClUpEnabled.Checked
2326 end;
2327 
2328 procedure TfrmPreferences.chkHaUpEnabledChange(Sender: TObject);
2329 begin
2330   edtHaUserName.Enabled := chkHaUpEnabled.Checked;
2331   edtHaPasswd.Enabled   := chkHaUpEnabled.Checked;
2332   chkHaupOnline.Enabled := chkHaUpEnabled.Checked;
2333   cmbHaColor.Enabled    := chkHaUpEnabled.Checked
2334 end;
2335 
2336 procedure TfrmPreferences.chkHrUpEnabledChange(Sender: TObject);
2337 begin
2338   edtHrUserName.Enabled := chkHrUpEnabled.Checked;
2339   edtHrCode.Enabled     := chkHrUpEnabled.Checked;
2340   chkHrUpOnline.Enabled := chkHrUpEnabled.Checked;
2341   cmbHrColor.Enabled    := chkHrUpEnabled.Checked
2342 end;
2343 
2344 procedure TfrmPreferences.chkPotSpeedChange(Sender: TObject);
2345 begin
2346   if chkPotSpeed.Checked then
2347     edtWinSpeed.Enabled := False
2348   else
2349     edtWinSpeed.Enabled := True;
2350 end;
2351 
2352 procedure TfrmPreferences.chkProfileLocatorClick(Sender: TObject);
2353 var
2354   i: integer;
2355 begin
2356   i := cmbProfiles.ItemIndex;
2357   dmData.InsertProfiles(cmbProfiles, False, chkProfileLocator.Checked,
2358     chkProfileQTH.Checked, chkProfileRig.Checked);
2359   cmbProfiles.ItemIndex := i;
2360 end;
2361 
2362 procedure TfrmPreferences.chkProfileQTHClick(Sender: TObject);
2363 var
2364   i: integer;
2365 begin
2366   i := cmbProfiles.ItemIndex;
2367   dmData.InsertProfiles(cmbProfiles, False, chkProfileLocator.Checked,
2368     chkProfileQTH.Checked, chkProfileRig.Checked);
2369   cmbProfiles.ItemIndex := i;
2370 end;
2371 
2372 procedure TfrmPreferences.chkProfileRigClick(Sender: TObject);
2373 var
2374   i: integer;
2375 begin
2376   i := cmbProfiles.ItemIndex;
2377   dmData.InsertProfiles(cmbProfiles, False, chkProfileLocator.Checked,
2378     chkProfileQTH.Checked, chkProfileRig.Checked);
2379   cmbProfiles.ItemIndex := i;
2380 end;
2381 
2382 procedure TfrmPreferences.chkRBNLinkChange(Sender: TObject);
2383 begin
2384   if chkRBNLink.Checked then
2385    Begin
2386      chkRBNAutoConn.Checked:=false;
2387      chkRBNAutoConn.Enabled:=false;
2388    end
2389   else chkRBNAutoConn.Enabled:=true;
2390 end;
2391 
2392 procedure TfrmPreferences.chkSysUTCClick(Sender: TObject);
2393 begin
2394   edtOffset.Enabled    := not chkSysUTC.Checked;
2395   edtSunOffset.Enabled := not chkSysUTC.Checked
2396 end;
2397 
2398 procedure TfrmPreferences.chkUseDXCColorsChange(Sender: TObject);
2399 begin
2400   if chkUseDXCColors.Checked then
2401     cmbFrmDXCColor.Enabled := False
2402   else
2403     cmbFrmDXCColor.Enabled := True;
2404 end;
2405 
2406 procedure TfrmPreferences.btnFirstLoadClick(Sender: TObject);
2407 begin
2408   if cmbFirstZip.Text = '' then
2409     exit;
2410   with TfrmLoadClub.Create(self) do
2411     try
2412       Caption := 'Loading ZIP codes';
2413       TypOfLoad := 1;
2414       ZipNr := 1;
2415       SourceFile := dmData.ZipCodeDir + LowerCase(
2416         copy(cmbFirstZip.Text, 1, Pos(';', cmbFirstZip.Text) - 1)) + '.txt';
2417       ShowModal
2418     finally
2419       Free
2420     end;
2421 end;
2422 
2423 procedure TfrmPreferences.btnSecondLoadClick(Sender: TObject);
2424 begin
2425   if cmbSecondZip.Text = '' then
2426     exit;
2427   with TfrmLoadClub.Create(self) do
2428     try
2429       Caption := 'Loading ZIP codes';
2430       TypOfLoad := 1;
2431       ZipNr := 2;
2432       SourceFile := dmData.ZipCodeDir + LowerCase(
2433         copy(cmbSecondZip.Text, 1, Pos(';', cmbSecondZip.Text) - 1)) + '.txt';
2434       ShowModal
2435     finally
2436       Free
2437     end;
2438 end;
2439 
2440 procedure TfrmPreferences.btnThirdLoadClick(Sender: TObject);
2441 begin
2442   if cmbThirdZip.Text = '' then
2443     exit;
2444   with TfrmLoadClub.Create(self) do
2445     try
2446       Caption := 'Loading ZIP codes';
2447       TypOfLoad := 1;
2448       ZipNr := 3;
2449       SourceFile := dmData.ZipCodeDir + LowerCase(
2450         copy(cmbThirdZip.Text, 1, Pos(';', cmbThirdZip.Text) - 1)) + '.txt';
2451       ShowModal
2452     finally
2453       Free
2454     end;
2455 end;
2456 
2457 procedure TfrmPreferences.cmbDataBitsR1Change(Sender : TObject);
2458 begin
2459   TRXChanged := True
2460 end;
2461 
2462 procedure TfrmPreferences.cmbDataBitsR2Change(Sender : TObject);
2463 begin
2464   TRXChanged := True
2465 end;
2466 
2467 procedure TfrmPreferences.cmbDTRR1Change(Sender : TObject);
2468 begin
2469   TRXChanged := True
2470 end;
2471 
2472 procedure TfrmPreferences.cmbDTRR2Change(Sender : TObject);
2473 begin
2474   TRXChanged := True
2475 end;
2476 
2477 
2478 
2479 procedure TfrmPreferences.cmbHanshakeR1Change(Sender : TObject);
2480 begin
2481   TRXChanged := True
2482 end;
2483 
2484 procedure TfrmPreferences.cmbHanshakeR2Change(Sender : TObject);
2485 begin
2486   TRXChanged := True
2487 end;
2488 
2489 procedure TfrmPreferences.cmbIfaceType1Change(Sender: TObject);
2490 begin
2491   WinKeyerChanged := True;
2492    if  cbNoKeyerReset.Checked
2493     and  (cmbIfaceType1.ItemIndex <> cmbIfaceType2.ItemIndex ) //both keyers are not same
2494      or  (cmbIfaceType1.ItemIndex = 4)
2495      or  (cmbIfaceType2.ItemIndex = 4) //type is HamLib
2496      then cbNoKeyerReset.Checked := false; //restart is always needed  when radio changes
2497 end;
2498 procedure TfrmPreferences.cmbIfaceType2Change(Sender: TObject);
2499 begin
2500   WinKeyerChanged := True;
2501   if  cbNoKeyerReset.Checked
2502     and  (cmbIfaceType1.ItemIndex <> cmbIfaceType2.ItemIndex ) //both keyers are not same
2503      or  (cmbIfaceType1.ItemIndex = 4)
2504      or  (cmbIfaceType2.ItemIndex = 4) //type is HamLib
2505      then cbNoKeyerReset.Checked := false; //restart is always needed  when radio changes
2506 end;
2507 
2508 procedure TfrmPreferences.cmbParityR1Change(Sender : TObject);
2509 begin
2510   TRXChanged := True
2511 end;
2512 
2513 procedure TfrmPreferences.cmbParityR2Change(Sender : TObject);
2514 begin
2515   TRXChanged := True
2516 end;
2517 
2518 procedure TfrmPreferences.cmbRTSR1Change(Sender : TObject);
2519 begin
2520   TRXChanged := True
2521 end;
2522 
2523 procedure TfrmPreferences.cmbRTSR2Change(Sender : TObject);
2524 begin
2525   TRXChanged := True
2526 end;
2527 
2528 procedure TfrmPreferences.cmbSpeedR1Change(Sender : TObject);
2529 begin
2530   TRXChanged := True
2531 end;
2532 
2533 procedure TfrmPreferences.cmbSpeedR2Change(Sender : TObject);
2534 begin
2535   TRXChanged := True
2536 end;
2537 
2538 procedure TfrmPreferences.cmbStopBitsR1Change(Sender : TObject);
2539 begin
2540   TRXChanged := True
2541 end;
2542 
2543 procedure TfrmPreferences.cmbStopBitsR2Change(Sender : TObject);
2544 begin
2545   TRXChanged := True
2546 end;
2547 
2548 procedure TfrmPreferences.edtHtmlFilesClick(Sender: TObject);
2549 begin
2550   if odFindBrowser.Execute then
2551         edtHtmlFiles.Text := odFindBrowser.Filename;
2552 end;
2553 
2554 procedure TfrmPreferences.edtK3NGSerSpeedChange(Sender: TObject);
2555 begin
2556   WinKeyerChanged := True
2557 end;
2558 
2559 procedure TfrmPreferences.edtLocChange(Sender: TObject);
2560 begin
2561   edtLoc.Text := dmUtils.StdFormatLocator(edtLoc.Text);
2562   edtLoc.SelStart := Length(edtLoc.Text);
2563 end;
2564 
2565 procedure TfrmPreferences.edtR1RigCtldArgsChange(Sender: TObject);
2566 begin
2567   TRXChanged := True
2568 end;
2569 
2570 procedure TfrmPreferences.edtR1RigCtldPortChange(Sender : TObject);
2571 begin
2572   TRXChanged := True
2573 end;
2574 
2575 procedure TfrmPreferences.edtR2RigCtldArgsChange(Sender : TObject);
2576 begin
2577   TRXChanged := True
2578 end;
2579 
2580 procedure TfrmPreferences.edtR2RigCtldPortChange(Sender : TObject);
2581 begin
2582   TRXChanged := True
2583 end;
2584 
2585 procedure TfrmPreferences.edtRadio1NameChange(Sender: TObject);
2586 begin
2587   TRXChanged := True
2588 end;
2589 
2590 procedure TfrmPreferences.edtRadio2Change(Sender: TObject);
2591 begin
2592   TRXChanged := True
2593 end;
2594 
2595 procedure TfrmPreferences.edtRecetQSOsKeyPress(Sender: TObject; var Key: char);
2596 begin
2597   if not (key in ['0'..'9']) then
2598     key := #0;
2599 end;
2600 
2601 procedure TfrmPreferences.edtWebBrowserClick(Sender: TObject);
2602 Begin
2603   if odFindBrowser.Execute then
2604         edtWebBrowser.Text := odFindBrowser.Filename;
2605 end;
2606 
2607 procedure TfrmPreferences.edtWebBrowserExit(Sender: TObject);
2608 var
2609    f,p :string;
2610 begin
2611   f:= edtWebBrowser.Text;
2612   if (f = '') or (f[length(f)] = '/') then
2613       Begin
2614        edtWebBrowser.Text :='';
2615        ShowMessage('File:'+f+' is not found!'+LineEnding+'Check file name,'+LineEnding+'or give full path.')
2616       end
2617     else
2618      begin
2619        p:= GetEnv('PATH');
2620        edtWebBrowser.Text:=FileSearch (f,p);
2621        if (edtWebBrowser.Text ='') then
2622          ShowMessage('File:'+f+' is not found!'+LineEnding+'Check file name,'+LineEnding+'or give full path.');
2623      end;
2624 end;
2625 
2626 procedure TfrmPreferences.edtWinMaxSpeedChange(Sender: TObject);
2627 begin
2628   WinKeyerChanged := True
2629 end;
2630 
2631 procedure TfrmPreferences.edtWinMinSpeedChange(Sender: TObject);
2632 begin
2633   WinKeyerChanged := True
2634 end;
2635 
2636 procedure TfrmPreferences.edtWinPort1Change(Sender: TObject);
2637 begin
2638   WinKeyerChanged := True
2639 end;
2640 
2641 procedure TfrmPreferences.edtWinSpeedChange(Sender: TObject);
2642 begin
2643   WinKeyerChanged := True
2644 end;
2645 
2646 procedure TfrmPreferences.edtXplanetLocChange(Sender: TObject);
2647 begin
2648   edtXplanetLoc.Text := dmUtils.StdFormatLocator(edtXplanetLoc.Text);
2649   edtXplanetLoc.SelStart := Length(edtXplanetLoc.Text);
2650 end;
2651 
2652 procedure TfrmPreferences.lbPreferencesClick(Sender: TObject);
2653 begin
2654   pgPreferences.ActivePageIndex := lbPreferences.ItemIndex;
2655 end;
2656 
2657 procedure TfrmPreferences.FormShow(Sender: TObject);
2658 var
2659   i: integer;
2660 begin
2661   dmUtils.LoadFontSettings(self);
2662   dmUtils.InsertModes(cmbDefaultMode);
2663   dmUtils.InsertModes(cmbMode);
2664   dmUtils.InsertModes(cmbWsjtDefaultMode);
2665   cmbDefaultMode.Style := csDropDownList;
2666   cmbWsjtDefaultMode.Style := csDropDownList;
2667 
2668   LoadMebershipCombo;
2669 
2670   dmUtils.ReadZipList(cmbFirstZip);
2671   for i := 0 to cmbFirstZip.Items.Count - 1 do
2672   begin
2673     cmbSecondZip.Items.Add(cmbFirstZip.Items[i]);
2674     cmbThirdZip.Items.Add(cmbFirstZip.Items[i]);
2675   end;
2676   dmData.InsertProfiles(cmbProfiles, False);
2677   Top := cqrini.ReadInteger('Pref', 'Top', 20);
2678   Left := cqrini.ReadInteger('Pref', 'Left', 20);
2679   ActPageIdx := cqrini.ReadInteger('Pref', 'ActPageIdx', 0);
2680 
2681   edtCall.Text := cqrini.ReadString('Station', 'Call', '');
2682   edtName.Text := cqrini.ReadString('Station', 'Name', '');
2683   edtQTH.Text := cqrini.ReadString('Station', 'QTH', '');
2684   edtLoc.Text := cqrini.ReadString('Station', 'LOC', '');
2685   edtMailingAddress.Text := cqrini.ReadString('Station', 'MailingAddress', '');
2686   edtZipCity.Text := cqrini.ReadString('Station', 'ZipCity', '');
2687   edtEmail.Text := cqrini.ReadString('Station', 'Email', '');
2688   edtClub.Text := cqrini.ReadString('Station', 'Club', '');
2689 
2690   edtRST_S.Text := cqrini.ReadString('NewQSO', 'RST_S', '599');
2691   edtRST_R.Text := cqrini.ReadString('NewQSO', 'RST_R', '599');
2692   edtPWR.Text := cqrini.ReadString('NewQSO', 'PWR', '100');
2693   cmbFreq.Text := cqrini.ReadString('NewQSO', 'FREQ', '7.025');
2694   cmbMode.Text := cqrini.ReadString('NewQSO', 'Mode', 'CW');
2695   cmbQSL_S.Text := cqrini.ReadString('NewQSO', 'QSL_S', '');
2696   edtComments.Text := cqrini.ReadString('NewQSO', 'RemQSO', '');
2697   chkUseSpaceBar.Checked := cqrini.ReadBool('NewQSO', 'UseSpaceBar', False);
2698   chkRefreshAfterSave.Checked := cqrini.ReadBool('NewQSO', 'RefreshAfterSave', False);
2699   chkSkipModeFreq.Checked := cqrini.ReadBool('NewQSO', 'SkipModeFreq', True);
2700   chkAutoSearch.Checked := cqrini.ReadBool('NewQSO', 'AutoSearch', False);
2701   chkShowRecentQSOs.Checked := cqrini.ReadBool('NewQSO', 'ShowRecentQSOs', False);
2702   chkShowB4call.Checked := cqrini.ReadBool('NewQSO', 'ShowB4call', False);
2703   edtRecetQSOs.Text := cqrini.ReadString('NewQSO', 'RecQSOsNum', '5');
2704   chkIgnoreQRZQSL.Checked := cqrini.ReadBool('NewQSO', 'IgnoreQRZ', False);
2705   chkMvToRem.Checked := cqrini.ReadBool('NewQSO', 'MvToRem', True);
2706   chkAutoQSLS.Checked := cqrini.ReadBool('NewQSO', 'AutoQSLS', True);
2707   chkAutoDQSLS.Checked := cqrini.ReadBool('NewQSO', 'AutoDQSLS', False);
2708   chkAutoQQSLS.Checked := cqrini.ReadBool('NewQSO', 'AutoQQSLS', False);
2709   chkAllVariants.Checked := cqrini.ReadBool('NewQSO', 'AllVariants', False);
2710   chkClearRIT.Checked := cqrini.ReadBool('NewQSO','ClearRIT',False);
2711   chkUseCallBookData.Checked := cqrini.ReadBool('NewQSO','UseCallBookData',False);
2712   chkCapFirstQTHLetter.Checked := cqrini.ReadBool('NewQSO','CapFirstQTHLetter',True);
2713   chkUseCallbookZonesEtc.Checked := cqrini.ReadBool('NewQSO','UseCallbookZonesEtc',True);
2714   chkFillAwardField.Checked := cqrini.ReadBool('NewQSO','FillAwardField',True);
2715   chkSatelliteMode.Checked := cqrini.ReadBool('NewQSO','SatelliteMode', False);
2716   chkUpdateAMSATstatus.Checked := cqrini.ReadBool('NewQSO','UpdateAMSATstatus', False);
2717 
2718   edtProxy.Text := cqrini.ReadString('Program', 'Proxy', '');
2719   edtPort.Text := cqrini.ReadString('Program', 'Port', '');
2720   edtUser.Text := cqrini.ReadString('Program', 'User', '');
2721   edtPasswd.Text := cqrini.ReadString('Program', 'Passwd', '');
2722   edtOffset.Text := CurrToStr(cqrini.ReadFloat('Program', 'offset', 0));
2723   pgPreferences.ActivePageIndex := cqrini.ReadInteger('Program', 'Options', 0);
2724   edtGrayLineOffset.Text :=
2725     CurrToStr(cqrini.ReadFloat('Program', 'GraylineOffset', 0));
2726   edtWebBrowser.Text := cqrini.ReadString('Program', 'WebBrowser', dmUtils.MyDefaultBrowser);
2727   chkNewDXCCTables.Checked := cqrini.ReadBool('Program', 'CheckDXCCTabs', True);
2728   chkShowDeleted.Checked := cqrini.ReadBool('Program', 'ShowDeleted', False);
2729   chkSunUTC.Checked := cqrini.ReadBool('Program', 'SunUTC', False);
2730   chkNewQSLTables.Checked := cqrini.ReadBool('Program', 'CheckQSLTabs', True);
2731   chkNewDOKTables.Checked := cqrini.ReadBool('Program', 'CheckDOKTabs', False);
2732   edtSunOffset.Text := CurrToStr(cqrini.ReadFloat('Program', 'SunOffset', 0));
2733   chkSysUTC.Checked := cqrini.ReadBool('Program', 'SysUTC', True);
2734   chkShowMiles.Checked := cqrini.ReadBool('Program','ShowMiles',False);
2735   chkQSOColor.Checked := cqrini.ReadBool('Program', 'QSODiffColor', False);
2736   pnlQSOColor.Color := cqrini.ReadInteger('Program', 'QSOColor', clBlack);
2737   edtQSOColorDate.Text := cqrini.ReadString('Program', 'QSOColorDate', '');
2738 
2739   if cqrini.ReadBool('Program', 'BandStatMHz', True) then
2740     rgStatistics.ItemIndex := 0
2741   else
2742     rgStatistics.ItemIndex := 1;
2743 
2744   chkDate.Checked := cqrini.ReadBool('Columns', 'Date', True);
2745   chkTimeOn.Checked := cqrini.ReadBool('Columns', 'time_on', True);
2746   chkTimeOff.Checked := cqrini.ReadBool('Columns', 'time_off', False);
2747   chkCallSign.Checked := cqrini.ReadBool('Columns', 'CallSign', True);
2748   chkMode.Checked := cqrini.ReadBool('Columns', 'Mode', True);
2749   chkFreq.Checked := cqrini.ReadBool('Columns', 'Freq', True);
2750   chkRST_S.Checked := cqrini.ReadBool('Columns', 'RST_S', True);
2751   chkRST_R.Checked := cqrini.ReadBool('Columns', 'RST_R', True);
2752   chkName.Checked := cqrini.ReadBool('Columns', 'Name', True);
2753   chkQTH.Checked := cqrini.ReadBool('Columns', 'QTH', True);
2754   chkQSL_S.Checked := cqrini.ReadBool('Columns', 'QSL_S', True);
2755   chkQSL_R.Checked := cqrini.ReadBool('Columns', 'QSL_R', True);
2756   chkQSL_VIA.Checked := cqrini.ReadBool('Columns', 'QSL_VIA', False);
2757   chkLoc.Checked := cqrini.ReadBool('Columns', 'Locator', False);
2758   chkMyLoc.Checked := cqrini.ReadBool('Columns', 'MyLoc', False);
2759   chkOperator.Checked := cqrini.ReadBool('Columns', 'Operator', False);
2760   chkDistance.Checked := cqrini.ReadBool('Columns', 'Distance', False);
2761   chkIOTA.Checked := cqrini.ReadBool('Columns', 'IOTA', False);
2762   chkAward.Checked := cqrini.ReadBool('Columns', 'Award', False);
2763   chkCounty.Checked := cqrini.ReadBool('Columns', 'County', False);
2764   chkPower.Checked := cqrini.ReadBool('Columns', 'Power', False);
2765   chkDXCC.Checked := cqrini.ReadBool('Columns', 'DXCC', False);
2766   chkRemarks.Checked := cqrini.ReadBool('Columns', 'Remarks', False);
2767   chkWAZ.Checked := cqrini.ReadBool('Columns', 'WAZ', False);
2768   chkITU.Checked := cqrini.ReadBool('Columns', 'ITU', False);
2769   chkState.Checked := cqrini.ReadBool('Columns', 'State', False);
2770   chkLoTWQSLSDate.Checked := cqrini.ReadBool('Columns', 'LoTWQSLSDate', False);
2771   chkLoTWQSLRDate.Checked := cqrini.ReadBool('Columns', 'LoTWQSLRDate', False);
2772   chkLoTWQSLS.Checked := cqrini.ReadBool('Columns', 'LoTWQSLS', False);
2773   chkLoTWQSLR.Checked := cqrini.ReadBool('Columns', 'LOTWQSLR', False);
2774   chkCont.Checked := cqrini.ReadBool('Columns', 'Cont', False);
2775   chkQSLSentDate.Checked := cqrini.ReadBool('Columns', 'QSLSDate', False);
2776   chkQSLRcvdDate.Checked := cqrini.ReadBool('Columns', 'QSLRDate', False);
2777   chkeQSLSent.Checked := cqrini.ReadBool('Columns', 'eQSLQSLS', False);
2778   chkeQSLSentDate.Checked := cqrini.ReadBool('Columns', 'eQSLQSLSDate', False);
2779   chkeQSLRcvd.Checked := cqrini.ReadBool('Columns', 'eQSLQSLR', False);
2780   chkeQSLRcvdDate.Checked := cqrini.ReadBool('Columns', 'eQSLQSLRDate', False);
2781   chkQSLRAll.Checked := cqrini.ReadBool('Columns', 'QSLRAll', False);
2782   chkCountry.Checked := cqrini.ReadBool('Columns', 'Country', False);
2783   chkPropagation.Checked := cqrini.ReadBool('Columns', 'Propagation', False);
2784   chkSatellite.Checked := cqrini.ReadBool('Columns', 'SatelliteName', False);
2785   chkRXFreq.Checked := cqrini.ReadBool('Columns', 'RXFreq', False);
2786   chkContestName.Checked := cqrini.ReadBool('Columns', 'ContestName', False);
2787   chkSTX.Checked := cqrini.ReadBool('Columns', 'STX', False);
2788   chkSRX.Checked := cqrini.ReadBool('Columns', 'SRX', False);
2789   chkSTX_str.Checked := cqrini.ReadBool('Columns', 'ContMsgSent', False);
2790   chkSRX_str.Checked := cqrini.ReadBool('Columns', 'ContMsgRcvd', False);
2791   chkDarcDok.Checked := cqrini.ReadBool('Columns', 'DarcDok', False);
2792 
2793   cb136kHz.Checked := cqrini.ReadBool('Bands', '137kHz', False);
2794   cb472kHz.Checked := cqrini.ReadBool('Bands', '472kHz', False);
2795   cb160m.Checked := cqrini.ReadBool('Bands', '160m', True);
2796   cb80m.Checked := cqrini.ReadBool('Bands', '80m', True);
2797   cb60m.Checked := cqrini.ReadBool('Bands', '60m', False);
2798   cb40m.Checked := cqrini.ReadBool('Bands', '40m', True);
2799   cb30m.Checked := cqrini.ReadBool('Bands', '30m', True);
2800   cb20m.Checked := cqrini.ReadBool('Bands', '20m', True);
2801   cb17m.Checked := cqrini.ReadBool('Bands', '17m', True);
2802   cb15m.Checked := cqrini.ReadBool('Bands', '15m', True);
2803   cb12m.Checked := cqrini.ReadBool('Bands', '12m', True);
2804   cb10m.Checked := cqrini.ReadBool('Bands', '10m', True);
2805 
2806   cb4m.Checked := cqrini.ReadBool('Bands', '4m', False);
2807   cb6m.Checked := cqrini.ReadBool('Bands', '6m', True);
2808   cb125m.Checked := cqrini.ReadBool('Bands', '1.25m', False);
2809   cb2m.Checked := cqrini.ReadBool('Bands', '2m', True);
2810   cb70cm.Checked := cqrini.ReadBool('Bands', '70cm', True);
2811   cb30cm.Checked := cqrini.ReadBool('Bands', '33cm', False);
2812   cb23cm.Checked := cqrini.ReadBool('Bands', '23cm', False);
2813   cb13cm.Checked := cqrini.ReadBool('Bands', '13cm', False);
2814   cb8cm.Checked := cqrini.ReadBool('Bands', '8cm', False);
2815   cb5cm.Checked := cqrini.ReadBool('Bands', '5cm', False);
2816   cb3cm.Checked := cqrini.ReadBool('Bands', '3cm', False);
2817   cb1cm.Checked := cqrini.ReadBool('Bands', '1cm', False);
2818   cb47GHz.Checked := cqrini.ReadBool('Bands', '47GHz', False);
2819   cb76GHz.Checked := cqrini.ReadBool('Bands', '76GHz', False);
2820 
2821   edtRigCtldPath.Text := cqrini.ReadString('TRX', 'RigCtldPath', '/usr/local/bin/rigctld');
2822   chkTrxControlDebug.Checked := cqrini.ReadBool('TRX','Debug',False);
2823   chkModeRelatedOnly.Checked := cqrini.ReadBool('TRX','MemModeRelated',False);
2824 
2825   edtRotCtldPath.Text := cqrini.ReadString('ROT', 'RotCtldPath', '/usr/local/bin/rotctld');
2826 
2827   if (FileExistsUTF8(edtRigCtldPath.Text)) then
2828   begin
2829     dmUtils.LoadRigsToComboBox(cqrini.ReadString('TRX1', 'model', ''),edtRigCtldPath.Text,cmbModelRig1);
2830     dmUtils.LoadRigsToComboBox(cqrini.ReadString('TRX2', 'model', ''),edtRigCtldPath.Text,cmbModelRig2)
2831   end
2832   else begin
2833     Application.MessageBox('rigctld binary not fount, cannot load list of supported rigs!'+LineEnding+LineEnding+
2834                            'Fix path to rigctld in TRX control tab.', 'Error', mb_OK+ mb_IconError)
2835   end;
2836 
2837   if (FileExistsUTF8(edtRotCtldPath.Text)) then
2838   begin
2839     dmUtils.LoadRigsToComboBox(cqrini.ReadString('ROT1', 'model', ''),edtRotCtldPath.Text,cmbModelRot1);
2840     dmUtils.LoadRigsToComboBox(cqrini.ReadString('ROT2', 'model', ''),edtRotCtldPath.Text,cmbModelRot2)
2841   end
2842   else begin
2843     Application.MessageBox('rotctld binary not fount, cannot load list of supported rotators!'+LineEnding+LineEnding+
2844                            'Fix path to rotctld in ROT control tab.', 'Error', mb_OK+ mb_IconError)
2845   end;
2846 
2847   edtR1Device.Text := cqrini.ReadString('TRX1', 'device', '');
2848   edtPoll1.Text := cqrini.ReadString('TRX1', 'poll', '500');
2849   edtRadio1Name.Text := cqrini.ReadString('TRX1', 'Desc', 'Radio 1');
2850   chkR1SendCWR.Checked := cqrini.ReadBool('TRX1', 'CWR', False);
2851   edtR1RigCtldPort.Text := cqrini.ReadString('TRX1', 'RigCtldPort', '4532');
2852   edtR1RigCtldArgs.Text := cqrini.ReadString('TRX1', 'ExtraRigCtldArgs', '');
2853   chkR1RunRigCtld.Checked := cqrini.ReadBool('TRX1', 'RunRigCtld', False);
2854   edtR1Host.Text := cqrini.ReadString('TRX1', 'host', 'localhost');
2855   cmbSpeedR1.ItemIndex := cqrini.ReadInteger('TRX1', 'SerialSpeed', 0);
2856   cmbDataBitsR1.ItemIndex := cqrini.ReadInteger('TRX1', 'DataBits', 0);
2857   cmbStopBitsR1.ItemIndex := cqrini.ReadInteger('TRX1', 'StopBits', 0);
2858   cmbParityR1.ItemIndex := cqrini.ReadInteger('TRX1', 'Parity', 0);
2859   cmbHanshakeR1.ItemIndex := cqrini.ReadInteger('TRX1', 'HandShake', 0);
2860   cmbDTRR1.ItemIndex := cqrini.ReadInteger('TRX1', 'DTR', 0);
2861   cmbRTSR1.ItemIndex := cqrini.ReadInteger('TRX1', 'RTS', 0);
2862   edtUsr1R1name.Text:=cqrini.ReadString('TRX1', 'usr1name', 'Usr1');
2863   edtUsr2R1name.Text:=cqrini.ReadString('TRX1', 'usr2name', 'Usr2');
2864   edtUsr3R1name.Text:=cqrini.ReadString('TRX1', 'usr3name', 'Usr3');
2865   edtUsr1R1.Text:=cqrini.ReadString('TRX1', 'usr1', '');
2866   edtUsr2R1.Text:=cqrini.ReadString('TRX1', 'usr2', '');
2867   edtUsr3R1.Text:=cqrini.ReadString('TRX1', 'usr3', '');
2868 
2869   edtR2Device.Text := cqrini.ReadString('TRX2', 'device', '');
2870   edtPoll2.Text := cqrini.ReadString('TRX2', 'poll', '500');
2871   edtRadio2Name.Text := cqrini.ReadString('TRX2', 'Desc', 'Radio 2');
2872   chkR2SendCWR.Checked := cqrini.ReadBool('TRX2', 'CWR', False);
2873   edtR2RigCtldPort.Text := cqrini.ReadString('TRX2', 'RigCtldPort', '4532');
2874   edtR2RigCtldArgs.Text := cqrini.ReadString('TRX2', 'ExtraRigCtldArgs', '');
2875   chkR2RunRigCtld.Checked := cqrini.ReadBool('TRX2', 'RunRigCtld', False);
2876   edtR2Host.Text := cqrini.ReadString('TRX2', 'host', 'localhost');
2877   cmbSpeedR2.ItemIndex := cqrini.ReadInteger('TRX2', 'SerialSpeed', 0);
2878   cmbDataBitsR2.ItemIndex := cqrini.ReadInteger('TRX2', 'DataBits', 0);
2879   cmbStopBitsR2.ItemIndex := cqrini.ReadInteger('TRX2', 'StopBits', 0);
2880   cmbParityR2.ItemIndex := cqrini.ReadInteger('TRX2', 'Parity', 0);
2881   cmbHanshakeR2.ItemIndex := cqrini.ReadInteger('TRX2', 'HandShake', 0);
2882   cmbDTRR2.ItemIndex := cqrini.ReadInteger('TRX2', 'DTR', 0);
2883   cmbRTSR2.ItemIndex := cqrini.ReadInteger('TRX2', 'RTS', 0);
2884   edtUsr1R2name.Text:=cqrini.ReadString('TRX2', 'usr1name', 'Usr1');
2885   edtUsr2R2name.Text:=cqrini.ReadString('TRX2', 'usr2name', 'Usr2');
2886   edtUsr3R2name.Text:=cqrini.ReadString('TRX2', 'usr3name', 'Usr3');
2887   edtUsr1R2.Text:=cqrini.ReadString('TRX2', 'usr1', '');
2888   edtUsr2R2.Text:=cqrini.ReadString('TRX2', 'usr2', '');
2889   edtUsr3R2.Text:=cqrini.ReadString('TRX2', 'usr3', '');
2890 
2891   edtRot1Device.Text := cqrini.ReadString('ROT1', 'device', '');
2892   edtRot1Poll.Text := cqrini.ReadString('ROT1', 'poll', '500');
2893   edtRotor1.Text := cqrini.ReadString('ROT1', 'Desc', 'Rotor 1');
2894   edtRot1RotCtldPort.Text := cqrini.ReadString('ROT1', 'RotCtldPort', '4533');
2895   edtRot1RotCtldArgs.Text := cqrini.ReadString('ROT1', 'ExtraRotCtldArgs', '');
2896   chkRot1RunRotCtld.Checked := cqrini.ReadBool('ROT1', 'RunRotCtld', False);
2897   chkRot1AzMinMax.Checked := cqrini.ReadBool('ROT1', 'RotAzMinMax', False);
2898   edtRot1Host.Text := cqrini.ReadString('ROT1', 'host', 'localhost');
2899   cmbSpeedRot1.ItemIndex := cqrini.ReadInteger('ROT1', 'SerialSpeed', 0);
2900   cmbDataBitsRot1.ItemIndex := cqrini.ReadInteger('ROT1', 'DataBits', 0);
2901   cmbStopBitsRot1.ItemIndex := cqrini.ReadInteger('ROT1', 'StopBits', 0);
2902   cmbParityRot1.ItemIndex := cqrini.ReadInteger('ROT1', 'Parity', 0);
2903   cmbHanshakeRot1.ItemIndex := cqrini.ReadInteger('ROT1', 'HandShake', 0);
2904   cmbDTRRot1.ItemIndex := cqrini.ReadInteger('ROT1', 'DTR', 0);
2905   cmbRTSRot1.ItemIndex := cqrini.ReadInteger('ROT1', 'RTS', 0);
2906 
2907   edtRot2Device.Text := cqrini.ReadString('ROT2', 'device', '');
2908   edtRot2Poll.Text := cqrini.ReadString('ROT2', 'poll', '500');
2909   edtRotor2.Text := cqrini.ReadString('ROT2', 'Desc', 'Rotor 2');
2910   edtRot2RotCtldPort.Text := cqrini.ReadString('ROT2', 'RotCtldPort', '4533');
2911   edtRot2RotCtldArgs.Text := cqrini.ReadString('ROT2', 'ExtraRotCtldArgs', '');
2912   chkRot2RunRotCtld.Checked := cqrini.ReadBool('ROT2', 'RunRotCtld', False);
2913   chkRot2AzMinMax.Checked := cqrini.ReadBool('ROT2', 'RotAzMinMax', False);
2914   edtRot2Host.Text := cqrini.ReadString('ROT2', 'host', 'localhost');
2915   cmbSpeedRot2.ItemIndex := cqrini.ReadInteger('ROT2', 'SerialSpeed', 0);
2916   cmbDataBitsRot2.ItemIndex := cqrini.ReadInteger('ROT2', 'DataBits', 0);
2917   cmbStopBitsRot2.ItemIndex := cqrini.ReadInteger('ROT2', 'StopBits', 0);
2918   cmbParityRot2.ItemIndex := cqrini.ReadInteger('ROT2', 'Parity', 0);
2919   cmbHanshakeRot2.ItemIndex := cqrini.ReadInteger('ROT2', 'HandShake', 0);
2920   cmbDTRRot2.ItemIndex := cqrini.ReadInteger('ROT2', 'DTR', 0);
2921   cmbRTSRot2.ItemIndex := cqrini.ReadInteger('ROT2', 'RTS', 0);
2922 
2923   edtCW1.Value := cqrini.ReadInteger('Band1', 'CW', 500);
2924   edtSSB1.Value := cqrini.ReadInteger('Band1', 'SSB', 1800);
2925   edtRTTY1.Value := cqrini.ReadInteger('Band1', 'RTTY', 500);
2926   edtAM1.Value := cqrini.ReadInteger('Band1', 'AM', 3000);
2927   edtFM1.Value := cqrini.ReadInteger('Band1', 'FM', 2500);
2928 
2929   edtCW2.Value := cqrini.ReadInteger('Band2', 'CW', 500);
2930   edtSSB2.Value := cqrini.ReadInteger('Band2', 'SSB', 1800);
2931   edtRTTY2.Value := cqrini.ReadInteger('Band2', 'RTTY', 500);
2932   edtAM2.Value := cqrini.ReadInteger('Band2', 'AM', 3000);
2933   edtFM2.Value := cqrini.ReadInteger('Band2', 'FM', 2500);
2934 
2935   edtDigiModes.Text := cqrini.ReadString('Modes', 'Digi', '');
2936 
2937   chkUseProfiles.Checked := cqrini.ReadBool('Profiles', 'Use', False);
2938   cmbProfiles.Text :=
2939     dmData.GetProfileText(cqrini.ReadInteger('Profiles', 'Selected', 0));
2940   chkProfileLocator.Checked := cqrini.ReadBool('Profiles', 'Locator', True);
2941   chkProfileQTH.Checked := cqrini.ReadBool('Profiles', 'QTH', True);
2942   chkProfileRig.Checked := cqrini.ReadBool('Profiles', 'RIG', False);
2943   chkUseProfilesChange(nil);
2944 
2945   chkShow2190M.Checked := cqrini.ReadBool('DXCluster', 'Show2190M', True);
2946   chkShow630M.Checked := cqrini.ReadBool('DXCluster', 'Show630M', True);
2947   chkShow160M.Checked := cqrini.ReadBool('DXCluster', 'Show160M', True);
2948   chkShow80M.Checked := cqrini.ReadBool('DXCluster', 'Show80M', True);
2949   chkShow60M.Checked := cqrini.ReadBool('DXCluster', 'Show60M', True);
2950   chkShow40M.Checked := cqrini.ReadBool('DXCluster', 'Show40M', True);
2951   chkShow30M.Checked := cqrini.ReadBool('DXCluster', 'Show30M', True);
2952   chkShow20M.Checked := cqrini.ReadBool('DXCluster', 'Show20M', True);
2953   chkShow17M.Checked := cqrini.ReadBool('DXCluster', 'Show17M', True);
2954   chkShow15M.Checked := cqrini.ReadBool('DXCluster', 'Show15M', True);
2955   chkShow12M.Checked := cqrini.ReadBool('DXCluster', 'Show12M', True);
2956   chkShow10M.Checked := cqrini.ReadBool('DXCluster', 'Show10M', True);
2957   chkShow6M.Checked := cqrini.ReadBool('DXCluster', 'Show6M', True);
2958   chkShow4M.Checked := cqrini.ReadBool('DXCluster', 'Show4M', True);
2959   chkShow2M.Checked := cqrini.ReadBool('DXCluster', 'Show2M', True);
2960   chkShow125M.Checked := cqrini.ReadBool('DXCluster', 'Show125M', True);
2961   chkShow70CM.Checked := cqrini.ReadBool('DXCluster', 'Show70CM', True);
2962   chkShow33CM.Checked := cqrini.ReadBool('DXCluster', 'Show33CM', True);
2963   chkShow23CM.Checked := cqrini.ReadBool('DXCluster', 'Show23CM', True);
2964   chkShow13CM.Checked := cqrini.ReadBool('DXCluster', 'Show13CM', True);
2965   chkShow9CM.Checked := cqrini.ReadBool('DXCluster', 'Show9CM', True);
2966   chkShow6CM.Checked := cqrini.ReadBool('DXCluster', 'Show6CM', True);
2967   chkShow3CM.Checked := cqrini.ReadBool('DXCluster', 'Show3CM', True);
2968   chkShow125CM.Checked := cqrini.ReadBool('DXCluster', 'Show125CM', True);
2969   chkShow6MM.Checked := cqrini.ReadBool('DXCluster', 'Show6MM', True);
2970   chkShow4MM.Checked := cqrini.ReadBool('DXCluster', 'Show4MM', True);
2971   chkCW.Checked := cqrini.ReadBool('DXCluster', 'CW', True);
2972   chkSSB.Checked := cqrini.ReadBool('DXCluster', 'SSB', True);
2973   edtDoNotShow.Text := cqrini.ReadString('DXCluster', 'NotShow', '');
2974   cmbNewCountry.Selected := cqrini.ReadInteger('DXCluster', 'NewCountry', 0);
2975   cmbNewBand.Selected := cqrini.ReadInteger('DXCluster', 'NewBand', 0);
2976   cmbNewMode.Selected := cqrini.ReadInteger('DXCluster', 'NewMode', 0);
2977   cmbQSLNeeded.Selected := cqrini.ReadInteger('DXCluster', 'NeedQSL', 0);
2978   chkConToDXC.Checked := cqrini.ReadBool('DXCluster', 'ConAfterRun', False);
2979   chkShowDxcCountry.Checked := cqrini.ReadBool('DXCluster','ShowDxcCountry',False);
2980   edtAlertCmd.Text := cqrini.ReadString('DXCluster','AlertCmd','');
2981   edtStartConCmd.Text := cqrini.ReadString('DXCluster','StartCmd','');
2982 
2983   chkUseDefaultSEttings.Checked := cqrini.ReadBool('Fonts', 'UseDefault', True);
2984   lblbFont.Caption := cqrini.ReadString('Fonts', 'Buttons', 'Sans 10');
2985   lbleFont.Caption := cqrini.ReadString('Fonts', 'Edits', 'Sans 10');
2986   lblgFont.Caption := cqrini.ReadString('Fonts', 'Grids', 'Monospace 8');
2987   lblqFont.Caption := cqrini.ReadString('Fonts', 'QGrids', 'Sans 10');
2988   feSize := cqrini.ReadInteger('Fonts', 'eSize', 10);
2989   fbSize := cqrini.ReadInteger('Fonts', 'bSize', 10);
2990   fgSize := cqrini.ReadInteger('Fonts', 'gSize', 8);
2991   fqSize := cqrini.ReadInteger('Fonts', 'qSize', 10);
2992 
2993   chkgridgreenbar.Checked := cqrini.ReadBool('Fonts','GridGreenBar',False);
2994   chkgridboldtitle.Checked := cqrini.ReadBool('Fonts','GridBoldTitle',False);
2995   chkgridshowhint.Checked := cqrini.ReadBool('Fonts','GridShowHint',False);
2996   chkgridsmallrows.Checked := cqrini.ReadBool('Fonts','GridSmallRows',False);
2997   chkgriddotsinsteadspaces.Checked := cqrini.ReadBool('Fonts','GridDotsInsteadSpaces',False);
2998 
2999   clboxNewWaz.Selected := cqrini.ReadInteger('Zones', 'NewWAZ', 0);
3000   clBoxBandWAZ.Selected := cqrini.ReadInteger('Zones', 'NewBandWAZ', 0);
3001   clBoxQSLWAZ.Selected := cqrini.ReadInteger('Zones', 'QSLWAZ', 0);
3002   clboxNewITU.Selected := cqrini.ReadInteger('Zones', 'NewITU', 0);
3003   clBoxBandITU.Selected := cqrini.ReadInteger('Zones', 'NewBandITU', 0);
3004   clBoxQSLITU.Selected := cqrini.ReadInteger('Zones', 'QSLITU', 0);
3005   chkShowWAZInfo.Checked := cqrini.ReadBool('Zones', 'ShowWAZInfo', True);
3006   chkShowITUInfo.Checked := cqrini.ReadBool('Zones', 'ShowITUInfo', True);
3007 
3008   clboxNewIOTA.Selected := cqrini.ReadInteger('IOTA', 'NewIOTA', 0);
3009   clboxQSLIOTA.Selected := cqrini.ReadInteger('IOTA', 'QSLIOTA', 0);
3010   chkShowIOTAInfo.Checked := cqrini.ReadBool('IOTA', 'ShowIOTAInfo', True);
3011 
3012   cmbFirstClub.Text := cqrini.ReadString('Clubs', 'First', '');
3013   cmbSecondClub.Text := cqrini.ReadString('Clubs', 'Second', '');
3014   cmbThirdClub.Text := cqrini.ReadString('Clubs', 'Third', '');
3015   cmbFourthClub.Text := cqrini.ReadString('Clubs', 'Fourth', '');
3016   cmbFifthClub.Text := cqrini.ReadString('Clubs', 'Fifth', '');
3017   chkCheckMembershipUpdate.Checked := cqrini.ReadBool('Clubs', 'CheckForUpdate', False);
3018 
3019   lblBandMapFont.Font.Name := cqrini.ReadString('BandMap', 'BandFont', 'Monospace');
3020   lblBandMapFont.Font.Size := cqrini.ReadInteger('BandMap', 'FontSize', 8);
3021   fbandSize := cqrini.ReadInteger('BandMap', 'FontSize', 8);
3022   lblBandMapFont.Caption :=
3023     cqrini.ReadString('BandMap', 'BandFont', 'Monospace') + ' ' + IntToStr(fbandSize);
3024   cmbQSOBandColor.Selected := cqrini.ReadInteger('BandMap', 'NewQSOColor', clBlack);
3025   chkBandMapkHz.Checked := cqrini.ReadBool('BandMap', 'in_kHz', True);
3026   chkSaveBandMap.Checked := cqrini.ReadBool('BandMap', 'Save', False);
3027   edtFirst.Text := IntToStr(cqrini.ReadInteger('BandMap', 'FirstAging', 5));
3028   edtSecond.Text := IntToStr(cqrini.ReadInteger('BandMap', 'SecondAging', 8));
3029   edtDisep.Text := IntToStr(cqrini.ReadInteger('BandMap', 'Disep', 12));
3030   cmbFrmDXCColor.Selected := cqrini.ReadInteger('BandMap', 'ClusterColor', clBlack);
3031   chkShowActiveBand.Checked := cqrini.ReadBool('BandMap', 'OnlyActiveBand', False);
3032   chkShowActiveMode.Checked := cqrini.ReadBool('BandMap', 'OnlyActiveMode', False);
3033   chkDeleteAfterQSO.Checked := cqrini.ReadBool('BandMap', 'DeleteAfterQSO', True);
3034   chkUseDXCColors.Checked := cqrini.ReadBool('BandMap', 'UseDXCColors', False);
3035   chkAddAfterSaveQSO.Checked := cqrini.ReadBool('BandMap', 'AddAfterQSO', False);
3036   chkIgnoreBandFreq.Checked := cqrini.ReadBool('BandMap','IgnoreBandFreq',True);
3037   chkUseNewQSOFreqMode.Checked := cqrini.ReadBool('BandMap','UseNewQSOFreqMode',False);
3038   chkPlusToBandMap.Checked := cqrini.ReadBool('BandMap','PlusToBandMap',False);
3039   seFreqWidth.Value := cqrini.ReadInteger('BandMapFilter','FreqWidth',12);
3040   seCallWidth.Value := cqrini.ReadInteger('BandMapFilter','CallWidth',12);
3041 
3042   edtXplanetPath.Text := cqrini.ReadString('xplanet', 'path', '/usr/local/bin/xplanet');
3043   edtXHeight.Text := cqrini.ReadString('xplanet', 'height', '100');
3044   edtXWidth.Text := cqrini.ReadString('xplanet', 'width', '100');
3045   edtXTop.Text := cqrini.ReadString('xplanet', 'top', '10');
3046   edtXLeft.Text := cqrini.ReadString('xplanet', 'left', '10');
3047   chkShowXplanet.Checked := cqrini.ReadBool('xplanet', 'run', False);
3048   chkCloseXplanet.Checked := cqrini.ReadBool('xplanet', 'close', False);
3049   edtXRefresh.Text := cqrini.ReadString('xplanet', 'refresh', '5');
3050   edtXLastSpots.Text := cqrini.ReadString('xplanet', 'LastSpots', '20');
3051   rgProjection.ItemIndex := cqrini.ReadInteger('xplanet', 'project', 0);
3052   rgShowFrom.ItemIndex := cqrini.ReadInteger('xplanet', 'ShowFrom', 0);
3053   cmbXplanetColor.Selected := cqrini.ReadInteger('xplanet', 'color', clWhite);
3054   chkXplanetColor.Checked := cqrini.ReadBool('xplanet', 'UseDefColor', True);
3055   edtXplanetLoc.Text := cqrini.ReadString('xplanet', 'loc', '');
3056   chkShowOwnPos.Checked := cqrini.ReadBool('xplanet', 'ShowOwnPos', False);
3057 
3058   cmbFirstZip.Text := cqrini.ReadString('ZipCode', 'First', '');
3059   cmbFirstSaveTo.Text := cqrini.ReadString('ZipCode', 'FirstSaveTo', '');
3060   rgFirstZipPos.ItemIndex := cqrini.ReadInteger('ZipCode', 'FirstPos', 0);
3061   cmbSecondZip.Text := cqrini.ReadString('ZipCode', 'Second', '');
3062   cmbSecondSaveTo.Text := cqrini.ReadString('ZipCode', 'SecondSaveTo', '');
3063   rgSecondZipPos.ItemIndex := cqrini.ReadInteger('ZipCode', 'SecondPos', 0);
3064   cmbThirdZip.Text := cqrini.ReadString('ZipCode', 'Third', '');
3065   cmbThirdSaveTo.Text := cqrini.ReadString('ZipCode', 'ThirdSaveTo', '');
3066   rgThirdZipPos.ItemIndex := cqrini.ReadInteger('ZipCode', 'ThirdPos', 0);
3067 
3068   chkIncLoTWDXCC.Checked := cqrini.ReadBool('LoTW', 'IncLoTWDXCC', False);
3069   chkNewQSOLoTW.Checked := cqrini.ReadBool('LoTW', 'NewQSOLoTW', False);
3070   edtLoTWName.Text := cqrini.ReadString('LoTW', 'LoTWName', '');
3071   edtLoTWPass.Text := cqrini.ReadString('LoTW', 'LoTWPass', '');
3072   chkShowLoTWInfo.Checked := cqrini.ReadBool('LoTW', 'ShowInfo', True);
3073   chkShowBckLoTW.Checked := cqrini.ReadBool('LoTW', 'UseBackColor', True);
3074   cmbLoTWBckColor.Selected := cqrini.ReadInteger('LoTW', 'BckColor', clMoneyGreen);
3075   edteQSLName.Text := cqrini.ReadString('LoTW', 'eQSLName', '');
3076   edteQSLPass.Text := cqrini.ReadString('LoTW', 'eQSLPass', '');
3077   edteQSLStartAddr.Text := cqrini.ReadString('LoTW', 'eQSLStartAddr','https://www.eqsl.cc/qslcard/DownloadInBox.cfm');
3078   edteQSLDnlAddr.Text := cqrini.ReadString('LoTW', 'eQSLDnlAddr','https://www.eqsl.cc/downloadedfiles/');
3079   edteQSLViewAddr.Text := cqrini.ReadString('LoTW', 'eQSViewAddr','https://www.eQSL.cc/qslcard/GeteQSL.cfm');
3080   chkShowBckEQSL.Checked := cqrini.ReadBool('LoTW', 'eUseBackColor', True);
3081   cmbeQSLBckColor.Selected := cqrini.ReadInteger('LoTW', 'eBckColor', clSkyBlue);
3082   chkExpCommet.Checked := cqrini.ReadBool('LoTW', 'ExpComment', True);
3083 
3084   cmbIfaceType1.ItemIndex := cqrini.ReadInteger('CW', 'Type1', 0);
3085   cmbIfaceType2.ItemIndex := cqrini.ReadInteger('CW', 'Type2', 0);
3086   cbNoKeyerReset.Checked := cqrini.ReadBool('CW', 'NoReset', false);
3087   edtWinPort1.Text := cqrini.ReadString('CW', 'wk_port1', '');
3088   edtWinPort2.Text := cqrini.ReadString('CW', 'wk_port2', '');
3089   chkPotSpeed.Checked := cqrini.ReadBool('CW', 'PotSpeed', False);
3090   edtWinSpeed.Value := cqrini.ReadInteger('CW', 'wk_speed', 30);
3091   edtCWAddress.Text := cqrini.ReadString('CW', 'cw_address', 'localhost');
3092   edtCWPort1.Text := cqrini.ReadString('CW', 'cw_port1', '6789');
3093   edtCWPort2.Text := cqrini.ReadString('CW', 'cw_port2', '6789');
3094   edtCWSpeed.Value := cqrini.ReadInteger('CW', 'cw_speed', 30);
3095   edtWinMinSpeed.Value := cqrini.ReadInteger('CW', 'wk_min', 5);
3096   edtWinMaxSpeed.Value := cqrini.ReadInteger('CW', 'wk_max', 60);
3097   edtK3NGPort1.Text := cqrini.ReadString('CW','K3NGPort1','');
3098   edtK3NGPort2.Text := cqrini.ReadString('CW','K3NGPort2','');
3099   edtK3NGSerSpeed.Text := IntToStr(cqrini.ReadInteger('CW','K3NGSerSpeed',115200));
3100   edtK3NGSpeed.Text := IntToStr(cqrini.ReadInteger('CW','K3NGSpeed',30));
3101   edtHamLibSpeed.Text := IntToStr(cqrini.ReadInteger('CW','HamLibSpeed',30));
3102 
3103   rgFreqFrom.ItemIndex := cqrini.ReadInteger('fldigi', 'freq', 1);       //
3104   edtDefaultFreq.Text := cqrini.ReadString('fldigi', 'deffreq', '3.600');//
3105   rgModeFrom.ItemIndex := cqrini.ReadInteger('fldigi', 'mode', 1);       //
3106   cmbDefaultMode.Text := cqrini.ReadString('fldigi', 'defmode', 'RTTY'); //
3107   edtDefaultRST.Text := cqrini.ReadString('fldigi', 'defrst', '599');
3108   rgRSTFrom.ItemIndex := cqrini.ReadInteger('fldigi', 'rst', 0);
3109   edtLoadFromFldigi.Value := cqrini.ReadInteger('fldigi', 'interval', 2);
3110   chkRunFldigi.Checked := cqrini.ReadBool('fldigi', 'run', False);
3111   edtFldigiPath.Text := cqrini.ReadString('fldigi', 'path', '');
3112   edtFldigiPort.Text := cqrini.ReadString('fldigi','port','7362');
3113   edtFldigiIp.Text :=  cqrini.ReadString('fldigi','ip','127.0.0.1');
3114   chkFldXmlRpc.Checked := cqrini.ReadBool('fldigi', 'xmlrpc', False);
3115   edtDropSyncErr.Value:= cqrini.ReadInteger('fldigi', 'dropSyErr', 3);
3116 
3117 
3118   edtWsjtPath.Text         := cqrini.ReadString('wsjt','path','');
3119   edtWsjtPort.Text         := cqrini.ReadString('wsjt','port','2237');
3120   edtWsjtIp.Text           := cqrini.ReadString('wsjt','ip','127.0.0.1');
3121   chkRunWsjt.Checked       := cqrini.ReadBool('wsjt','run',False);
3122   rgWsjtFreqFrom.ItemIndex := cqrini.ReadInteger('wsjt', 'freq', 1);
3123   edtWsjtDefaultFreq.Text  := cqrini.ReadString('wsjt', 'deffreq', '3.600');
3124   rgWsjtModeFrom.ItemIndex := cqrini.ReadInteger('wsjt', 'mode', 1);
3125   cmbWsjtDefaultMode.Text  := cqrini.ReadString('wsjt', 'defmode', 'JT65');
3126   DateEditCall.Text := cqrini.ReadString('wsjt', 'wb4calldate', '1900-01-01'); //sure all qsos by default :-)
3127   DateEditLoc.Text := cqrini.ReadString('wsjt', 'wb4locdate','1900-01-01');
3128   cgLimit.Checked[0] := cqrini.ReadBool('wsjt','wb4CCall', False);
3129   cgLimit.Checked[1] := cqrini.ReadBool('wsjt','wb4CLoc', False);
3130 
3131   edtADIFPort.Text         := cqrini.ReadString('n1mm','port','2333');
3132   edtADIFIp.Text           := cqrini.ReadString('n1mm','ip','127.0.0.1');
3133 
3134 
3135   chkEnableBackup.Checked := cqrini.ReadBool('Backup', 'Enable', False);
3136   chkCompressBackup.Checked := cqrini.ReadBool('Backup', 'Compress', True);
3137   edtBackupPath.Text := cqrini.ReadString('Backup', 'Path', dmData.DataDir);
3138   edtBackupPath1.Text := cqrini.ReadString('Backup', 'Path1','');
3139   rgBackupType.ItemIndex := cqrini.ReadInteger('Backup', 'BackupType', 0);
3140   chkAskBackup.Checked := cqrini.ReadBool('Backup','AskFirst',False);
3141 
3142   edtTxtFiles.Text := cqrini.ReadString('ExtView', 'txt', 'gedit');
3143   edtPdfFiles.Text := cqrini.ReadString('ExtView', 'pdf', 'evince');
3144   edtImgFiles.Text := cqrini.ReadString('ExtView', 'img', 'eog');
3145   edtHtmlFiles.Text := cqrini.ReadString('ExtView', 'html', dmUtils.MyDefaultBrowser);
3146   chkIntQSLViewer.Checked := cqrini.ReadBool('ExtView', 'QSL', True);
3147 
3148   edtClub1Date.Text := cqrini.ReadString('FirstClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
3149   edtClub2Date.Text := cqrini.ReadString('SecondClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
3150   edtClub3Date.Text := cqrini.ReadString('ThirdClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
3151   edtClub4Date.Text := cqrini.ReadString('FourthClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
3152   edtClub5Date.Text := cqrini.ReadString('FifthClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
3153 
3154   edtCbUser.Text := cqrini.ReadString('CallBook', 'CBUser', '');
3155   edtCbPass.Text := cqrini.ReadString('CallBook', 'CBPass', '');
3156   rbHamQTH.Checked := cqrini.ReadBool('Callbook', 'HamQTH', True);
3157   rbQRZ.Checked := cqrini.ReadBool('Callbook', 'QRZ', False);
3158 
3159   cmbCl10db.Selected        := cqrini.ReadInteger('RBN','10db',clWhite);
3160   cmbCl20db.Selected        := cqrini.ReadInteger('RBN','20db',clPurple);
3161   cmbCl30db.Selected        := cqrini.ReadInteger('RBN','30db',clMaroon);
3162   cmbClOver30db.Selected    := cqrini.ReadInteger('RBN','over30db',clRed);
3163   edtRBNLogin.Text       := cqrini.ReadString('RBN','login','');
3164   edtWatchFor.Text       := cqrini.ReadString('RBN','watch','');
3165   chkRBNAutoConn.Checked := cqrini.ReadBool('RBN','AutoConnect',False);
3166   chkRBNMAutoConn.Checked := cqrini.ReadBool('RBN','AutoConnectM',false);
3167   chkRBNLink.Checked     := cqrini.ReadBool('RBN','AutoLink',false);
3168   edtDelAfter.Text       := cqrini.ReadString('RBN','deleteAfter','60');
3169   edtRBNServer.Text      := cqrini.ReadString('RBN','Server','telnet.reversebeacon.net:7000');
3170 
3171   chkHaUpEnabled.Checked := cqrini.ReadBool('OnlineLog','HaUP',False);
3172   chkHaUpOnline.Checked  := cqrini.ReadBool('OnlineLog','HaUpOnline',False);
3173   edtHaUserName.Text     := cqrini.ReadString('OnlineLog','HaUserName','');
3174   edtHaPasswd.Text       := cqrini.ReadString('OnlineLog','HaPasswd','');
3175   cmbHaColor.Selected    := cqrini.ReadInteger('OnlineLog','HaColor',clBlue);
3176   chkHaUpEnabledChange(nil);
3177 
3178   chkClUpEnabled.Checked := cqrini.ReadBool('OnlineLog','ClUP',False);
3179   chkClUpOnline.Checked  := cqrini.ReadBool('OnlineLog','ClUpOnline',False);
3180   edtClUserName.Text     := cqrini.ReadString('OnlineLog','ClUserName','');
3181   edtClPasswd.Text       := cqrini.ReadString('OnlineLog','ClPasswd','');
3182   edtClEmail.Text        := cqrini.ReadString('OnlineLog','ClEmail','');
3183   cmbClColor.Selected    := cqrini.ReadInteger('OnlineLog','ClColor',clRed);
3184   chkClUpEnabledChange(nil);
3185 
3186   chkHrUpEnabled.Checked := cqrini.ReadBool('OnlineLog','HrUP',False);
3187   chkHrUpOnline.Checked  := cqrini.ReadBool('OnlineLog','HrUpOnline',False);
3188   edtHrUserName.Text     := cqrini.ReadString('OnlineLog','HrUserName','');
3189   edtHrCode.Text         := cqrini.ReadString('OnlineLog','HrCode','');
3190   cmbHrColor.Selected    := cqrini.ReadInteger('OnlineLog','HrColor',clPurple);
3191   chkCloseAfterUpload.Checked := cqrini.ReadBool('OnlineLog','CloseAfterUpload',False);
3192   chkIgnoreLoTW.Checked  := cqrini.ReadBool('OnlineLog','IgnoreLoTWeQSL',False);
3193   chkHrUpEnabledChange(nil);
3194 
3195   edtCondxImageUrl.Text      := cqrini.ReadString('prop','Url','http://www.hamqsl.com/solarbrief.php');
3196   rbCondxAsImage.Checked     := cqrini.ReadBool('prop','AsImage',True);
3197   rbCondxAsText.Checked      := cqrini.ReadBool('prop','AsText',False);
3198   chkShowCondxValues.Checked := cqrini.ReadBool('prop','Values',True);
3199   chkCondxCalcHF.Checked     := cqrini.ReadBool('prop','CalcHF',True);
3200   chkCondxCalcVHF.Checked    := cqrini.ReadBool('prop','CalcVHF',True);
3201 
3202   wasOnlineLogSupportEnabled := chkHaUpEnabled.Checked or chkClUpEnabled.Checked or chkHrUpEnabled.Checked;
3203 
3204   fraExportPref1.LoadExportPref;
3205 
3206   lbPreferences.Selected[pgPreferences.ActivePageIndex] := True;
3207   edtCW1.Width := 60;
3208   edtSSB1.Width := 60;
3209   edtRTTY1.Width := 60;
3210   edtAM1.Width := 60;
3211   edtFM1.Width := 60;
3212 
3213   chkSysUTCClick(nil);
3214   TRXChanged      := False;
3215   WinKeyerChanged := False;
3216 
3217   pgPreferences.ActivePageIndex := ActPageIdx;    //set wanted tab for showing when open. ActTab is public variable.
3218   lbPreferences.ItemIndex := ActPageIdx;
3219 end;
3220 
3221 procedure TfrmPreferences.edtPoll2Exit(Sender: TObject);
3222 var
3223   tmp: integer = 0;
3224 begin
3225   if not TryStrToInt(edtPoll1.Text, tmp) then
3226     edtPoll2.Text := '500';
3227 end;
3228 
3229 procedure TfrmPreferences.edtPoll1Exit(Sender: TObject);
3230 var
3231   tmp: integer = 0;
3232 begin
3233   if not TryStrToInt(edtPoll1.Text, tmp) then
3234     edtPoll1.Text := '500';
3235 end;
3236 
3237 procedure TfrmPreferences.Panel1Click(Sender: TObject);
3238 begin
3239 
3240 end;
3241 
3242 procedure TfrmPreferences.pgPreferencesChange(Sender: TObject);
3243 begin
3244   lbPreferences.Selected[pgPreferences.ActivePageIndex] := True;
3245 end;
3246 
3247 procedure TfrmPreferences.pnlQSOColorClick(Sender : TObject);
3248 begin
3249   btnSelectQSOColor.Click
3250 end;
3251 
3252 procedure TfrmPreferences.SaveClubSection;
3253 begin
3254   cqrini.WriteString('Clubs', 'First', cmbFirstClub.Text);
3255   cqrini.WriteString('Clubs', 'Second', cmbSecondClub.Text);
3256   cqrini.WriteString('Clubs', 'Third', cmbThirdClub.Text);
3257   cqrini.WriteString('Clubs', 'Fourth', cmbFourthClub.Text);
3258   cqrini.WriteString('Clubs', 'Fifth', cmbFifthClub.Text);
3259   cqrini.WriteBool('Clubs', 'CheckForUpdate', chkCheckMembershipUpdate.Checked)
3260 end;
3261 
3262 procedure TfrmPreferences.LoadMebershipCombo;
3263 var
3264   i : Integer;
3265   Club1 : String;
3266   Club2 : String;
3267   Club3 : String;
3268   Club4 : String;
3269   Club5 : String;
3270 begin
3271   Club1 := cmbFirstClub.Text;
3272   Club2 := cmbSecondClub.Text;
3273   Club3 := cmbThirdClub.Text;
3274   Club4 := cmbFourthClub.Text;
3275   Club5 := cmbFifthClub.Text;
3276 
3277   cmbSecondClub.Items.Clear;
3278   cmbThirdClub.Items.Clear;
3279   cmbFourthClub.Items.Clear;
3280   cmbFifthClub.Items.Clear;
3281 
3282   dmMembership.ReadMemberList(cmbFirstClub);
3283   for i := 0 to cmbFirstClub.Items.Count - 1 do
3284   begin
3285     cmbSecondClub.Items.Add(cmbFirstClub.Items[i]);
3286     cmbThirdClub.Items.Add(cmbFirstClub.Items[i]);
3287     cmbFourthClub.Items.Add(cmbFirstClub.Items[i]);
3288     cmbFifthClub.Items.Add(cmbFirstClub.Items[i]);
3289   end;
3290 
3291   cmbFirstClub.ItemIndex  := cmbFirstClub.Items.IndexOf(Club1);
3292   cmbSecondClub.ItemIndex := cmbSecondClub.Items.IndexOf(Club2);
3293   cmbThirdClub.ItemIndex  := cmbThirdClub.Items.IndexOf(Club3);
3294   cmbFourthClub.ItemIndex := cmbFourthClub.Items.IndexOf(Club4);
3295   cmbFifthClub.ItemIndex  := cmbFifthClub.Items.IndexOf(Club5)
3296 end;
3297 
3298 procedure TfrmPreferences.LoadMembersFromCombo(ClubComboText, ClubNumber : String);
3299 var
3300   MemberFileName : String;
3301 begin
3302   if (ClubComboText = '') or (Pos('---', ClubComboText) > 0) then
3303     exit;
3304 
3305   MemberFileName := dmMembership.GetClubFileName(ClubComboText);
3306   with TfrmLoadClub.Create(self) do
3307   try
3308     TypOfLoad := 0;
3309     DBnum := ClubNumber;
3310     SourceFile := MemberFileName;
3311     ShowModal
3312   finally
3313     Free
3314   end;
3315 
3316   if not FileExists(dmData.MembersDir + MemberFileName) then
3317     CopyFile(dmData.GlobalMembersDir + MemberFileName, dmData.MembersDir + MemberFileName);
3318 
3319   LoadMebershipCombo
3320 end;
3321 
3322 end.
3323 
3324