diff --git a/help/h3.html b/help/h3.html
index 0ddaa01..61ba71b 100644
--- a/help/h3.html
+++ b/help/h3.html
@@ -68,7 +68,13 @@
HTML export
The same as above, only difference is to choose the 'HTML' option.
Program version update:
+ Ubuntu 16.04, 17.10, 18.04 users can use CQRLOG’s repository on Launchpad. To add repository to your system, put into terminal this:
+
sudo add-apt-repository ppa:ok2cqr/ppa;sudo apt-get update;sudo apt-get install cqrlog
+
For those who does not use Ubuntu, load install package, or binaries, from: Cqrlog.com download page.
+
The binaries should work in any distribution. Please don't forget to install MySQL server, MySQL client, Hamlib libraries and if LoTW support is desired, trustedqsl package and libssl-devel must be installed.
diff --git a/images/attach.png b/images/attach.png new file mode 100644 index 0000000..70017a1 Binary files /dev/null and b/images/attach.png differ diff --git a/src/cqrlog.lpi b/src/cqrlog.lpi index b1b9037..cfe7aab 100644 --- a/src/cqrlog.lpi +++ b/src/cqrlog.lpi @@ -1,7 +1,7 @@- + @@ -19,7 +19,7 @@ - + @@ -28,12 +28,9 @@ - - - @@ -43,6 +40,21 @@+ + + + ++ ++ + + ++ ++ + diff --git a/src/dDXCluster.pas b/src/dDXCluster.pas index 377de28..466e752 100644 --- a/src/dDXCluster.pas +++ b/src/dDXCluster.pas @@ -1130,6 +1130,8 @@ end; procedure TdmDXCluster.RunCallAlertCmd(call,band,mode,freq : String); var AProcess : TProcess; + paramList :TStringList; + index :integer; cmd : String; begin cmd := cqrini.ReadString('DXCluster','AlertCmd',''); @@ -1141,9 +1143,19 @@ begin cmd := StringReplace(cmd,'$BAND',band,[rfReplaceAll, rfIgnoreCase]); cmd := StringReplace(cmd,'$MODE',mode,[rfReplaceAll, rfIgnoreCase]); cmd := StringReplace(cmd,'$FREQ',freq,[rfReplaceAll, rfIgnoreCase]); - - AProcess.CommandLine := cmd; - if dmData.DebugLevel>=1 then Writeln('Command line: ',AProcess.CommandLine); + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := cmd; + AProcess.Parameters.Clear; + while index < paramList.Count do + begin + if (index = 0) then AProcess.Executable := paramList[index] + else AProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free diff --git a/src/dData.pas b/src/dData.pas index 914d7f3..6a87e91 100644 --- a/src/dData.pas +++ b/src/dData.pas @@ -876,9 +876,9 @@ begin begin p := TProcess.Create(nil); try - if dmData.DebugLevel>=1 then Writeln('Command: ',p.CommandLine); - p.CommandLine := 'kill '+pid; - if fDebugLevel>=1 then Writeln(p.CommandLine); + p.Executable := 'kill'; + p.Parameters.Add(pid); + if (dmData.DebugLevel>=1) or (fDebugLevel>=1) then Writeln('p.Executable: ',p.Executable,' Parameters: ',p.Parameters.Text); p.Execute; if OnStart then Sleep(3000); @@ -3377,15 +3377,30 @@ var mysqld : String; Connected : Boolean = False; Tryies : Word = 0; + index :integer; + paramList :TStringList; + begin mysqld := GetMysqldPath; PrepareMysqlConfigFile; MySQLProcess := TProcess.Create(nil); - MySQLProcess.CommandLine := mysqld+' --defaults-file='+fHomeDir+'database/'+'mysql.cnf'+ + MySQLProcess.Executable := mysqld; + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := (' --defaults-file='+fHomeDir+'database/'+'mysql.cnf'+ ' --datadir='+fHomeDir+'database/'+ ' --socket='+fHomeDir+'database/sock'+ - ' --port=64000'; - if fDebugLevel >= 1 then Writeln(MySQLProcess.CommandLine); + ' --port=64000'); + MySQLProcess.Parameters.Clear; + while index < paramList.Count do + begin + MySQLProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + + if dmData.DebugLevel>=1 then Writeln('MySQLProcess.Executable: ',MySQLProcess.Executable,' Parameters: ',MySQLProcess.Parameters.Text); MySQLProcess.Execute; if MainCon.Connected then diff --git a/src/dUtils.pas b/src/dUtils.pas index dc15c16..3b3bec4 100644 --- a/src/dUtils.pas +++ b/src/dUtils.pas @@ -2409,14 +2409,26 @@ end; procedure TdmUtils.RunXplanet; var AProcess: TProcess; + index :integer; + paramList :TStringList; begin + if dmData.DebugLevel>=1 then Writeln('RunXplanet - start'); + if (GetXplanetCommand = '') then exit; AProcess := TProcess.Create(nil); try - AProcess.CommandLine := GetXplanetCommand; - if dmData.DebugLevel >= 1 then - Writeln('Command line: ', AProcess.CommandLine); - if (AProcess.CommandLine = '') then - exit; + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := GetXplanetCommand; + AProcess.Parameters.Clear; + while index < paramList.Count do + begin + if (index = 0) then AProcess.Executable := paramList[index] + else AProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute; finally AProcess.Free; @@ -2429,10 +2441,10 @@ var begin AProcess := TProcess.Create(nil); try - AProcess.CommandLine := 'killall xplanet'; + AProcess.Executable := 'killall'; + AProcess.Parameters.Add('xplanet'); AProcess.Options := [poNoConsole, poNewProcessGroup]; - if dmData.DebugLevel >= 1 then - Writeln('Command line: ', AProcess.CommandLine); + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute; finally AProcess.Free @@ -2503,11 +2515,13 @@ begin SetCurrentDir(TargetDir); AProcess := TProcess.Create(nil); try - AProcess.CommandLine := 'tar -xvzf ' + FileName; + AProcess.Parameters.Clear; + AProcess.Executable := 'tar'; + AProcess.Parameters.Add('-xvzf'); + AProcess.Parameters.Add(FileName); AProcess.Options := [poNoConsole, poNewProcessGroup, poWaitOnExit]; - if dmData.DebugLevel >= 1 then - Writeln('Command line: ', AProcess.CommandLine); - try + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); + try AProcess.Execute; except Result := False @@ -2892,12 +2906,24 @@ end; procedure TdmUtils.ExecuteCommand(cmd: string); var AProcess: TProcess; + index :integer; + paramList : TStringList; begin AProcess := TProcess.Create(nil); try - AProcess.CommandLine := cmd; - if dmData.DebugLevel >= 1 then - Writeln('Command line: ', AProcess.CommandLine); + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := cmd; + AProcess.Parameters.Clear; + while index < paramList.Count do + begin + if (index = 0) then AProcess.Executable := paramList[index] + else AProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Options := AProcess.Options + [poWaitOnExit]; AProcess.Execute finally @@ -2960,14 +2986,26 @@ end; procedure TdmUtils.RunOnBackgroud(path: string); var AProcess: TProcess; + index :integer; + paramList : TStringList; begin + if dmData.DebugLevel>=1 then Writeln('RunOnBackgroud -start'); + if (path = '') then exit; AProcess := TProcess.Create(nil); try - AProcess.CommandLine := path; - if dmData.DebugLevel >= 1 then - Writeln('Command line: ', AProcess.CommandLine); - if (AProcess.CommandLine = '') then - exit; + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := path; + AProcess.Parameters.Clear; + while index < paramList.Count do + begin + if (index = 0) then AProcess.Executable := paramList[index] + else AProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free @@ -3308,10 +3346,9 @@ var begin AProcess := TProcess.Create(nil); try - AProcess.CommandLine := cqrini.ReadString('Program', 'WebBrowser', 'firefox') + - ' http://www.qrz.com/db/' + GetIDCall(call); - if dmData.DebugLevel >= 1 then - Writeln('Command line: ', AProcess.CommandLine); + AProcess.Executable := cqrini.ReadString('Program', 'WebBrowser', 'firefox'); + AProcess.Parameters.Add('http://www.qrz.com/db/' + GetIDCall(call)); + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free @@ -3777,10 +3814,9 @@ var begin AProcess := TProcess.Create(nil); try - AProcess.CommandLine := cqrini.ReadString('Program', 'WebBrowser', 'firefox') + - ' http://www.hamqth.com/' + GetIDCall(call); - if dmData.DebugLevel >= 1 then - Writeln('Command line: ', AProcess.CommandLine); + AProcess.Executable := cqrini.ReadString('Program', 'WebBrowser', 'firefox'); + AProcess.Parameters.Add(' http://www.hamqth.com/' + GetIDCall(call)); + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free diff --git a/src/fAbout.lfm b/src/fAbout.lfm index 71edc0c..806fe84 100644 --- a/src/fAbout.lfm +++ b/src/fAbout.lfm @@ -1,33 +1,49 @@ object frmAbout: TfrmAbout - Left = 666 - Height = 292 - Top = 286 - Width = 406 + Left = 495 + Height = 294 + Top = 58 + Width = 453 BorderStyle = bsDialog Caption = 'About CQRLOG' - ClientHeight = 292 - ClientWidth = 406 + ClientHeight = 294 + ClientWidth = 453 OnShow = FormShow - LCLVersion = '1.8.2.0' + LCLVersion = '2.0.0.4' object PageControl1: TPageControl + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom Left = 0 - Height = 292 + Height = 294 Top = 0 - Width = 406 + Width = 453 ActivePage = tabAbout Align = alClient TabIndex = 0 TabOrder = 0 object tabAbout: TTabSheet + AnchorSideLeft.Control = PageControl1 + AnchorSideTop.Control = PageControl1 + AnchorSideRight.Control = PageControl1 + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = PageControl1 + AnchorSideBottom.Side = asrBottom Caption = 'About' - ClientHeight = 261 - ClientWidth = 402 + ClientHeight = 263 + ClientWidth = 443 object Image1: TImage + AnchorSideLeft.Control = tabAbout + AnchorSideTop.Control = tabAbout Left = 8 Height = 128 - Top = 8 + Top = 6 Width = 128 AutoSize = True + BorderSpacing.Left = 8 + BorderSpacing.Top = 6 Picture.Data = { 1754506F727461626C654E6574776F726B47726170686963D762000089504E47 0D0A1A0A0000000D4948445200000080000000800806000000C33E61CB00000A @@ -825,10 +841,14 @@ object frmAbout: TfrmAbout Stretch = True end object Label1: TLabel - Left = 164 - Height = 62 - Top = 8 - Width = 223 + AnchorSideLeft.Control = Image1 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Image1 + Left = 184 + Height = 64 + Top = 6 + Width = 250 + BorderSpacing.Left = 48 Caption = 'CQRLOG' Font.Height = -54 Font.Style = [fsBold] @@ -836,41 +856,58 @@ object frmAbout: TfrmAbout ParentFont = False end object Bevel1: TBevel - Left = 11 + AnchorSideLeft.Control = Image1 + AnchorSideTop.Control = Image1 + AnchorSideTop.Side = asrBottom + Left = 8 Height = 8 - Top = 136 - Width = 437 + Top = 137 + Width = 426 + BorderSpacing.Top = 3 Shape = bsTopLine end object Label2: TLabel + AnchorSideLeft.Control = Image1 Left = 8 Height = 17 Top = 152 - Width = 58 + Width = 54 Caption = 'Authors:' ParentColor = False end object Label3: TLabel - Left = 75 + AnchorSideLeft.Control = Label2 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label2 + Left = 77 Height = 17 Top = 152 - Width = 312 + Width = 304 + BorderSpacing.Left = 15 Caption = 'Petr Hlozek, OK7AN && Martin Kratoska, OK1RR' ParentColor = False end object Label5: TLabel + AnchorSideLeft.Control = Image1 + AnchorSideTop.Control = Label2 + AnchorSideTop.Side = asrBottom Left = 8 Height = 17 - Top = 184 - Width = 165 + Top = 185 + Width = 160 + BorderSpacing.Top = 16 Caption = 'Home page and support:' ParentColor = False end object lblLink: TLabel + AnchorSideLeft.Control = Label5 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Label5 Left = 184 Height = 17 - Top = 184 - Width = 158 + Top = 185 + Width = 146 + BorderSpacing.Left = 16 Caption = 'http://www.cqrlog.com' Font.Color = clBlue Font.Style = [fsUnderline] @@ -880,8 +917,9 @@ object frmAbout: TfrmAbout OnMouseEnter = lblLinkMouseEnter end object btnChangelog: TButton - Left = 8 - Height = 29 + AnchorSideLeft.Control = Image1 + Left = 9 + Height = 33 Top = 224 Width = 90 AutoSize = True @@ -892,10 +930,14 @@ object frmAbout: TfrmAbout TabOrder = 0 end object btnClose: TButton - Left = 297 - Height = 29 - Top = 224 + AnchorSideTop.Control = btnChangelog + AnchorSideRight.Control = Label1 + AnchorSideRight.Side = asrBottom + Left = 343 + Height = 33 + Top = 225 Width = 90 + Anchors = [akTop, akRight] AutoSize = True BorderSpacing.Around = 1 Cancel = True @@ -905,20 +947,26 @@ object frmAbout: TfrmAbout TabOrder = 1 end object lblVerze: TLabel - Left = 224 + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Label1 + AnchorSideRight.Side = asrBottom + Left = 271 Height = 18 - Top = 80 + Top = 86 Width = 163 Alignment = taRightJustify + Anchors = [akTop, akRight] AutoSize = False + BorderSpacing.Top = 16 Caption = 'lblVerze' ParentColor = False end end object tabContributors: TTabSheet Caption = 'Contributors' - ClientHeight = 261 - ClientWidth = 402 + ClientHeight = 263 + ClientWidth = 443 object mContributors: TMemo Left = 0 Height = 261 diff --git a/src/fBigSquareStat.pas b/src/fBigSquareStat.pas index 8025338..2680514 100644 --- a/src/fBigSquareStat.pas +++ b/src/fBigSquareStat.pas @@ -156,7 +156,6 @@ begin ' group by lll order by loc'; dmData.Q1.Open; - db := TBufDataset.Create(nil); //I was not able to clear all records from TBufDataset without this workaround try db.FieldDefs.Clear; diff --git a/src/fContest.pas b/src/fContest.pas index 5fbddea..9b90a3a 100644 --- a/src/fContest.pas +++ b/src/fContest.pas @@ -160,12 +160,17 @@ procedure TfrmContest.edtCallExit(Sender: TObject); begin frmNewQSO.edtCall.Text := edtCall.Text; - case frmNewQSO.cmbMode.Items[frmNewQSO.cmbMode.ItemIndex] of //report in NEwQSO changes to 59 to late (after passing cmbMode) - 'SSB','AM','FM' : Begin - edtRSTs.Text := copy(edtRSTs.Text,0,2); - edtRSTr.Text := copy(edtRSTr.Text,0,2); - end; - end; + //report in NEwQSO changes to 59 to late (after passing cmbMode) + //NOTE! if mode is not in list program dies! In that case skip next + if frmNewQSO.cmbMode.ItemIndex >=0 then + begin + case frmNewQSO.cmbMode.Items[frmNewQSO.cmbMode.ItemIndex] of + 'SSB','AM','FM' : Begin + edtRSTs.Text := copy(edtRSTs.Text,0,2); + edtRSTr.Text := copy(edtRSTr.Text,0,2); + end; + end; + end; frmNewQSO.edtHisRST.Text := edtRSTs.Text + ' ' + edtSTX.Text + ' ' + edtSTX2.Text; //so that CW macros work diff --git a/src/fGroupEdit.pas b/src/fGroupEdit.pas index 0c55524..6b853a4 100644 --- a/src/fGroupEdit.pas +++ b/src/fGroupEdit.pas @@ -55,44 +55,44 @@ uses dUtils, dData, dDXCC, fMain; procedure TfrmGroupEdit.cmbFieldChange(Sender: TObject); begin cmbValue.Clear; - cmbValue.ReadOnly := False; + cmbValue.Style:= csDropDown; case cmbField.ItemIndex of 5 : begin dmUtils.InsertModes(cmbValue); - cmbValue.ReadOnly := True + cmbValue.Style:=csDropDownList; end; 10 : begin dmUtils.InsertQSL_S(cmbValue); cmbValue.ItemIndex := 0; - cmbValue.ReadOnly := True + cmbValue.Style:=csDropDownList; end; 11 : begin dmUtils.InsertQSL_R(cmbValue); cmbValue.ItemIndex := 0; - cmbValue.ReadOnly := True + cmbValue.Style:=csDropDownList; end; 18,28 : begin cmbValue.Items.Add('Y'); cmbValue.Items.Add('N'); cmbValue.ItemIndex := 0; - cmbValue.ReadOnly := True + cmbValue.Style:=csDropDownList; end; 19 : begin cmbValue.Items.Add('L'); cmbValue.Items.Add('N'); cmbValue.ItemIndex := 0; - cmbValue.ReadOnly := True + cmbValue.Style:=csDropDownList; end; 25 : begin dmData.InsertProfiles(cmbValue,False); cmbValue.ItemIndex := 0; - cmbValue.ReadOnly := True + cmbValue.Style:=csDropDownList; end; 30 : begin cmbValue.Items.Add('E'); cmbValue.Items.Add('N'); cmbValue.ItemIndex := 0; - cmbValue.ReadOnly := True + cmbValue.Style:=csDropDownList; end end end; diff --git a/src/fLoTWExport.pas b/src/fLoTWExport.pas index dbfd922..a156642 100644 --- a/src/fLoTWExport.pas +++ b/src/fLoTWExport.pas @@ -282,6 +282,8 @@ end; procedure TfrmLoTWExport.btnExportSignClick(Sender: TObject); var tmp : String; + paramList :TStringList; + index, res : Integer; begin MarkAfter := False; @@ -316,9 +318,20 @@ begin mStat.Lines.Add('Signing adif file ...'); Application.ProcessMessages; - AProcess.CommandLine := StringReplace(edtTqsl.Text,'%f',FileName,[]); + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := StringReplace(edtTqsl.Text,'%f',FileName,[]); + AProcess.Parameters.Clear; + while index < paramList.Count do + begin + if (index = 0) then AProcess.Executable := paramList[index] + else AProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; AProcess.Options := [poUsePipes]; - if dmData.DebugLevel >=1 then Writeln(AProcess.CommandLine); + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute; grbWebExport.Enabled := False; diff --git a/src/fMain.pas b/src/fMain.pas index 798aa8b..162627a 100644 --- a/src/fMain.pas +++ b/src/fMain.pas @@ -1149,10 +1149,9 @@ var begin AProcess := TProcess.Create(nil); try - AProcess.CommandLine := cqrini.ReadString('Program', 'WebBrowser', 'firefox') + - ' http://www.ik3qar.it/manager/man_result.php?call=' + - dmData.qCQRLOG.Fields[4].AsString; - Writeln('Command line: ', AProcess.CommandLine); + AProcess.Executable := cqrini.ReadString('Program', 'WebBrowser', 'firefox'); + AProcess.Parameters.Add('http://www.ik3qar.it/manager/man_result.php?call=' + dmData.qCQRLOG.Fields[4].AsString); + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free diff --git a/src/fMonWsjtx.pas b/src/fMonWsjtx.pas index daba420..075e5d0 100644 --- a/src/fMonWsjtx.pas +++ b/src/fMonWsjtx.pas @@ -162,11 +162,6 @@ var wkdband: Tcolor; wkdany: Tcolor; wkdnever: Tcolor; - bmHere, - bmBand, - bmAny, - bmNever, - bmExt :Tbitmap; EditedText: string; //holds editAlert after finished (loose focus) Ssearch, Sfull: string; @@ -213,9 +208,9 @@ begin AProcess := TProcess.Create(nil); try AProcess.Executable:=dmData.HomeDir + cAlert; + AProcess.Parameters.Clear; AProcess.Parameters.Add(AFile); - if LocalDbg then - Writeln('Command line: ', AProcess.Executable + ' ' + AFile ); + if LocalDbg then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free @@ -384,6 +379,31 @@ begin dmUtils.SaveWindowPos(frmMonWsjtx); end; + +procedure TfrmMonWsjtx.Setbitmap(bm: TBitmap; col: Tcolor); +begin + with bm do + Begin + Width := bmW + 2; + Height := bmH + 2; + with Canvas do + Begin + Brush.Style := bsSolid; + if col = clBlack then Pen.Color := clFuchsia else Pen.Color := clBlack; + Brush.Color := col; + Rectangle(0, 0, bmW, bmH); + end; + end; +end; + +procedure TfrmMonWsjtx.SetAllbitmaps; +Begin + Setbitmap(cmHere.Bitmap, wkdhere); + Setbitmap(cmBand.Bitmap, wkdband); + Setbitmap(cmAny.Bitmap, wkdAny); + Setbitmap(cmNever.Bitmap, wkdnever); + Setbitmap(cmCqDX.Bitmap, extCqCall); +end; procedure TfrmMonWsjtx.cmNeverClick(Sender: TObject); begin @@ -396,7 +416,54 @@ begin SetAllbitmaps; end; end; +procedure TfrmMonWsjtx.cmBandClick(Sender: TObject); +begin + popColorDlg.Color := wkdBand; + popColorDlg.Title := 'Qso on this band, but not this mode - color'; + if popColorDlg.Execute then + begin + wkdBand := (popColorDlg.Color); + cqrini.WriteString('MonWsjtx', 'wkdband', ColorToString(wkdband)); + SetAllbitmaps; + end; +end; + +procedure TfrmMonWsjtx.cmAnyClick(Sender: TObject); +begin + popColorDlg.Color := wkdAny; + popColorDlg.Title := 'Qso on some other band/mode - color'; + if popColorDlg.Execute then + begin + wkdAny := (popColorDlg.Color); + cqrini.WriteString('MonWsjtx', 'wkdany', ColorToString(wkdany)); + SetAllbitmaps; + end; +end; + +procedure TfrmMonWsjtx.cmHereClick(Sender: TObject); +begin + popColorDlg.Color := wkdHere; + popColorDlg.Title := 'Qso on this band and mode - color'; + if popColorDlg.Execute then + begin + wkdHere := (popColorDlg.Color); + cqrini.WriteString('MonWsjtx', 'wkdhere', ColorToString(wkdhere)); + SetAllbitmaps; + end; +end; + +procedure TfrmMonWsjtx.cmCqDxClick(Sender: TObject); +begin + popColorDlg.Color := extCqCall; + popColorDlg.Title := 'Extended CQ (DX, NA, SA ...) - color'; + if popColorDlg.Execute then + Begin + extCqCall := (popColorDlg.Color); + cqrini.WriteString('MonWsjtx', 'extCqCall', ColorToString(extCqCall)); + SetAllbitmaps; + end; +end; procedure TfrmMonWsjtx.EditAlertEnter(Sender: TObject); begin tbAlert.Checked := False; @@ -461,42 +528,7 @@ begin SendReply(RepFlw); end; -procedure TfrmMonWsjtx.cmBandClick(Sender: TObject); -begin - popColorDlg.Color := wkdBand; - popColorDlg.Title := 'Qso on this band, but not this mode - color'; - if popColorDlg.Execute then - begin - wkdBand := (popColorDlg.Color); - cqrini.WriteString('MonWsjtx', 'wkdband', ColorToString(wkdband)); - SetAllbitmaps; - end; -end; - -procedure TfrmMonWsjtx.cmAnyClick(Sender: TObject); -begin - popColorDlg.Color := wkdAny; - popColorDlg.Title := 'Qso on some other band/mode - color'; - if popColorDlg.Execute then - begin - wkdAny := (popColorDlg.Color); - cqrini.WriteString('MonWsjtx', 'wkdany', ColorToString(wkdany)); - SetAllbitmaps; - end; -end; - -procedure TfrmMonWsjtx.cmHereClick(Sender: TObject); -begin - popColorDlg.Color := wkdHere; - popColorDlg.Title := 'Qso on this band and mode - color'; - if popColorDlg.Execute then - begin - wkdHere := (popColorDlg.Color); - cqrini.WriteString('MonWsjtx', 'wkdhere', ColorToString(wkdhere)); - SetAllbitmaps; - end; -end; procedure TfrmMonWsjtx.chknoHistoryChange(Sender: TObject); begin @@ -825,17 +857,6 @@ begin tmrCqPeriod.Enabled := True; end; -procedure TfrmMonWsjtx.cmCqDxClick(Sender: TObject); -begin - popColorDlg.Color := extCqCall; - popColorDlg.Title := 'Extended CQ (DX, NA, SA ...) - color'; - if popColorDlg.Execute then - Begin - extCqCall := (popColorDlg.Color); - cqrini.WriteString('MonWsjtx', 'extCqCall', ColorToString(extCqCall)); - SetAllbitmaps; - end; -end; procedure TfrmMonWsjtx.cmFontClick(Sender: TObject); begin @@ -864,11 +885,11 @@ begin LastWsjtLineTime := ''; DblClickCall :=''; - bmHere := TBitmap.Create; - bmBand := TBitmap.Create; - bmAny := TBitmap.Create; - bmNever := TBitmap.Create; - bmExt := TBitmap.Create; + cmHere.Bitmap := TBitmap.Create; + cmBand.Bitmap := TBitmap.Create; + cmAny.Bitmap := TBitmap.Create; + cmNever.Bitmap := TBitmap.Create; + cmCqDX.Bitmap := TBitmap.Create; //DL7OAP setDefaultColorSgMonitorAttributes; @@ -898,34 +919,6 @@ begin frmMonWsjtx.hide; end; -procedure TfrmMonWsjtx.Setbitmap(bm:TBitmap;col:Tcolor); -Begin - with bm do - Begin - Width := bmW; - Height := bmH; - with Canvas do - Begin - Brush.Style := bsSolid; - Brush.Color := Col; - FillRect(0,0,bmW,bmH); - end; - end; -end; - -procedure TfrmMonWsjtx.SetAllbitmaps; -Begin - Setbitmap(bmHere, wkdhere); - cmHere.Bitmap := bmHere; - Setbitmap(bmBand, wkdband); - cmBand.Bitmap := bmBand; - Setbitmap(bmAny, wkdAny); - cmAny.Bitmap := bmAny; - Setbitmap(bmNever, wkdnever); - cmNever.Bitmap := bmNever; - Setbitmap(bmExt, extCqCall); - cmCqDX.Bitmap := bmExt; -end; procedure TfrmMonWsjtx.FormShow(Sender: TObject); begin diff --git a/src/fNewQSO.lfm b/src/fNewQSO.lfm index 17ea9ee..b1bba19 100644 --- a/src/fNewQSO.lfm +++ b/src/fNewQSO.lfm @@ -1,5 +1,5 @@ object frmNewQSO: TfrmNewQSO - Left = 282 + Left = 156 Height = 709 Top = 0 Width = 809 @@ -2134,7 +2134,7 @@ object frmNewQSO: TfrmNewQSO OnKeyPress = FormKeyPress OnShow = FormShow OnWindowStateChange = FormWindowStateChange - LCLVersion = '1.8.4.0' + LCLVersion = '2.0.0.4' object sbNewQSO: TStatusBar AnchorSideLeft.Control = Owner AnchorSideRight.Control = Owner @@ -2575,90 +2575,70 @@ object frmNewQSO: TfrmNewQSO end object sbtnAttach: TSpeedButton AnchorSideTop.Control = mComment - Left = 423 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = mComment + AnchorSideRight.Side = asrBottom + Left = 381 Height = 22 Hint = 'Call has an attachment' - Top = 255 + Top = 338 Width = 23 + Anchors = [akTop, akRight] + BorderSpacing.Top = 3 + BorderSpacing.Right = 130 Glyph.Data = { - C6070000424DC607000000000000360000002800000016000000160000000100 - 2000000000009007000064000000640000000000000000000000FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C4C5 - C8FFA6B0BFFFA0AAB8FFA0AAB8FFA0AAB8FFA0AAB8FFA0AAB8FFA0AAB8FFA0AA - B8FFA0AAB8FFA0AAB8FFA0AAB8FFA0AAB8FF9FAAB9FFA1A9B2FFC9C9CAFFFFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00AAA7A3FF596573FF2D69B3FF386C - ACFF386DAEFF386DAEFF386DAEFF386CAEFF386DAEFF386CAEFF386DAEFF386D - AEFF386DAEFF376BACFF3C71B4FF416591FF94989DFFFFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00979593FF636B70FF93BBE4FF76A3D1FF75A3D2FF75A4 - D3FF75A3D2FF75A2D2FF74A3D2FF74A2D2FF75A3D3FF75A4D3FF75A4D2FF71A0 - D1FF84ADD7FF96B8DBFF607184FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00979897FF7D8181FFA9C0DBFF7FA7D2FF6F9DCEFF739FD0FF729FCEFF73A0 - CEFF729FCFFF729FCEFF739FCFFF739FCFFF739FCEFF729FCDFF76A1CEFF8AB3 - DDFF58789DFFBCBDBCFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00807F7CFF7F83 - 87FF94ACC8FF9EBEE0FF7DA6D1FF7CA6D2FF7DA6D2FF7DA5D2FF7CA5D2FF7CA6 - D2FF7DA5D2FF7DA5D3FF7CA6D2FF7DA6D2FF79A3D1FF89ADD5FF93B2D6FF6677 - 8DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF006A6A67FF898E92FF73879EFFAEC6 - DEFF8EB1D7FF83AAD3FF85ABD4FF85A9D4FF85ABD3FF84AAD4FF85AAD4FF85AB - D4FF84ABD4FF85AAD5FF85AAD5FF84AAD3FFA3C2E2FF6583A6FFFFFFFF00FFFF - FF00FFFFFF00FFFFFF00656665FF909294FF617386FFA5BCD7FF9EBCDDFF83AA - D3FF89ADD5FF89ADD6FF89ADD5FF89ADD6FF89AED6FF89AED5FF89ADD6FF89AD - D6FF89AED6FF85ABD4FF96B7DAFF88A3C3FFBBBAB8FFFFFFFF00FFFFFF00C5C5 - C5FF696B69FFB9B6B2FF687585FF7493BBFFA7C4E1FF7EA6D1FF86ACD5FF86AC - D5FF86ACD5FF86ACD5FF86ACD5FF86ACD5FF86ACD5FF86ACD5FF86ACD5FF86AB - D4FF86ACD5FF91ABCBFF587190FFFFFFFF00FFFFFF00A9A9A8FF747676FFA2A0 - 9CFF5D697AFF7694BBFFB4CDE7FF8DB0D6FF94B6DAFF94B6DAFF94B6DAFF94B6 - DAFF94B6DAFF94B6DAFF94B6DAFF94B5DAFF95B6DAFF96B7DBFF93B5DAFFACC6 - E2FF496991FFFFFFFF00FFFFFF00999999FF7D7E7DFFB6B5B2FF6E7680FF728D - AFFFACC7E5FFA0BBDCFFA2BEDEFFA2BEDEFFA2BEDEFFA2BEDEFFA2BEDEFFA3BE - DEFFA4BEDCFFA6C1E1FFA1BCDDFF9BB7D7FF9DB8D8FF9DB8D9FF4D6889FFFFFF - FF00FFFFFF008B8B89FF8C8C8BFF989998FF7E807FFF6A7B90FF436999FF4168 - 9BFF416799FF416799FF416799FF406798FF3F6699FF416798FF4A6C98FF385D - 8CFF466D9FFF5C83B4FF587EB0FF577EB1FF8D96A2FFFFFFFF00FFFFFF007577 - 75FFA3A3A1FF9D9D9CFF878686FF8B8A87FF928D86FFBABBB9FF8383A8FF8383 - A8FFBABBB9FF9E9892FF9D9890FFBABBB9FFDEEAE2FFCDDFD4FFBBE6D8FFD3F3 - E9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006D6E6CFFB4B4B8FF9393 - 93FF858585FF878989FF86888AFFBABBB9FF7878A0FF7777A0FFBABBB9FF5658 - 57FF575A58FFFBFDFC00669C79FF509C77FF2BB286FF45C69DFFCCEEE4FFFFFF - FF00FFFFFF00FFFFFF00FFFFFF00727272FFAAABAEFF7B7B7AFF828282FF8282 - 81FF828281FFBABBB9FF61618FFF5D5F8DFFBABBB9FFC1C2C1FFC1C2C1FF99C5 - A6FF2D9E56FF27A76CFF09C485FF05DB93FF66D9BAFFFFFFFF00FFFFFF00FFFF - FF00FFFFFF00646462FFC1C2C1FFB2B2B1FFB2B3B2FFB2B3B2FFB0B1AFFFBABB - B9FF575787FF4C527FFF6CBB91FF6DAC86FF7BAF89FF55A776FF1B9C58FF199C - 61FF17C286FF05D88CFF5EDFB9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00A3A4 - A2FF6C6E6BFF717371FF6F7170FF707271FF707271FFBABBB9FF444478FF313C - 6AFF21A15FFF1AA35AFF0CAF62FF0DB773FF1DBC7CFF1D9C58FF17B476FF06C6 - 7FFF72D7B6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003B3B70FF263161FF23985BFF219C - 59FF0FA761FF11B677FF0DB170FF1C9657FF17A764FF04BB71FF75D2B6FFFFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF002C2C63FF161F50FF229E52FF23A454FF0CA75EFF0DB6 - 74FF4FBD90FFA8D3BEFFB6DAC6FF9FDDBFFFADDACAFFFFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00353568FF192050FF249850FF21A857FF09A85FFF0AAF70FF78C4AAFFFFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00A9CAB7FF86BE9CFF65AB89FF69AE93FFFFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00 + 36040000424D3604000000000000360000002800000010000000100000000100 + 2000000000000004000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000281C1A00495252735C72 + 7494647F82A7627D80A4627D80A4627D80A4627D80A4627D80A4627D80A4627D + 80A4627D80A4627D80A560797BAD495354570000001100000000536264C0749C + 9EF582B3B6FF80AFB2FF80AFB2FF80AFB2FF80AFB2FF80AFB2FF80AFB2FF80AF + B2FF80AFB2FF80AFB2FF80AFB0FF5D7373AC1802003A000000005D7477B79ADC + DFE7B4FFFFFFB1FFFFFFB1FFFFFFB1FFFFFFB1FFFFFFB1FFFFFFB1FFFFFFB1FF + FFFFB1FFFFFFB2FFFFFFB7FFFFFF759C9CDA3837386F00000000444D4DB78FC9 + CFE7AFFEFFFFABF7FFFFABF7FFFFABF7FFFFABF7FFFFABF7FFFFABF7FFFFABF7 + FFFFABF7FFFFACF9FFFFB1FFFFFF7FAFB1FF5F7A7C9C00000000323F40B78BC7 + CEE7B1FFFFFFACFFFFFFABFFFFFFABFFFFFFABFFFFFFABFFFFFFAAF7FFFFAAF5 + FEFFAAF6FEFFAAF6FEFFADFCFFFF96D4DAFF81B3B8AC000000062E4B50B782BE + C5E7A7EBEFFFA6DDD9FFAAD9D2FFAAD8D0FFA9D8D0FFA8DCD8FFA8F1F8FFA9F6 + FFFFAAF6FEFFAAF6FEFFABF7FFFFA7F0F8FF96D7DDB500000023366B73B76FA7 + AFE790B8B7FF9DA293FFA79076FFAA8D71FFA88D72FFA59D89FFA6E6EBFFA9F7 + FFFFABF7FFFFABF7FFFFABF7FEFFACFAFFFF9DE1E8C136353243418B95B75788 + 8FE77C9FA0FFA7BDB3FFAC977DFFB7997AFFBA9C7CFFB2A48BFFA9E5E9FFACFB + FFFFAFFEFFFFAEFDFFFFAEFDFFFFB0FFFFFFA0E5EBCF5D75766B45919CB7498A + 92E7659DA3FF8DBEC0FF8BAFADFF8EB0ACFF90B1ADFF8DB3B0FF89C4CAFF8ACA + D1FF8BCBD2FF8BCBD2FF8BCCD2FF8CC7CDFF7FACB0CE56696A8644868FB74BA8 + B4E75BBFCDFF6ECCDAFF6ACEDFFF68CDDEFF68CEDEFF69CFDFFF6ACAD6FF6AC7 + D4FF69C6D3FF69C7D4FF6ACDD9FF61949AE1586162985160615240727AB855C9 + DAE75DECFFFF59E4F7FF59E4F7FF5AE5F9FF59E4F8FF59E2F5FE59E3F6F559E3 + F6F359E4F6F25AE5F8F35BEEFFF93E7C83A811000040000000003D666CBE51B9 + C8EA5ADDF0FF58D7E9FF58D8E9FF5BE6F9FF58D8EBFF4EAFBDF440767C923C63 + 68763D6A6F733D6A6F763D6A707C34494B461C000013000000003855598A468E + 97E24B9EAAFF4A9CA7FF4A9CA7FF4BA3AEFF499AA5FF43808ADF333F413C1E00 + 0018280C071A280E091C270C091E2813110E2F3D3E02000000003444463C4072 + 7881427B82AB427A81A4427A81A4427A81A740747AA03D666D7A2E2B300B0000 + 000000000000000000000000000000000000000000002A1F1D00000000000000 + 00000000000000000000000000000000000000000000000000000000000057D0 + DF00230000000000000000000000000000000000000000000000 } OnClick = sbtnAttachClick ShowHint = True ParentShowHint = False end object sbtnQSL: TSpeedButton - AnchorSideTop.Control = sbtneQSL - AnchorSideRight.Control = sbtneQSL + AnchorSideTop.Control = mComment + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = mComment + AnchorSideRight.Side = asrBottom Left = 407 Height = 23 Hint = 'Call has a QSL image' Top = 338 Width = 23 Anchors = [akTop, akRight] - BorderSpacing.Right = 3 + BorderSpacing.Top = 3 + BorderSpacing.Right = 104 Glyph.Data = { 36090000424D3609000000000000360000002800000018000000180000000100 2000000000000009000064000000640000000000000000000000FFFFFF00FFFF @@ -2740,15 +2720,18 @@ object frmNewQSO: TfrmNewQSO ParentShowHint = False end object sbtnQRZ: TSpeedButton - AnchorSideTop.Control = sbtnHamQTH - AnchorSideRight.Control = sbtnHamQTH + AnchorSideTop.Control = mComment + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = mComment + AnchorSideRight.Side = asrBottom Left = 485 Height = 23 Hint = 'Opens qrz.com callsing profile in webbrowser' Top = 338 Width = 23 Anchors = [akTop, akRight] - BorderSpacing.Right = 3 + BorderSpacing.Top = 3 + BorderSpacing.Right = 26 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000F5F2E9FFF5F2 @@ -2791,15 +2774,18 @@ object frmNewQSO: TfrmNewQSO end object sbtnLoTW: TSpeedButton AnchorSideLeft.Side = asrBottom - AnchorSideTop.Control = sbtnQRZ - AnchorSideRight.Control = sbtnQRZ + AnchorSideTop.Control = mComment + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = mComment + AnchorSideRight.Side = asrBottom Left = 459 Height = 23 Hint = 'LoTW user' Top = 338 Width = 23 Anchors = [akTop, akRight] - BorderSpacing.Right = 3 + BorderSpacing.Top = 3 + BorderSpacing.Right = 52 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFFFFFFFF @@ -3432,15 +3418,18 @@ object frmNewQSO: TfrmNewQSO end object sbtneQSL: TSpeedButton AnchorSideLeft.Side = asrBottom - AnchorSideTop.Control = sbtnLoTW - AnchorSideRight.Control = sbtnLoTW + AnchorSideTop.Control = mComment + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = mComment + AnchorSideRight.Side = asrBottom Left = 433 Height = 23 Hint = 'eQSL user' Top = 338 Width = 23 Anchors = [akTop, akRight] - BorderSpacing.Right = 3 + BorderSpacing.Top = 3 + BorderSpacing.Right = 78 Glyph.Data = { 36040000424D3604000000000000360000002800000010000000100000000100 2000000000000004000064000000640000000000000000000000FFFFFFFFFFFF @@ -4461,42 +4450,6 @@ object frmNewQSO: TfrmNewQSO end object mnuNewQSO: TMenuItem Caption = 'New QSO' - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00001F6531FF1A6A36FF196B37FF186634FF0D391DFF00000000000000006B6B - 6BFF6B6B6BFF6B6B6BFF6B6B6BFF6B6B6BFF6B6B6BFF6B6B6BFF6B6B6BFF416B - 50FF288C53FF64BA8DFF95D2B2FF64BA8DFF288C53FF0E3B1EFF704B360096A6 - 6A0062BC6BFF60B66AFF6EB075FF8FA792FF878E87FFBCBCBCFFBDBDBDFF1F6D - 3CFF62BA8BFF60BA87FFFFFFFFFF60B987FF67BC8FFF186835FFC8926C00F7FC - F70067C272FF87CB8FFF78C380FFD9D9D9FF898989FFB9B9B9FFB9B9B9FF317B - 4CFF9CD4B6FFFFFFFFFFFFFFFFFFFFFFFFFF95D2B2FF196B37FFCA946E00FFFF - FF00D8F0DB0073C67CFFC1DFC5FFDBDBDBFF858585FFB5B5B5FFB7B7B7FF4687 - 5EFF90D3B1FF92D6B1FFFFFFFFFF65BC8CFF67BC8FFF186835FFCC976F00FFFF - FF00ECF8EB0070C17AFFEEEEEEFFDCDCDCFF818181FF838383FF848484FF6B8B - 77FF61AB81FF95D4B4FFBAE6D0FF6ABB8FFF2D8F57FF0E3B1EFFD19C7300FFFF - FF00FEFEFC00A4B1A5FFEFEFEFFFDEDEDEFFDDDDDDFFDCDCDCFFDBDBDBFFDADA - DAFF9BB7A5FF5F9874FF4F8E66FF4A8A61FF7079500000000000D49E7500FFFF - FF00FEFEFC00B4B4B4FFF0F0F0FFF3C1A2FFF2C09FFFF2BE9BFFF2BB99FFF2BA - 96FFF1B895FFECECECFF848484FFFFFFFF00B27C5A0000000000D5A07600FFFF - FF00FDFDFC00BBBBBBFFF1F1F1FFE1E1E1FFE0E0E0FFDFDFDFFFDEDEDEFFDDDD - DDFFDCDCDCFFEDEDEDFF8C8C8CFFFFFFFF00B57E5C0000000000D8A27900FFFF - FF00FDFDFA00C1C1C1FFF1F1F1FFF5C8ACFFF3C7AAFFF3C5A6FFF3C3A3FFF3C0 - 9FFFF2BE9DFFEEEEEEFF939393FFFFFFFF00B7815E0000000000D9A37900FFFF - FF00FCFBF900C7C7C7FFF2F2F2FFE4E4E4FFE3E3E3FFE2E2E2FFE1E1E1FFE0E0 - E0FFDFDFDFFFEFEFEFFF9B9B9BFFFFFFFF00BA85600000000000DBA47A00FFFF - FF00FFFFFF00CDCDCDFFF3F3F3FFF5CCB2FFF5CCB2FFF5CBAFFFF5C9ACFFF3C8 - AAFFF3C5A7FFEFEFEFFFA2A2A2FFFFFFFF00BD87630000000000DCA77B00DCA7 - 7B00DCA77B00D1D1D1FFF3F3F3FFF3F3F3FFF2F2F2FFF2F2F2FFF2F2F2FFF1F1 - F1FFF1F1F1FFF0F0F0FFA9A9A9FFDCA77B00C08B660000000000DBAB8400E8B9 - 9200E8B99200D6D6D6FFD3D3D3FFCFCFCFFFCCCCCCFFC8C8C8FFC4C4C4FFAFAF - AFFF747474FF8E8E8EFFB1B1B1FFE8B99200BF8F6E0000000000472F2200D3A9 - 8700DCA77B00DCA67A00DAA47A00D8A27900D5A07600D49E7500D29D7300CF9A - 72009A9A9AFFCB966F00C9946C00BC937500472F220000000000C803EA00C803 - EA00009B0000009B000000000000000000000000000000000000000000000000 - 00003939E7FF0000000000000000000000000000000000000000 - } Hint = 'Add new QSO' ImageIndex = 0 ShortCut = 16497 @@ -4504,42 +4457,6 @@ object frmNewQSO: TfrmNewQSO end object mnuQSOList: TMenuItem Caption = 'Show QSO list' - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000000000000000 - 0000000000005D170100A6E3C300000C41003C0B0000D4E29D00062A7E000000 - 0000000000007E2A0600BFF5DA00000F4F00390A0000D3DF9700000F4F00B67C - 58FFD39C71FFD19668FFCE9263FFCB8E5EFFC98A5BFFC78756FFC38452FFC384 - 52FFC38452FFC38452FFC38452FFC38452FF81522EFF000000007BBEE900D7A1 - 75FFF8F2EDFFF7F0EAFFF6EDE6FFF4EAE2FFF3E7DEFFF1E4DBFFF0E2D8FFF0E2 - D8FFF0E2D8FFF0E2D8FFF0E2D8FFF0E2D8FFC4895CFFBFEFBF0027467500D9A4 - 7AFFF9F3EEFFEBD2BEFFFFFFFFFFEBD3BFFFFFFFFFFFFFFFFFFFFFFFFFFFEAC7 - ADFFFFFFFFFFFFFFFFFFFFFFFFFFF0E2D8FFC68C5FFFD7883300000F4F00DDA8 - 7EFFF9F3EFFFEBD0BAFFEBD0BBFFEBD0BBFFEBD0BBFFEBD0BBFFEBD1BDFFEACD - B5FFEACDB5FFEACDB5FFEACDB5FFF0E2D8FFC68A5CFFAED0AF00BE8E5300DFAA - 82FFF9F3EFFFEACEB7FFFFFFFFFFEBD0BBFFFFFFFFFFFFFFFFFFFFFFFFFFEACF - BAFFFBF6F2FFFFFFFFFFFFFFFFFFF0E2D8FFC88D5FFFBFEFBF00DFBB8900E1AE - 87FFFAF4F0FFEACBB2FFEACCB3FFEACCB3FFEACCB3FFEACCB3FFEACEB7FFE8C7 - ACFFE8C7ACFFE8C8B0FFE8C8AEFFF0E2D8FFC48654FF20070000000F4F00E3B1 - 8CFFFAF6F1FFEAC9AEFFFFFFFFFFEAC9B0FFFFFFFFFFFFFFFFFFFFFFFFFFE8C7 - ACFFFFFFFFFFFFFFFFFFFFFFFFFFF1E5DBFFC68655FF52260C0000000000E5B4 - 8FFFFAF6F2FFE9C6AAFFE9C6ACFFEAC7ACFFE9C7ADFFE9C9AEFFE9C9B0FFE8C7 - ACFFE9C9B0FFE8C8B0FFE8CCB5FFF2E7DEFFC88A59FFBFEFBF0000000000E7B7 - 94FFFBF7F4FFE9C3A6FFFFFFFFFFE8C4A9FFFFFFFFFFFFFFFFFFFFFFFFFFE8C7 - ACFFFFFFFFFFFFFFFFFFFFFFFFFFF7F1EBFFCB8F5FFF00000000000F4F00E9BA - 98FFFBF7F4FFE9C3A6FFE9C3A6FFE9C3A6FFE9C3A6FFE9C3A6FFE9C3A6FFE9C3 - A6FFE9C3A6FFE9C3A6FFE9C3A6FFFBF7F4FFCE9364FF0000000000000000EBBD - 9BFFFBF7F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7F4FFD1976AFFBFEFBF0000000000ECBF - 9EFFFBF7F4FF9CD5A5FF98D3A1FF94D09DFF90CE98FF8BCB93FF87C98EFF82C6 - 89FF7EC384FF7AC180FF76BE7CFFFBF7F4FFD49B6FFF00000000000F4F00DBB2 - 94FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7 - F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFD19C71FF0000000008000000F7E1 - D200F1C8ACFFEDC09FFFEBBE9DFFEBBC9AFFE9BA96FFE7B793FFE6B590FFE4B2 - 8CFFE2AF88FFE0AC84FFDDA980FFDCA57DFFBD8461FFBFEFBF007804EA007804 - EA00F855EB00F855EB00E0832300FE75B10000000000C00000007856EB002C56 - EB000000000000000000000000004056EB000000000000000000 - } ImageIndex = 16 ShortCut = 16463 OnClick = mnuQSOListClick @@ -4840,42 +4757,6 @@ object frmNewQSO: TfrmNewQSO end object MenuItem19: TMenuItem Caption = 'Refresh' - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 200000000000000400006400000064000000000000000000000095648E00A4E6 - DD00011046004F1101007DBA8000000F4F004D0F0000FFFDBC00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00BEFEFF00000F4F00030000006D3A1300000004000000 - 000000000000235328FF2D6B32FF0000000000000000000000005D170100A6E3 - C300000C41004F0F0000BFEFBF00000F4F0047110100D7E4A400000000000000 - 0000525F2AFF5AA462FF58A15EFF37833EFF347E3AFF317A36FF2E7533FF2768 - 2BFF1D4E20FF102E120039160400E7E59D004C74AF000E1E320054B3E8002652 - 35FF62AC6AFF85C88DFF85C78BFF82C688FF7FC486FF7CC282FF79C180FF71B9 - 78FF5FA865FF49914EFF1A4E35FF341F0900D3DF9700062A7D0041210F006A9B - 61FF66B06EFF8ACA92FF89CA90FF86C88DFF83C68AFF80C587FF7EC384FF7BC2 - 81FF6DBB74FF76BE7CFF59A05DFF1B4C23FF25180800D592500090DEE400501A - 37007DC283FF67B16FFF64AD6BFF43944BFF408F47FF3C8A43FF398540FF549D - 5AFF74BA7AFF79C17FFF77BF7DFF4A914FFF27606C000607110000020F000200 - 000052260C0085AC6AFF6BAF6FFFFBFFFF008EC2E500041B4F00000000004452 - 24FF468D4BFF75BB7BFF70BD77FF63AB69FF1E5021FF9F430F0076AFD9000211 - 3A0000000000060201006E793900F4DFBD00FFFFFF00CDECFF00346CA2000002 - 0F00234C24FF61A867FF7BC282FF76BC7CFF3A7E43FF346CA2004F0F0000C1EF - BF00B567670074CDE800000525000000000028060000E9D078006766B500BFEF - C10023564AFF64AB6BFF7FC486FF79BE81FF428444FFF4FFFF00000000000000 - 0000000000000000000000000000000000000000000000000000000000002755 - 2CFF3A8142FF81C388FF7DC485FF6EB375FF265B2AFF00000000BFF5E900000F - 4F005FBA6AFF5CB667FF59B364FF56AE60FF53AA5DFF50A659FF4DA156FF68B1 - 70FF88C890FF8DCC95FF8BCB92FF5DA564FF193A1C0000000000000000000000 - 000062BE6DFFA5DAAEFFA2D8ACFFA1D8AAFF9ED6A7FF9CD5A5FF99D4A2FF97D2 - 9FFF8CCD95FF91CF99FF73B87BFF2D6331FFA3591B00CCE3E800000000000000 - 000064C170FFA6DBB0FFA6DAAFFFA3D9ADFFA2D8ABFF9FD7A8FF9CD5A5FF94D0 - 9DFF83C58CFF6CB474FF316A37FF0F211100000000000000000089DFFF000009 - 320066C472FF64C270FF62BF6EFF60BC6BFF5DB868FF5BB565FF57B062FF4E9E - 57FF3B7941FF2348270009120A00000000000000000000000000080000000100 - 1E0089061C0090061E008A061E00FFFFFF000000000000000000000000000000 - 0000000000000000000000000000000000004F0F0000FFFFBF001804EA001804 - EA00B0493D00B0493D00E0832300E075B10000000000A4000000304A3D00E449 - 3D00000000000000000000000000F8493D000000000000000000 - } ImageIndex = 15 end end @@ -5048,42 +4929,6 @@ object frmNewQSO: TfrmNewQSO RightJustify = True object MenuItem17: TMenuItem Caption = 'Help index' - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000560151001806 - 520058015200160653004A02E600290000008888F500B001EA004C02E900D103 - EA004E02EA00CF03EB00C00048001314150000040000380000000202F5003604 - F6005801E3001606E4006211CE00603B95009E6056FFA16844FFA36642FF925B - 50FF7A3490002D134A0054014E001A06500055015000190651000202FE003604 - FF000002FF00612C1A00BA7046FFD7BBA3FFE9DACAFFECE0D1FFECE0D1FFE8D8 - C8FFD3B59CFF9D614CFFE224B6003904F4000002F4003804F500FE0232009204 - 3300E92E4100B98159FFE7D5C4FFE5D2BFFFC9A685FFB88E67FFB68A65FFC5A1 - 80FFE0CCBAFFE3D0BEFFAF6B45FF992790000003B8009004B900920159003D17 - 5D00BE8368FFEAD8C9FFE3CDBAFFC0946BFFBA8C62FFCFB094FFCFB094FFB789 - 5FFFB28761FFDAC0AAFFE4D1C0FFA0694FFF171233009004320050031200AB51 - 4500E4CCB9FFEAD6C5FFC79971FFBF9066FFBF9066FFF7F1ECFFF6F0EAFFB789 - 5FFFB7895FFFB58963FFE2CEBBFFD9BDA6FFA23E53002703590009000000D6B1 - 7AFFEFE1D3FFD9B595FFC7986CFFC39569FFC19367FFBF9066FFBF9066FFBB8B - 63FFB98A63FFB88A62FFCBA786FFEADCCCFFA9714DFF8A0512001049F300D5AE - 92FFF2E4D9FFD1A57AFFC5996BFFC4976AFFC49669FFFAF6F2FFF3EAE1FFC295 - 6DFFBE8F65FFBE8F64FFC0956DFFEFE3D5FFC08D60FF4849F30056015100D9B2 - 97FFF2E5DAFFD1A67EFFCC9D71FFC79A6CFFC5986BFFE2CCB6FFF8F3EEFFF6EE - E8FFD9BDA1FFC29468FFC59B71FFF0E2D6FFBE9068FF38000000FE02B700DBA7 - A6FFF3E5D9FFDFBB9EFFCFA075FFCD9E72FFF5EBE3FFE4CBB4FFE7D3BFFFFBF8 - F6FFE5D3BFFFC4986BFFD6B491FFEEE0D2FFBB8872FF190651000002F4009065 - D100F4E3D4FFEFDCCDFFD5A87EFFD0A077FFFBF8F5FFFCF8F5FFFCF8F5FFFBF8 - F5FFD1A881FFCFA47BFFEAD5C3FFEAD4C2FFE8549D009304B700FB023600A11F - B400E6B9AAFFF6E9DDFFECD8C6FFD7AC81FFDCBB9AFFF6ECE3FFF5ECE2FFE4C8 - AEFFD2A77BFFE6CEBAFFF1E2D5FFCBA19BFFFA18E6003904F400520310008905 - 110086474800EEC9B1FFF7EADFFFEEDED0FFE3C1A7FFD8AE89FFD7AC86FFDDBB - 9CFFEBD6C7FFF3E6D9FFE4B69AFFAC405600FC023400940436005401E6001A06 - E8005301E800624A7300DDC1C3FFF9E9DCFFF6E8DDFFF3E5DAFFF3E5DAFFF5E7 - DCFFF5E4D6FFDAB49BFFF74139003B04F10054030F008705100009000000E8EE - 43000C0000001847F3003E1E1B00D06C5F00DCDCAEFFECCDC0FFE9CBB3FFE5B6 - A3FFA367CE003421DE005601E4001806E5005501E5001906E600F803EA0060F0 - 3E0000000000000000001D0200001F0000000000000040972500640020000000 - 0000000000000000000003000000C9010000E8AD4500C8983900 - } ImageIndex = 14 ShortCut = 32840 OnClick = MenuItem17Click @@ -5922,42 +5767,6 @@ object frmNewQSO: TfrmNewQSO end object MenuItem84: TMenuItem Caption = 'Search on HamQTH.com' - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000F3AA6AFFF19A - 50FFF19B51FFF19B51FFF19648FFF9DBC0FFFEFEFEFFFEFDFDFFF8CFACFFF097 - 4AFFF19B51FFF19B51FFF19A4FFFF4B279FF0000000000000000F2A35FFFEF8A - 34FFEB7005FFEC7E20FFEF8D38FFFCEADAFFFFFFFFFFFEFDFDFFF8CEAAFFEF8D - 37FFEC7E20FFEB7005FFEF8932FFF5B680FF0000000000000000FFFFFFFFFDF1 - E7FFEC7106FFF6BC89FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF6BC89FFEC7106FFFDF2E8FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF5B782FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5B782FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF5B782FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5B782FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF5B782FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5B782FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF5B985FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5B985FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF08F3AFFF3AD6FFFF2A968FFF2A968FFF2A968FFF2A968FFF3AD - 6FFFF08F3AFFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEB7106FFEB7207FFEC750DFFEC740CFFEC740CFFEC740CFFEC740CFFEC75 - 0DFFEB7207FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEB7106FFF5BB88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5BB88FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF5B782FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5B782FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF5B782FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5B782FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFCE9 - D9FFEC7106FFF5B782FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5B782FFEC7106FFFCE9D9FFFFFFFFFF0000000000000000FFFFFFFFFDF2 - E9FFEB7006FFF5BC8AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFF5BC8AFFEB7006FFFDF2E9FFFFFFFFFF0000000000000000FCEADAFFED80 - 1FFFEB7006FFEC7B19FFEE8223FFFBE5D3FFFFFFFFFFFEFDFDFFF8CCA6FFEE84 - 28FFEC7B19FFEB7006FFED801FFFFCEADAFF0000000000000000FDF4EDFFEF93 - 42FFF19C53FFF19B52FFF1974AFFFADDC4FFFEFEFEFFFEFDFDFFF8D1AFFFF099 - 4CFFF19B52FFF19C53FFEF9342FFFDF4EDFF0000000000000000 - } ImageIndex = 19 OnClick = MenuItem84Click end diff --git a/src/fNewQSO.pas b/src/fNewQSO.pas index 11c09ba..9bc01d2 100644 --- a/src/fNewQSO.pas +++ b/src/fNewQSO.pas @@ -4378,10 +4378,10 @@ var begin AProcess := TProcess.Create(nil); try - AProcess.CommandLine := cqrini.ReadString('Program','WebBrowser','firefox')+ - ' http://www.ik3qar.it/manager/man_result.php?call='+ - dmData.qQSOBefore.Fields[4].AsString; - if dmData.DebugLevel>=1 then Writeln('Command line: ',AProcess.CommandLine); + AProcess.Executable := cqrini.ReadString('Program','WebBrowser','firefox'); + AProcess.Parameters.Add('http://www.ik3qar.it/manager/man_result.php?call='+ + dmData.qQSOBefore.Fields[4].AsString); + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free @@ -6294,13 +6294,26 @@ end; procedure TfrmNewQSO.RunST(script: String); //run start stop script var AProcess: TProcess; + index : integer; + paramList : TStringList; begin if not FileExists(dmData.HomeDir + script) then exit; AProcess := TProcess.Create(nil); try - AProcess.CommandLine := 'bash ' + dmData.HomeDir + script; - if dmData.DebugLevel>=1 then Writeln('Command line: ',AProcess.CommandLine); + AProcess.Executable := 'bash'; + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := dmData.HomeDir + script; + AProcess.Parameters.Clear; + while index < paramList.Count do + begin + AProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free @@ -6318,8 +6331,11 @@ begin AProcess := TProcess.Create(nil); try - AProcess.CommandLine := 'bash ' + dmData.HomeDir + cVoiceKeyer +' '+ key_pressed; - if dmData.DebugLevel>=1 then Writeln('Command line: ',AProcess.CommandLine); + AProcess.Executable := 'bash'; + AProcess.Parameters.Clear; + AProcess.Parameters.Add(dmData.HomeDir + cVoiceKeyer); + AProcess.Parameters.Add(key_pressed); + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute finally AProcess.Free @@ -6486,7 +6502,7 @@ begin DisableRemoteMode; mnuRemoteMode.Checked := True; AnyRemoteOn := True; - lblCall.Caption := 'Remote mode!'; + lblCall.Caption := 'Fldigi remote'; tmrFldigi.Interval := cqrini.ReadInteger('fldigi','interval',2)*1000; run := cqrini.ReadBool('fldigi','run',False); path := cqrini.ReadString('fldigi','path',''); diff --git a/src/fPreferences.pas b/src/fPreferences.pas index 592fcab..f201665 100644 --- a/src/fPreferences.pas +++ b/src/fPreferences.pas @@ -1855,6 +1855,8 @@ var lat, long: currency; AProcess: TProcess; proj: string = ''; + index: integer; + paramList : TStringList; begin if not FileExists(edtXplanetPath.Text) then begin @@ -1880,14 +1882,25 @@ begin 3: proj := ' -projection rectangular'; end; //case - cmd := edtXplanetPath.Text + ' -config ' + dmData.HomeDir + + cmd :=' -config ' + dmData.HomeDir + 'xplanet' + PathDelim + 'geoconfig -window ' + myloc + ' -glare 28 -light_time -range 2.5 ' + wait + ' ' + geom + ' -window_title "CQRLOG - xplanet" ' + proj; AProcess := TProcess.Create(nil); try - AProcess.CommandLine := cmd; - Writeln('Command line: ', AProcess.CommandLine); + AProcess.Executable := edtXplanetPath.Text; + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := cmd; + AProcess.Parameters.Clear; + while index < paramList.Count do + begin + AProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if dmData.DebugLevel>=1 then Writeln('AProcess.Executable: ',AProcess.Executable,' Parameters: ',AProcess.Parameters.Text); AProcess.Execute; finally AProcess.Free; @@ -2407,8 +2420,8 @@ begin dmUtils.InsertModes(cmbDefaultMode); dmUtils.InsertModes(cmbMode); dmUtils.InsertModes(cmbWsjtDefaultMode); - cmbDefaultMode.ReadOnly := True; - cmbWsjtDefaultMode.ReadOnly := True; + cmbDefaultMode.Style := csDropDownList; + cmbWsjtDefaultMode.Style := csDropDownList; LoadMebershipCombo; diff --git a/src/fPropDK0WCY.pas b/src/fPropDK0WCY.pas index 4373bef..32c26d2 100644 --- a/src/fPropDK0WCY.pas +++ b/src/fPropDK0WCY.pas @@ -7,7 +7,7 @@ interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Buttons, httpsend, LCLType, ftpsend, - lazutf8sysutils, lclintf; + LazSysUtils, lclintf; type diff --git a/src/fPropagation.pas b/src/fPropagation.pas index fa1c35e..977ae51 100644 --- a/src/fPropagation.pas +++ b/src/fPropagation.pas @@ -276,7 +276,7 @@ begin for j:=0 to data.ChildNodes.Count-1 do begin if (data.ChildNodes.Item[j].Attributes.Item[0].NodeValue = 'vhf-aurora') then - frmPropagation.vhf_aur := data.ChildNodes.Item[j].FirstChild.NodeValue; + frmPropagation.vhf_aur := String(data.ChildNodes.Item[j].FirstChild.NodeValue); if (data.ChildNodes.Item[j].Attributes.Item[0].NodeValue = 'E-Skip') then begin if (data.ChildNodes.Item[j].Attributes.Item[1].NodeValue = 'europe') then diff --git a/src/fSplash.lfm b/src/fSplash.lfm index a345fb7..68219e2 100644 --- a/src/fSplash.lfm +++ b/src/fSplash.lfm @@ -1,13 +1,13 @@ object frmSplash: TfrmSplash - Left = 526 - Height = 272 - Top = 198 - Width = 407 + Left = 675 + Height = 280 + Top = 178 + Width = 421 BorderIcons = [] BorderStyle = bsNone Caption = 'Starting CQRLOG ...' - ClientHeight = 272 - ClientWidth = 407 + ClientHeight = 280 + ClientWidth = 421 Font.Color = clHighlight Icon.Data = { 3E08010000000100010080800000010020002808010016000000280000008000 @@ -2128,13 +2128,18 @@ object frmSplash: TfrmSplash } OnCreate = FormCreate Position = poDesktopCenter - LCLVersion = '1.8.2.0' + LCLVersion = '2.0.0.4' object Image1: TImage - Left = 0 - Height = 272 - Top = 0 - Width = 407 - Align = alClient + AnchorSideLeft.Control = Owner + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = Owner + AnchorSideTop.Side = asrCenter + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 11 + Height = 262 + Top = 9 + Width = 399 OnPaint = Image1Paint Picture.Data = { 1754506F727461626C654E6574776F726B4772617068696380AE010089504E47 diff --git a/src/fSplash.pas b/src/fSplash.pas index 0cb2d61..abbcd9d 100644 --- a/src/fSplash.pas +++ b/src/fSplash.pas @@ -52,6 +52,7 @@ begin Repaint end; + procedure TfrmSplash.Image1Paint(Sender: TObject); const VersionPos: TPoint = (X:320; Y:243); @@ -66,7 +67,8 @@ const Wordbreak : False; Opaque : False; SystemFont : False; - RightToLeft: False + RightToLeft: False; + EndEllipsis: False ); var ATextRect: TRect; diff --git a/src/uRigControl.pas b/src/uRigControl.pas index d6650e7..f5fc194 100644 --- a/src/uRigControl.pas +++ b/src/uRigControl.pas @@ -135,14 +135,26 @@ end; function TRigControl.StartRigctld : Boolean; var - cmd : String; + index : integer; + paramList : TStringList; begin - cmd := fRigCtldPath + ' ' +RigCtldArgs; if fDebugMode then Writeln('Starting RigCtld ...'); - if fDebugMode then Writeln(cmd); - rigProcess.CommandLine := cmd; + rigProcess.Executable := fRigCtldPath; + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := RigCtldArgs; + rigProcess.Parameters.Clear; + while index < paramList.Count do + begin + rigProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if fDebugMode then Writeln('rigProcess.Executable: ',rigProcess.Executable,' Parameters: ',rigProcess.Parameters.Text); + try rigProcess.Execute; sleep(1500); diff --git a/src/uRotControl.pas b/src/uRotControl.pas index 3e6214d..f5a5212 100644 --- a/src/uRotControl.pas +++ b/src/uRotControl.pas @@ -103,13 +103,24 @@ end; function TRotControl.StartRotctld : Boolean; var - cmd : String; + index : integer; + paramList : TStringList; begin - - cmd := fRotCtldPath + ' ' +RotCtldArgs; if DebugMode then Writeln('Starting RotCtld ...'); - if fDebugMode then Writeln(cmd); - rotProcess.CommandLine := cmd; + + rotProcess.Executable := fRotCtldPath; + index:=0; + paramList := TStringList.Create; + paramList.Delimiter := ' '; + paramList.DelimitedText := RotCtldArgs; + rotProcess.Parameters.Clear; + while index < paramList.Count do + begin + rotProcess.Parameters.Add(paramList[index]); + inc(index); + end; + paramList.Free; + if DebugMode then Writeln('rotProcess.Executable: ',rotProcess.Executable,' Parameters: ',rotProcess.Parameters.Text); try rotProcess.Execute; diff --git a/voice_keyer/voice_keyer.sh b/voice_keyer/voice_keyer.sh index df9826e..425cd95 100755 --- a/voice_keyer/voice_keyer.sh +++ b/voice_keyer/voice_keyer.sh @@ -1,7 +1,17 @@ #!/bin/bash -if ! ps aux | grep -q '[m]pg123' + +FILE="$1.mp3" +if [ -e $FILE ] then - echo -e '\033a1' | nc -q 1 -u localhost 6789 & - mpg123 ~/.config/cqrlog/voice_keyer/$1.mp3 - echo -e '\033a0' | nc -q 1 -u localhost 6789 & + echo "Found "$FILE + if ! ps aux | grep -q '[m]pg123' + then + echo "Found mpg123" + echo "PTT on" + echo -e '\033a1' | nc -q 1 -u localhost 6789 & + echo "Play" + mpg123 $FILE + echo "PTT off" + echo -e '\033a0' | nc -q 1 -u localhost 6789 & + fi fi