membership code refactoring

This commit is contained in:
ok2cqr 2018-04-15 18:56:07 +02:00
parent b0239d7366
commit 7f87521beb
14 changed files with 743 additions and 753 deletions

View File

@ -4,12 +4,7 @@ Legend:
- bugfix
--------------------
2.3.0
- grid map: loc and qso counters fixed. Default start fixed as all/any. Default save as jpg (Saku, OH1KH)
- xplanet support/DXCluster was reversing colors RGB to BGR (Saku, OH1KH)
+ Wsjt-x CQ-monitor: new features Wsjt-map ColorBack and xplanet support. (Saku, OH1KH)
- Filter section QSL. Controls over group box. Tighter setting of controls (Saku, OH1KH)
- Worked grids map: Mode selector did not load user's additions (digimodes) (Saku, OH1KH)
- CWtype/letter mode: doubling a .. z removed (Saku, OH1KH)
+ Cq-monitor: Overtimed entries turn silvergray in Follow and "no history" (Saku, OH1KH)
+ Band selector to Filter windows added (Saku, OH1KH)
+ CQ-monitor Delta Freqyency instead of Time when "no history" checked (Saku, OH1KH)
@ -23,7 +18,11 @@ Legend:
+ eQSL ADIF import now also uses submodes from the ADIF specification to match qsos in log (Jonas, SM2VSD)
+ eQSL ADIf import now also uses timestamp from log (+/-60min) together with timestamp from eQSL to match qsos (Jonas, SM2VSD)
- CWtype/letter mode: doubling a .. z removed (Saku, OH1KH)
- Worked grids map: Mode selector did not load user's additions (digimodes) (Saku, OH1KH)
- Filter section QSL. Controls over group box. Tighter setting of controls (Saku, OH1KH)
- xplanet support/DXCluster was reversing colors RGB to BGR (Saku, OH1KH)
- grid map: loc and qso counters fixed. Default start fixed as all/any. Default save as jpg (Saku, OH1KH)
- QSO Filter layout fixed (Saku, OH1KH)
- DXCluster/WEB Font button not connected to acFont (no action). Fixed (Saku, OH1KH)
- wsjtx logging take start and stop times to log (before just stop time) (Saku, OH1KH)

View File

@ -333,6 +333,7 @@
<Filename Value="fClubSettings.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmClubSettings"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
</Unit37>
<Unit38>
@ -793,4 +794,11 @@
<CreateMakefileOnBuild Value="True"/>
</Other>
</CompilerOptions>
<Debugging>
<Exceptions Count="1">
<Item1>
<Name Value="EInterfaceCritical"/>
</Item1>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -41,27 +41,6 @@ type
text : String;
end;
type
TClub = record
Name : String;
LongName : String;
NewInfo : String;
NewBandInfo : String;
NewModeInfo : String;
QSLNeededInfo : String;
AlreadyCfmInfo : String;
ClubField : String;
MainFieled : String;
StoreField : String;
StoreText : String;
NewColor : Integer;
BandColor : Integer;
ModeColor : Integer;
QSLColor : Integer;
AlreadyColor : Integer;
DateFrom : String;
end;
type
TZipCode = record
Name : String;
@ -159,6 +138,7 @@ type
fHomeDir : String;
fDataDir : String;
fMembersDir : String;
fGlobalMembersDir : String;
fDebugLevel : Integer;
fOrderBy : String;
fVersionString : String;
@ -217,11 +197,6 @@ type
//if he wants to use export, program use the same functions for filter enabled
Ascening : Boolean;
Club1 : TClub;
Club2 : TClub;
Club3 : TClub;
Club4 : TClub;
Club5 : TClub;
Zip1 : TZipCode;
Zip2 : TZipCode;
@ -237,6 +212,7 @@ type
property DataDir : String read fDataDir write fDataDir;
property ShareDir : String read fShareDir write fShareDir;
property MembersDir : String read fMembersDir;
property GlobalMembersDir : string read fGlobalMembersDir;
property ZipCodeDir : String read fZipCodeDir;
property UsrHomeDir : String read fUsrHomeDir;
property DebugLevel : Integer read fDebugLevel write fDebugLevel;
@ -362,7 +338,7 @@ implementation
{$R *.lfm}
uses dUtils, dDXCC, fMain, fWorking, fUpgrade, fImportProgress, fNewQSO, dDXCluster, uMyIni,
fTRXControl, fRotControl, uVersion, dLogUpload, fDbError;
fTRXControl, fRotControl, uVersion, dLogUpload, fDbError, dMembership;
procedure TdmData.CheckForDatabases;
var
@ -927,11 +903,11 @@ begin
if not DirectoryExistsUTF8(fHomeDir+'database') then
CreateDir(fHomeDir+'database');
if DirectoryExistsUTF8(fHomeDir+'members') then
fMembersDir := fHomeDir+'members'+PathDelim
else
fMembersDir := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+
PathDelim+'members'+PathDelim);
if not DirectoryExistsUTF8(fHomeDir+'members') then
CreateDirUTF8(fHomeDir+'members');
fMembersDir := fHomeDir+'members'+PathDelim;
fGlobalMembersDir := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+
PathDelim+'members'+PathDelim);
if DirectoryExistsUTF8(fHomeDir+'zipcodes') then
fZipCodeDir := fHomeDir+'zipcodes'+PathDelim
@ -2183,114 +2159,23 @@ begin
end;
procedure TdmData.LoadClubsSettings;
var
tmp : String;
begin
tmp := cqrini.ReadString('Clubs','First','');
Club1.Name := copy(tmp,1,Pos(';',tmp)-1);
Club1.LongName := copy(tmp,Pos(';',tmp)+1,Length(tmp)-Pos(';',tmp)+1);
Club1.NewInfo := cqrini.ReadString('FirstClub','NewInfo','');
Club1.NewBandInfo := cqrini.ReadString('FirstClub','NewBandInfo','');
Club1.NewModeInfo := cqrini.ReadString('FirstClub','NewModeInfo','');
Club1.QSLNeededInfo := cqrini.ReadString('FirstClub','QSLNeededInfo','');
Club1.AlreadyCfmInfo := cqrini.ReadString('FirstClub','AlreadyConfirmedInfo','');
Club1.ClubField := cqrini.ReadString('FirstClub','ClubFields','');
Club1.MainFieled := cqrini.ReadString('FirstClub','MainFields','');
Club1.StoreField := cqrini.ReadString('FirstClub','StoreFields','');
Club1.StoreText := cqrini.ReadString('FirstClub','StoreText','');
Club1.NewColor := cqrini.ReadInteger('FirstClub','NewColor',0);
Club1.BandColor := cqrini.ReadInteger('FirstClub','BandColor',0);
Club1.ModeColor := cqrini.ReadInteger('FirstClub','ModeColor',0);
Club1.QSLColor := cqrini.ReadInteger('FirstClub','QSLColor',0);
Club1.AlreadyColor := cqrini.ReadInteger('FirstClub','AlreadyColor',0);
Club1.DateFrom := cqrini.ReadString('FirstClub','DateFrom','1945-01-01');
dmMembership.LoadClubSettings(1, dmMembership.Club1);
dmMembership.LoadClubSettings(2, dmMembership.Club2);
dmMembership.LoadClubSettings(3, dmMembership.Club3);
dmMembership.LoadClubSettings(4, dmMembership.Club4);
dmMembership.LoadClubSettings(5, dmMembership.Club5);
tmp := cqrini.ReadString('Clubs','Second','');
Club2.Name := copy(tmp,1,Pos(';',tmp)-1);
Club2.LongName := copy(tmp,Pos(';',tmp)+1,Length(tmp)-Pos(';',tmp)+1);
Club2.NewInfo := cqrini.ReadString('SecondClub','NewInfo','');
Club2.NewBandInfo := cqrini.ReadString('SecondClub','NewBandInfo','');
Club2.NewModeInfo := cqrini.ReadString('SecondClub','NewModeInfo','');
Club2.QSLNeededInfo := cqrini.ReadString('SecondClub','QSLNeededInfo','');
Club2.AlreadyCfmInfo := cqrini.ReadString('SecondClub','AlreadyConfirmedInfo','');
Club2.ClubField := cqrini.ReadString('SecondClub','ClubFields','');
Club2.MainFieled := cqrini.ReadString('SecondClub','MainFields','');
Club2.StoreField := cqrini.ReadString('SecondClub','StoreFields','');
Club2.StoreText := cqrini.ReadString('SecondClub','StoreText','');
Club2.NewColor := cqrini.ReadInteger('SecondClub','NewColor',0);
Club2.BandColor := cqrini.ReadInteger('SecondClub','BandColor',0);
Club2.ModeColor := cqrini.ReadInteger('SecondClub','ModeColor',0);
Club2.QSLColor := cqrini.ReadInteger('SecondClub','QSLColor',0);
Club2.AlreadyColor := cqrini.ReadInteger('SecondClub','AlreadyColor',0);
Club2.DateFrom := cqrini.ReadString('SecondClub','DateFrom','1945-01-01');
tmp := cqrini.ReadString('Clubs','Third','');
Club3.Name := copy(tmp,1,Pos(';',tmp)-1);
Club3.LongName := copy(tmp,Pos(';',tmp)+1,Length(tmp)-Pos(';',tmp)+1);
Club3.NewInfo := cqrini.ReadString('ThirdClub','NewInfo','');
Club3.NewBandInfo := cqrini.ReadString('ThirdClub','NewBandInfo','');
Club3.NewModeInfo := cqrini.ReadString('ThirdClub','NewModeInfo','');
Club3.QSLNeededInfo := cqrini.ReadString('ThirdClub','QSLNeededInfo','');
Club3.AlreadyCfmInfo := cqrini.ReadString('ThirdClub','AlreadyConfirmedInfo','');
Club3.ClubField := cqrini.ReadString('ThirdClub','ClubFields','');
Club3.MainFieled := cqrini.ReadString('ThirdClub','MainFields','');
Club3.StoreField := cqrini.ReadString('ThirdClub','StoreFields','');
Club3.StoreText := cqrini.ReadString('ThirdClub','StoreText','');
Club3.NewColor := cqrini.ReadInteger('ThirdClub','NewColor',0);
Club3.BandColor := cqrini.ReadInteger('ThirdClub','BandColor',0);
Club3.ModeColor := cqrini.ReadInteger('ThirdClub','ModeColor',0);
Club3.QSLColor := cqrini.ReadInteger('ThirdClub','QSLColor',0);
Club3.AlreadyColor := cqrini.ReadInteger('ThirdClub','AlreadyColor',0);
Club3.DateFrom := cqrini.ReadString('ThirdClub','DateFrom','1945-01-01');
tmp := cqrini.ReadString('Clubs','Fourth','');
Club4.Name := copy(tmp,1,Pos(';',tmp)-1);
Club4.LongName := copy(tmp,Pos(';',tmp)+1,Length(tmp)-Pos(';',tmp)+1);
Club4.NewInfo := cqrini.ReadString('FourthClub','NewInfo','');
Club4.NewBandInfo := cqrini.ReadString('FourthClub','NewBandInfo','');
Club4.NewModeInfo := cqrini.ReadString('FourthClub','NewModeInfo','');
Club4.QSLNeededInfo := cqrini.ReadString('FourthClub','QSLNeededInfo','');
Club4.AlreadyCfmInfo := cqrini.ReadString('FourthClub','AlreadyConfirmedInfo','');
Club4.ClubField := cqrini.ReadString('FourthClub','ClubFields','');
Club4.MainFieled := cqrini.ReadString('FourthClub','MainFields','');
Club4.StoreField := cqrini.ReadString('FourthClub','StoreFields','');
Club4.StoreText := cqrini.ReadString('FourthClub','StoreText','');
Club4.NewColor := cqrini.ReadInteger('FourthClub','NewColor',0);
Club4.BandColor := cqrini.ReadInteger('FourthClub','BandColor',0);
Club4.ModeColor := cqrini.ReadInteger('FourthClub','ModeColor',0);
Club4.QSLColor := cqrini.ReadInteger('FourthClub','QSLColor',0);
Club4.AlreadyColor := cqrini.ReadInteger('FourthClub','AlreadyColor',0);
Club4.DateFrom := cqrini.ReadString('FourthClub','DateFrom','1945-01-01');
tmp := cqrini.ReadString('Clubs','Fifth','');
Club5.Name := copy(tmp,1,Pos(';',tmp)-1);
Club5.LongName := copy(tmp,Pos(';',tmp)+1,Length(tmp)-Pos(';',tmp)+1);
Club5.NewInfo := cqrini.ReadString('FifthClub','NewInfo','');
Club5.NewBandInfo := cqrini.ReadString('FifthClub','NewBandInfo','');
Club5.NewModeInfo := cqrini.ReadString('FifthClub','NewModeInfo','');
Club5.QSLNeededInfo := cqrini.ReadString('FifthClub','QSLNeededInfo','');
Club5.AlreadyCfmInfo := cqrini.ReadString('FifthClub','AlreadyConfirmedInfo','');
Club5.ClubField := cqrini.ReadString('FifthClub','ClubFields','');
Club5.MainFieled := cqrini.ReadString('FifthClub','MainFields','');
Club5.StoreField := cqrini.ReadString('FifthClub','StoreFields','');
Club5.StoreText := cqrini.ReadString('FifthClub','StoreText','');
Club5.NewColor := cqrini.ReadInteger('FifthClub','NewColor',0);
Club5.BandColor := cqrini.ReadInteger('FifthClub','BandColor',0);
Club5.ModeColor := cqrini.ReadInteger('FifthClub','ModeColor',0);
Club5.QSLColor := cqrini.ReadInteger('FifthClub','QSLColor',0);
Club5.AlreadyColor := cqrini.ReadInteger('FifthClub','AlreadyColor',0);
Club5.DateFrom := cqrini.ReadString('FifthClub','DateFrom','1945-01-01');
if Club1.MainFieled = 'call' then
Club1.MainFieled := 'idcall';
if Club2.MainFieled = 'call' then
Club2.MainFieled := 'idcall';
if Club3.MainFieled = 'call' then
Club3.MainFieled := 'idcall';
if Club4.MainFieled = 'call' then
Club4.MainFieled := 'idcall';
if Club5.MainFieled = 'call' then
Club5.MainFieled := 'idcall'
if dmMembership.Club1.MainFieled = 'call' then
dmMembership.Club1.MainFieled := 'idcall';
if dmMembership.Club2.MainFieled = 'call' then
dmMembership.Club2.MainFieled := 'idcall';
if dmMembership.Club3.MainFieled = 'call' then
dmMembership.Club3.MainFieled := 'idcall';
if dmMembership.Club4.MainFieled = 'call' then
dmMembership.Club4.MainFieled := 'idcall';
if dmMembership.Club5.MainFieled = 'call' then
dmMembership.Club5.MainFieled := 'idcall'
end;
procedure TdmData.LoadZipSettings;

View File

@ -5,16 +5,51 @@ unit dMembership;
interface
uses
Classes, SysUtils, FileUtil, LResources, LazFileUtils, Forms, LCLType, dateutils;
Classes, SysUtils, FileUtil, LResources, LazFileUtils, Forms, LCLType, dateutils, StdCtrls, Graphics;
const
C_CLUB_COUNT = 5;
C_CLUB_UPDATE_SECTION = 'ClubUpdates';
C_LIST_OF_CLUBS : array[1..C_CLUB_COUNT] of string = ('First', 'Second', 'Third', 'Fourth', 'Fifth');
C_MEMBERSHIP_VERSION_CHECK_URL = 'https://cqrlog.com/members/script/mtime.php?file=';
C_MEMBERSHIP_VERSION_CHECK_URL = 'https://cqrlog.com/members/script/mtime.php?file=%s';
C_MEMBERSHIP_DOWNLOAD_URL = 'https://cqrlog.com/members/%s';
C_FROM_DATE = '1945-01-01';
C_TO_DATE = '2050-12-31';
C_CLUB_MSG_NEW = 'New %s member! (%c #%n)';
C_CLUB_MSG_BAND = 'New band %s member! (%c #%n)';
C_CLUB_MSG_MODE = 'New mode %s member! (%c #%n)';
C_CLUB_MSG_QSL = 'QSL needed for %s member! (%c #%n)';
C_CLUB_MSG_CFM = 'Already confirmed %s member! (%c #%n)';
C_CLUB_COLOR_NEW = clRed;
C_CLUB_COLOR_BAND = clBlue;
C_CLUB_COLOR_MODE = clLime;
C_CLUB_COLOR_QSL = clFuchsia;
C_CLUB_COLOR_CFM = clBlack;
C_CLUB_DEFAULT_CLUB_FIELD = 'clubcall';
C_CLUB_DEFAULT_MAIN_FIELD = 'call';
C_CLUB_DEFAULT_DATE_FROM = '1945-01-01';
C_CLUB_DEFAULT_DATE_TO = '2050-12-31';
type
TClub = record
Name : String;
LongName : String;
NewInfo : String;
NewBandInfo : String;
NewModeInfo : String;
QSLNeededInfo : String;
AlreadyCfmInfo : String;
ClubField : String;
MainFieled : String;
StoreField : String;
StoreText : String;
NewColor : Integer;
BandColor : Integer;
ModeColor : Integer;
QSLColor : Integer;
AlreadyColor : Integer;
DateFrom : String;
end;
type TMembershipLine = record
club_nr : String[20];
@ -34,12 +69,20 @@ type
procedure PrepareListOfMembershipFilesForUpdate;
function GetMessageWithListOfUpdatedFiles : String;
function GetComboClubNameFromFile(ClubFile : String) : String;
public
ListOfMembershipFilesForUpdate : TStringList;
Club1 : TClub;
Club2 : TClub;
Club3 : TClub;
Club4 : TClub;
Club5 : TClub;
procedure CheckForMembershipUpdate(Force : Boolean = False);
procedure SaveLastMembershipUpdateDate(FileName : String; LastUpdateDate : TDateTime);
procedure SynMembeshipUpdates;
procedure ReadMemberList(cmbMemebers: TComboBox);
procedure LoadClubSettings(ClubNr : Integer; var Club : TClub);
function GetLastMembershipUpdateDate(FileName : String) : TDateTime;
function GetClubFileName(Club : String) : String;
@ -79,7 +122,7 @@ uses uMyIni, dUtils, dData, fImportProgress;
for i:=0 to ClubFileNames.Count-1 do
begin
ClubFileName := ExtractFileName(ClubFileNames.Strings[i]);
if dmUtils.GetDataFromHttp(C_MEMBERSHIP_VERSION_CHECK_URL+ClubFileName, data) then
if dmUtils.GetDataFromHttp(Format(C_MEMBERSHIP_VERSION_CHECK_URL, [ClubFileName]), data) then
begin
FileDate := dmUtils.MyStrToDateTime(data);
if FileDate > dmMembership.GetLastMembershipUpdateDate(ClubFileName) then
@ -179,7 +222,6 @@ end;
function TdmMembership.GetClubSourceFileNameWithPath(Club : String) : String;
var
ClubFileName : String;
MemDir : String;
begin
Result := '';
@ -188,16 +230,14 @@ begin
ClubFileName := GetClubFileName(Club);
MemDir := dmData.HomeDir+'members'+PathDelim;
if FileExistsUTF8(MemDir + ClubFileName) then
if FileExistsUTF8(dmData.MembersDir + ClubFileName) then
begin
Result := MemDir + ClubFileName;
Result := dmData.MembersDir + ClubFileName;
exit
end;
MemDir := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+PathDelim+'members'+PathDelim);
if FileExistsUTF8(MemDir + ClubFileName) then
Result := MemDir + ClubFileName
if FileExistsUTF8(dmData.GlobalMembersDir + ClubFileName) then
Result := dmData.GlobalMembersDir + ClubFileName
end;
function TdmMembership.GetClubFileName(Club : String) : String;
@ -343,5 +383,83 @@ begin
end
end;
function TdmMembership.GetComboClubNameFromFile(ClubFile : String) : String;
var
f : TextFile;
ShortName : String;
LongName : String;
begin
AssignFile(f, ClubFile);
try
Reset(f);
ReadLn(f, ShortName);
ReadLn(f, LongName);
Result := ShortName + ';' + LongName
finally
CloseFile(f)
end
end;
procedure TdmMembership.ReadMemberList(cmbMemebers: TComboBox);
var
l: TStringList;
i: integer = 0;
ClubName : String;
begin
cmbMemebers.Clear;
cmbMemebers.Items.Add('');
l := TStringList.Create;
try
dmUtils.LoadListOfFiles(dmData.MembersDir, '*.txt', l);
if l.Count > 0 then
begin
cmbMemebers.Items.Add('--- Local files ---');
for i:=0 to l.Count-1 do
cmbMemebers.Items.Add(GetComboClubNameFromFile(l.Strings[i]))
end;
dmUtils.LoadListOfFiles(dmData.GlobalMembersDir, '*.txt', l);
if l.Count > 0 then
begin
cmbMemebers.Items.Add('--- Global files ---');
for i:=0 to l.Count-1 do
begin
ClubName := GetComboClubNameFromFile(l.Strings[i]);
if (cmbMemebers.Items.IndexOf(ClubName) = -1) then
cmbMemebers.Items.Add(ClubName)
end
end
finally
l.Free
end
end;
procedure TdmMembership.LoadClubSettings(ClubNr : Integer; var Club : TClub);
var
Section , ClubText: String;
begin
ClubText := cqrini.ReadString('Clubs', C_LIST_OF_CLUBS[ClubNr], '');
Section := C_LIST_OF_CLUBS[ClubNr] + 'Club';
Club.Name := copy(ClubText, 1, Pos(';', ClubText)-1);
Club.LongName := copy(ClubText, Pos(';', ClubText)+1, Length(ClubText) - Pos(';', ClubText)+1);
Club.NewInfo := cqrini.ReadString(Section, 'NewInfo', C_CLUB_MSG_NEW);
Club.NewBandInfo := cqrini.ReadString(Section , 'NewBandInfo', C_CLUB_MSG_BAND);
Club.NewModeInfo := cqrini.ReadString(Section , 'NewModeInfo', C_CLUB_MSG_MODE);
Club.QSLNeededInfo := cqrini.ReadString(Section , 'QSLNeededInfo', C_CLUB_MSG_QSL);
Club.AlreadyCfmInfo := cqrini.ReadString(Section , 'AlreadyConfirmedInfo', C_CLUB_MSG_CFM);
Club.ClubField := cqrini.ReadString(Section , 'ClubFields', C_CLUB_DEFAULT_CLUB_FIELD);
Club.MainFieled := cqrini.ReadString(Section , 'MainFields', C_CLUB_DEFAULT_MAIN_FIELD);
Club.StoreField := cqrini.ReadString(Section , 'StoreFields', '');
Club.StoreText := cqrini.ReadString(Section , 'StoreText', '');
Club.NewColor := cqrini.ReadInteger(Section, 'NewColor', C_CLUB_COLOR_NEW);
Club.BandColor := cqrini.ReadInteger(Section, 'BandColor', C_CLUB_COLOR_BAND);
Club.ModeColor := cqrini.ReadInteger(Section, 'ModeColor', C_CLUB_COLOR_MODE);
Club.QSLColor := cqrini.ReadInteger(Section, 'QSLColor', C_CLUB_COLOR_QSL);
Club.AlreadyColor := cqrini.ReadInteger(Section, 'AlreadyColor', C_CLUB_COLOR_QSL);
Club.DateFrom := cqrini.ReadString(Section, 'DateFrom', C_CLUB_DEFAULT_DATE_FROM)
end;
end.

View File

@ -153,7 +153,6 @@ type
procedure EnterFreq;
procedure LoadFontSettings(aForm: TForm);
procedure LoadBandLabelSettins;
procedure ReadMemberList(cmbMemebers: TComboBox);
procedure SortList(l: TStringList);
procedure RunXplanet;
procedure CloseXplanet;
@ -175,6 +174,7 @@ type
procedure LoadRigsToComboBox(CurrentRigId : String; RigCtlBinaryPath : String; RigComboBox : TComboBox);
procedure GetShorterCoordinates(latitude,longitude : Currency; var lat, long : String);
procedure LoadVisibleColumnsConfiguration(var aColumns : array of TVisibleColumn);
procedure LoadListOfFiles(Path, Mask : String; ListOfFiles : TStringList);
function StrToDateFormat(sDate : String) : TDateTime;
@ -2079,43 +2079,6 @@ begin
end;
end;
procedure TdmUtils.ReadMemberList(cmbMemebers: TComboBox);
var
res: byte;
SearchRec: TSearchRec;
f: TextFile;
ShortName: string = '';
LongName: string = '';
Ts: TStringList;
i: integer = 0;
begin
cmbMemebers.Clear;
cmbMemebers.Items.Add('');
Ts := TStringList.Create;
try
res := FindFirst(dmData.MembersDir + '*.txt', faAnyFile, SearchRec);
while Res = 0 do
begin
if FileExists(dmData.MembersDir + SearchRec.Name) then
begin
AssignFile(f, dmData.MembersDir + SearchRec.Name);
Reset(f);
ReadLn(f, ShortName);
ReadLn(f, LongName);
Ts.Add(ShortName + ';' + LongName);
CloseFile(f);
end;
Res := FindNext(SearchRec);
end;
Ts.Sort;
for i := 0 to Ts.Count - 1 do
cmbMemebers.Items.Add(Ts.Strings[i])
finally
FindClose(SearchRec);
Ts.Free
end;
end;
function TdmUtils.SetSize(Text: string; Len: integer): string;
var
i: integer;
@ -4417,5 +4380,25 @@ begin
end
end;
procedure TdmUtils.LoadListOfFiles(Path, Mask : String; ListOfFiles : TStringList);
var
res: byte;
SearchRec: TSearchRec;
begin
ListOfFiles.Clear;
try
res := FindFirst(Path + Mask, faAnyFile, SearchRec);
while res = 0 do
begin
if FileExists(Path + SearchRec.Name) then
ListOfFiles.Add(Path + SearchRec.Name);
Res := FindNext(SearchRec)
end;
ListOfFiles.Sort;
finally
FindClose(SearchRec)
end
end;
end.

View File

@ -76,7 +76,7 @@ var
implementation
{$R *.lfm}
uses dUtils, dData, uMyini;
uses dUtils, dData, uMyini, dMembership;
{ TfrmClubSettings }
procedure TfrmClubSettings.btnOKClick(Sender: TObject);
@ -104,25 +104,20 @@ end;
procedure TfrmClubSettings.FormShow(Sender: TObject);
begin
edtNewInfo.Text := cqrini.ReadString(ClubStr+'Club','NewInfo',
'New %s member! (%c #%n)');
edtNewBandInfo.Text := cqrini.ReadString(ClubStr+'Club','NewBandInfo',
'New band %s member! (%c #%n)');
edtNewModeInfo.Text := cqrini.ReadString(ClubStr+'Club','NewModeInfo',
'New mode %s member! (%c #%n)');
edtQSLNeededInfo.Text := cqrini.ReadString(ClubStr+'Club','QSLNeededInfo',
'QSL needed for %s member! (%c #%n)');
edtAlreadyCmfInfo.Text := cqrini.ReadString(ClubStr+'Club','AlreadyConfirmedInfo',
'Already confirmed %s member! (%c #%n)');
cmbClubFields.Text := cqrini.ReadString(Clubstr+'Club','ClubFields','');
cmbMainFields.Text := cqrini.ReadString(Clubstr+'Club','MainFields','');
cmbStoreFileds.Text := cqrini.ReadString(Clubstr+'Club','StoreFields','');
edtStoreText.Text := cqrini.ReadString(Clubstr+'Club','StoreText','');
cmbNewColor.Selected := cqrini.ReadInteger(Clubstr+'Club','NewColor',clRed);
cmbBandColor.Selected := cqrini.ReadInteger(Clubstr+'Club','BandColor',clBlue);
cmbModeColor.Selected := cqrini.ReadInteger(Clubstr+'Club','ModeColor',clLime);
cmbQSLColor.Selected := cqrini.ReadInteger(Clubstr+'Club','QSLColor',clFuchsia);
cmbAlreadyColor.Selected := cqrini.ReadInteger(Clubstr+'Club','AlreadyColor',0);
edtNewInfo.Text := cqrini.ReadString(ClubStr+'Club', 'NewInfo', C_CLUB_MSG_NEW);
edtNewBandInfo.Text := cqrini.ReadString(ClubStr+'Club', 'NewBandInfo', C_CLUB_MSG_BAND);
edtNewModeInfo.Text := cqrini.ReadString(ClubStr+'Club', 'NewModeInfo', C_CLUB_MSG_MODE);
edtQSLNeededInfo.Text := cqrini.ReadString(ClubStr+'Club', 'QSLNeededInfo', C_CLUB_MSG_QSL);
edtAlreadyCmfInfo.Text := cqrini.ReadString(ClubStr+'Club', 'AlreadyConfirmedInfo', C_CLUB_MSG_CFM);
cmbClubFields.Text := cqrini.ReadString(Clubstr+'Club', 'ClubFields', C_CLUB_DEFAULT_CLUB_FIELD);
cmbMainFields.Text := cqrini.ReadString(Clubstr+'Club', 'MainFields', C_CLUB_DEFAULT_MAIN_FIELD);
cmbStoreFileds.Text := cqrini.ReadString(Clubstr+'Club', 'StoreFields','');
edtStoreText.Text := cqrini.ReadString(Clubstr+'Club', 'StoreText','');
cmbNewColor.Selected := cqrini.ReadInteger(Clubstr+'Club', 'NewColor', C_CLUB_COLOR_NEW);
cmbBandColor.Selected := cqrini.ReadInteger(Clubstr+'Club', 'BandColor', C_CLUB_COLOR_BAND);
cmbModeColor.Selected := cqrini.ReadInteger(Clubstr+'Club', 'ModeColor', C_CLUB_COLOR_MODE);
cmbQSLColor.Selected := cqrini.ReadInteger(Clubstr+'Club', 'QSLColor', C_CLUB_COLOR_QSL);
cmbAlreadyColor.Selected := cqrini.ReadInteger(Clubstr+'Club', 'AlreadyColor', C_CLUB_COLOR_CFM);
dmUtils.LoadFontSettings(self);
if cmbClubFields.Text = '' then
cmbClubFields.ItemIndex := 0;

View File

@ -145,7 +145,7 @@ implementation
{$R *.lfm}
{ TfrmFilter }
uses dData, dUtils,fSelectDXCC;
uses dData, dUtils,fSelectDXCC, dMembership;
procedure TfrmFilter.btnOKClick(Sender: TObject);
var
@ -451,16 +451,16 @@ begin
cmbProfile.Items.Insert(0,'Any profile');
cmbProfile.ItemIndex := 0;
cmbMembers.Items.Add('');
if dmData.Club1.Name <> '' then
cmbMembers.Items.Add('1;'+dmData.Club1.Name+';'+dmData.Club1.LongName);
if dmData.Club2.Name <> '' then
cmbMembers.Items.Add('2;'+dmData.Club2.Name+';'+dmData.Club2.LongName);
if dmData.Club3.Name <> '' then
cmbMembers.Items.Add('3;'+dmData.Club3.Name+';'+dmData.Club3.LongName);
if dmData.Club4.Name <> '' then
cmbMembers.Items.Add('4;'+dmData.Club4.Name+';'+dmData.Club4.LongName);
if dmData.Club5.Name <> '' then
cmbMembers.Items.Add('5;'+dmData.Club5.Name+';'+dmData.Club5.LongName);
if dmMembership.Club1.Name <> '' then
cmbMembers.Items.Add('1;'+dmMembership.Club1.Name+';'+dmMembership.Club1.LongName);
if dmMembership.Club2.Name <> '' then
cmbMembers.Items.Add('2;'+dmMembership.Club2.Name+';'+dmMembership.Club2.LongName);
if dmMembership.Club3.Name <> '' then
cmbMembers.Items.Add('3;'+dmMembership.Club3.Name+';'+dmMembership.Club3.LongName);
if dmMembership.Club4.Name <> '' then
cmbMembers.Items.Add('4;'+dmMembership.Club4.Name+';'+dmMembership.Club4.LongName);
if dmMembership.Club5.Name <> '' then
cmbMembers.Items.Add('5;'+dmMembership.Club5.Name+';'+dmMembership.Club5.LongName);
cmbMembers.ItemIndex := 0;
cmbSort.ItemIndex := 0
end;

View File

@ -22,10 +22,6 @@ uses
type
TExplodeArray = Array of String;
const
cFromDate = '1945-01-01';
cToDate = '2050-12-31';
type
{ TfrmLoadClub }
@ -58,7 +54,7 @@ var
implementation
{$R *.lfm}
uses dUtils, dData, uMyIni;
uses dUtils, dData, uMyIni, dMembership;
{ TfrmLoadClub }
@ -112,6 +108,11 @@ var
day : String;
iday : Integer;
begin
if (FileExists(dmData.MembersDir + SourceFile)) then
SourceFile := dmData.MembersDir + SourceFile
else
SourceFile := dmData.GlobalMembersDir + SourceFile;
mLoad.Clear;
if not FileExists(SourceFile) then
begin
@ -212,11 +213,11 @@ begin
toDate := year + '-' + month + '-' + day
end
else
toDate := cToDate
toDate := C_CLUB_DEFAULT_DATE_TO
end
else begin
fromDate := cFromDate;
toDate := cToDate
fromDate := C_CLUB_DEFAULT_DATE_FROM;
toDate := C_CLUB_DEFAULT_DATE_TO
end;
if clubnr='' then
clubnr := call;

View File

@ -6,7 +6,7 @@ object frmNewQSO: TfrmNewQSO
HelpType = htKeyword
HelpKeyword = 'help/index.html'
Caption = 'New QSO ... (CQRLOG for Linux)'
ClientHeight = 636
ClientHeight = 659
ClientWidth = 807
Icon.Data = {
3E08010000000100010080800000010020002808010016000000280000008000
@ -2134,11 +2134,11 @@ object frmNewQSO: TfrmNewQSO
OnKeyPress = FormKeyPress
OnShow = FormShow
OnWindowStateChange = FormWindowStateChange
LCLVersion = '1.8.2.0'
LCLVersion = '1.8.0.6'
object sbNewQSO: TStatusBar
Left = 0
Height = 17
Top = 619
Height = 21
Top = 638
Width = 807
Panels = <
item
@ -2158,7 +2158,7 @@ object frmNewQSO: TfrmNewQSO
object Panel1: TPanel
Left = 0
Height = 518
Top = 101
Top = 120
Width = 807
Align = alBottom
ClientHeight = 518
@ -2186,52 +2186,52 @@ object frmNewQSO: TfrmNewQSO
TabOrder = 0
object Label11: TLabel
Left = 256
Height = 15
Height = 17
Top = 213
Width = 135
Width = 140
Caption = 'Comment to callsign'
ParentColor = False
ParentFont = False
end
object Label10: TLabel
Left = 112
Height = 15
Height = 17
Top = 55
Width = 28
Width = 31
Caption = 'QTH'
ParentColor = False
ParentFont = False
end
object Label9: TLabel
Left = 12
Height = 15
Height = 17
Top = 55
Width = 39
Width = 40
Caption = 'Name'
ParentColor = False
ParentFont = False
end
object Label8: TLabel
Left = 448
Height = 15
Height = 17
Top = 7
Width = 57
Width = 58
Caption = 'RST rcvd'
ParentColor = False
ParentFont = False
end
object Label7: TLabel
Left = 353
Height = 15
Height = 17
Top = 7
Width = 57
Width = 58
Caption = 'RST sent'
ParentColor = False
ParentFont = False
end
object lblCall: TLabel
Left = 12
Height = 15
Height = 17
Top = 7
Width = 25
Caption = 'Call'
@ -2240,88 +2240,88 @@ object frmNewQSO: TfrmNewQSO
end
object Label5: TLabel
Left = 136
Height = 15
Height = 17
Top = 7
Width = 66
Width = 71
Caption = 'Frequency'
ParentColor = False
ParentFont = False
end
object Label4: TLabel
Left = 234
Height = 15
Height = 17
Top = 7
Width = 35
Width = 39
Caption = 'Mode'
ParentColor = False
ParentFont = False
end
object Label3: TLabel
Left = 172
Height = 15
Height = 17
Top = 265
Width = 58
Width = 61
Caption = 'End time'
ParentColor = False
ParentFont = False
end
object Label2: TLabel
Left = 103
Height = 15
Height = 17
Top = 265
Width = 65
Width = 68
Caption = 'Start time'
ParentColor = False
ParentFont = False
end
object Label1: TLabel
Left = 16
Height = 15
Height = 17
Top = 265
Width = 31
Width = 33
Caption = 'Date'
ParentColor = False
ParentFont = False
end
object Label15: TLabel
Left = 258
Height = 15
Height = 17
Top = 55
Width = 33
Width = 34
Caption = 'GRID'
ParentColor = False
ParentFont = False
end
object Label12: TLabel
Left = 338
Height = 15
Height = 17
Top = 55
Width = 30
Width = 32
Caption = 'PWR'
ParentColor = False
ParentFont = False
end
object Label18: TLabel
Left = 405
Height = 15
Height = 17
Top = 55
Width = 40
Width = 43
Caption = 'QSL_S'
ParentColor = False
ParentFont = False
end
object Label19: TLabel
Left = 468
Height = 15
Height = 17
Top = 55
Width = 41
Width = 44
Caption = 'QSL_R'
ParentColor = False
ParentFont = False
end
object Label13: TLabel
Left = 16
Height = 15
Height = 17
Top = 106
Width = 22
Caption = 'ITU'
@ -2330,72 +2330,72 @@ object frmNewQSO: TfrmNewQSO
end
object Label20: TLabel
Left = 397
Height = 15
Height = 17
Top = 106
Width = 40
Width = 45
Caption = 'Award'
ParentColor = False
ParentFont = False
end
object Label21: TLabel
Left = 12
Height = 15
Height = 17
Top = 159
Width = 61
Width = 64
Caption = 'DXCC ref.'
ParentColor = False
ParentFont = False
end
object Label22: TLabel
Left = 60
Height = 15
Height = 17
Top = 106
Width = 30
Width = 33
Caption = 'WAZ'
ParentColor = False
ParentFont = False
end
object lblIOTA: TLabel
Left = 127
Height = 15
Height = 17
Top = 106
Width = 30
Width = 33
Caption = 'IOTA'
ParentColor = False
ParentFont = False
end
object Label17: TLabel
Left = 261
Height = 15
Height = 17
Top = 106
Width = 46
Width = 49
Caption = 'County'
ParentColor = False
ParentFont = False
end
object Label23: TLabel
Left = 111
Height = 15
Height = 17
Top = 159
Width = 113
Width = 120
Caption = 'Comment to QSO'
ParentColor = False
ParentFont = False
end
object lblQSLVia: TLabel
Left = 419
Height = 15
Height = 17
Top = 159
Width = 51
Width = 55
Caption = 'QSL VIA'
ParentColor = False
ParentFont = False
end
object lblQSOTakes: TLabel
Left = 12
Height = 15
Height = 17
Top = 319
Width = 72
Width = 75
Caption = 'QSO takes '
ParentColor = False
ParentFont = False
@ -2403,9 +2403,9 @@ object frmNewQSO: TfrmNewQSO
end
object lblQSLMgr: TLabel
Left = 406
Height = 15
Height = 17
Top = 213
Width = 133
Width = 141
Caption = 'QSL manager found!'
Font.Color = clRed
ParentColor = False
@ -2414,18 +2414,18 @@ object frmNewQSO: TfrmNewQSO
end
object Label25: TLabel
Left = 210
Height = 15
Height = 17
Top = 106
Width = 34
Width = 36
Caption = 'State'
ParentColor = False
ParentFont = False
end
object lblCfmLoTW: TLabel
Left = 12
Height = 15
Height = 17
Top = 212
Width = 117
Width = 122
Caption = 'QSO cfm by LoTW'
Font.Color = clRed
ParentColor = False
@ -2434,9 +2434,9 @@ object frmNewQSO: TfrmNewQSO
end
object lblQSLRcvdDate: TLabel
Left = 95
Height = 15
Height = 17
Top = 238
Width = 81
Width = 85
Caption = 'QSL rcvd on '
Font.Color = clRed
ParentColor = False
@ -2697,7 +2697,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtDXCCRef: TEdit
Left = 12
Height = 32
Height = 27
Top = 179
Width = 64
CharCase = ecUppercase
@ -2722,7 +2722,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtQTH: TEdit
Left = 111
Height = 32
Height = 27
Top = 74
Width = 136
OnEnter = edtQTHEnter
@ -2732,7 +2732,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtName: TEdit
Left = 12
Height = 32
Height = 27
Top = 74
Width = 92
OnEnter = edtNameEnter
@ -2742,7 +2742,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtMyRST: TEdit
Left = 446
Height = 32
Height = 27
Top = 25
Width = 86
OnEnter = edtMyRSTEnter
@ -2752,7 +2752,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtHisRST: TEdit
Left = 353
Height = 32
Height = 27
Top = 25
Width = 82
OnEnter = edtHisRSTEnter
@ -2762,7 +2762,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtCall: TEdit
Left = 12
Height = 32
Height = 27
Top = 25
Width = 115
CharCase = ecUppercase
@ -2775,7 +2775,7 @@ object frmNewQSO: TfrmNewQSO
end
object cmbMode: TComboBox
Left = 234
Height = 32
Height = 29
Top = 25
Width = 111
AutoComplete = True
@ -2817,7 +2817,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtGrid: TEdit
Left = 256
Height = 32
Height = 27
Top = 74
Width = 72
CharCase = ecUppercase
@ -2829,7 +2829,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtPWR: TEdit
Left = 336
Height = 32
Height = 27
Top = 74
Width = 55
CharCase = ecUppercase
@ -2839,7 +2839,7 @@ object frmNewQSO: TfrmNewQSO
end
object cmbQSL_S: TComboBox
Left = 397
Height = 32
Height = 29
Top = 74
Width = 64
AutoComplete = True
@ -2866,7 +2866,7 @@ object frmNewQSO: TfrmNewQSO
end
object cmbQSL_R: TComboBox
Left = 468
Height = 32
Height = 29
Top = 74
Width = 64
AutoComplete = True
@ -2897,7 +2897,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtAward: TEdit
Left = 392
Height = 32
Height = 27
Top = 125
Width = 140
OnEnter = edtAwardEnter
@ -2919,7 +2919,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtCounty: TEdit
Left = 256
Height = 32
Height = 27
Top = 125
Width = 126
OnEnter = edtCountyEnter
@ -2929,7 +2929,7 @@ object frmNewQSO: TfrmNewQSO
end
object cmbFreq: TComboBox
Left = 132
Height = 32
Height = 29
Top = 25
Width = 93
AutoComplete = True
@ -2943,7 +2943,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtQSL_VIA: TEdit
Left = 414
Height = 32
Height = 27
Top = 179
Width = 96
CharCase = ecUppercase
@ -2972,9 +2972,9 @@ object frmNewQSO: TfrmNewQSO
TabOrder = 26
object cbOffline: TCheckBox
Left = 0
Height = 23
Height = 24
Top = 2
Width = 69
Width = 75
Caption = 'Offline'
OnChange = cbOfflineChange
TabOrder = 0
@ -2992,7 +2992,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtDate: TEdit
Left = 12
Height = 32
Height = 27
Top = 286
Width = 86
OnEnter = edtDateEnter
@ -3003,7 +3003,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtStartTime: TEdit
Left = 113
Height = 32
Height = 27
Top = 286
Width = 48
OnEnter = edtStartTimeEnter
@ -3014,7 +3014,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtEndTime: TEdit
Left = 172
Height = 32
Height = 27
Top = 286
Width = 48
OnEnter = edtEndTimeEnter
@ -3025,7 +3025,7 @@ object frmNewQSO: TfrmNewQSO
end
object cmbIOTA: TComboBox
Left = 102
Height = 32
Height = 29
Top = 125
Width = 100
CharCase = ecUppercase
@ -3038,7 +3038,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtRemQSO: TEdit
Left = 111
Height = 32
Height = 27
Top = 179
Width = 290
OnEnter = edtRemQSOEnter
@ -3047,7 +3047,7 @@ object frmNewQSO: TfrmNewQSO
end
object edtState: TEdit
Left = 210
Height = 32
Height = 27
Top = 125
Width = 38
CharCase = ecUppercase
@ -3058,9 +3058,9 @@ object frmNewQSO: TfrmNewQSO
end
object chkAutoMode: TCheckBox
Left = 277
Height = 23
Height = 24
Top = 4
Width = 63
Width = 66
Caption = 'AUTO'
Checked = True
OnChange = chkAutoModeChange
@ -3178,13 +3178,13 @@ object frmNewQSO: TfrmNewQSO
TabOrder = 28
object tabDXCCStat: TTabSheet
Caption = 'DXCC statistic'
ClientHeight = 114
ClientWidth = 538
ClientHeight = 112
ClientWidth = 544
object sgrdStatistic: TStringGrid
Left = 0
Height = 114
Height = 112
Top = 0
Width = 538
Width = 544
Align = alClient
ColCount = 2
DefaultColWidth = 35
@ -3200,8 +3200,8 @@ object frmNewQSO: TfrmNewQSO
end
object tabSatellite: TTabSheet
Caption = 'Satellite'
ClientHeight = 114
ClientWidth = 538
ClientHeight = 112
ClientWidth = 544
object cmbPropagation: TComboBox
Left = 8
Height = 31
@ -3303,8 +3303,8 @@ object frmNewQSO: TfrmNewQSO
Top = 288
Width = 240
Caption = ' Callbook (qrz.com) '
ClientHeight = 138
ClientWidth = 238
ClientHeight = 135
ClientWidth = 236
ParentFont = False
TabOrder = 0
object mCallBook: TMemo
@ -3323,31 +3323,31 @@ object frmNewQSO: TfrmNewQSO
Top = 0
Width = 240
Caption = 'DXCC info'
ClientHeight = 264
ClientWidth = 238
ClientHeight = 261
ClientWidth = 236
ParentFont = False
TabOrder = 1
object Label27: TLabel
Left = 126
Height = 15
Height = 17
Top = 105
Width = 40
Width = 42
Caption = 'DXCC:'
ParentColor = False
ParentFont = False
end
object Label28: TLabel
Left = 10
Height = 15
Height = 17
Top = 88
Width = 34
Width = 37
Caption = 'WAZ:'
ParentColor = False
ParentFont = False
end
object Label29: TLabel
Left = 19
Height = 15
Height = 17
Top = 105
Width = 26
Caption = 'ITU:'
@ -3356,98 +3356,98 @@ object frmNewQSO: TfrmNewQSO
end
object Label30: TLabel
Left = 126
Height = 15
Height = 17
Top = 88
Width = 34
Width = 37
Caption = 'Cont:'
ParentColor = False
ParentFont = False
end
object lblWAZ: TLabel
Left = 48
Height = 15
Height = 17
Top = 88
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
end
object lblITU: TLabel
Left = 48
Height = 15
Height = 17
Top = 105
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
end
object lblDXCC: TLabel
Left = 169
Height = 15
Height = 17
Top = 105
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
end
object lblCont: TLabel
Left = 169
Height = 15
Height = 17
Top = 88
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
end
object Label31: TLabel
Left = 18
Height = 15
Height = 17
Top = 123
Width = 26
Width = 28
Caption = 'LAT:'
ParentColor = False
ParentFont = False
end
object Label32: TLabel
Left = 126
Height = 15
Height = 17
Top = 123
Width = 41
Width = 44
Caption = 'LONG:'
ParentColor = False
end
object lblLat: TLabel
Left = 48
Height = 15
Height = 17
Top = 123
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
end
object lblLong: TLabel
Left = 169
Height = 15
Height = 17
Top = 123
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
end
object Label33: TLabel
Left = 8
Height = 15
Height = 17
Top = 142
Width = 36
Width = 38
Caption = 'DIST.:'
ParentColor = False
ParentFont = False
end
object lblQRA: TLabel
Left = 48
Height = 15
Height = 17
Top = 142
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
@ -3455,17 +3455,17 @@ object frmNewQSO: TfrmNewQSO
end
object Label34: TLabel
Left = 126
Height = 15
Height = 17
Top = 142
Width = 37
Width = 40
Caption = 'AZIM:'
ParentColor = False
end
object lblAzi: TLabel
Left = 169
Height = 15
Height = 17
Top = 142
Width = 27
Width = 30
Caption = 'AAA'
ParentColor = False
ParentFont = False
@ -3483,9 +3483,9 @@ object frmNewQSO: TfrmNewQSO
end
object lblGreeting: TLabel
Left = 189
Height = 15
Height = 17
Top = 188
Width = 43
Width = 48
Caption = 'GE/GM'
Font.Color = clRed
ParentColor = False
@ -3646,45 +3646,45 @@ object frmNewQSO: TfrmNewQSO
end
object lblLocSunRise: TLabel
Left = 38
Height = 15
Height = 17
Top = 238
Width = 90
Width = 95
Caption = 'lblLocSunRise'
ParentColor = False
ParentFont = False
end
object lblLocSunSet: TLabel
Left = 156
Height = 15
Height = 17
Top = 238
Width = 83
Width = 89
Caption = 'lblLocSunSet'
ParentColor = False
ParentFont = False
end
object lblTarSunRise: TLabel
Left = 28
Height = 15
Height = 17
Top = 164
Width = 87
Width = 92
Caption = 'lblTarSunRise'
ParentColor = False
ParentFont = False
end
object lblTarSunSet: TLabel
Left = 149
Height = 15
Height = 17
Top = 164
Width = 80
Width = 86
Caption = 'lblTarSunSet'
ParentColor = False
ParentFont = False
end
object Label14: TLabel
Left = 10
Height = 15
Height = 17
Top = 213
Width = 38
Width = 40
Caption = 'Local:'
ParentColor = False
ParentFont = False
@ -3693,18 +3693,18 @@ object frmNewQSO: TfrmNewQSO
Left = 0
Height = 88
Top = 0
Width = 238
Width = 236
Align = alTop
BevelOuter = bvNone
Caption = 'Panel5'
ClientHeight = 88
ClientWidth = 238
ClientWidth = 236
TabOrder = 0
object mCountry: TMemo
Left = 0
Height = 86
Top = 2
Width = 238
Width = 236
Align = alClient
BorderSpacing.Top = 2
ParentFont = False
@ -3746,7 +3746,7 @@ object frmNewQSO: TfrmNewQSO
TabOrder = 2
object lblQSONr: TLabel
Left = 63
Height = 15
Height = 17
Top = 8
Width = 8
Caption = '0'
@ -3755,18 +3755,18 @@ object frmNewQSO: TfrmNewQSO
end
object Label24: TLabel
Left = 7
Height = 15
Height = 17
Top = 8
Width = 48
Width = 53
Caption = 'QSO nr.'
ParentColor = False
ParentFont = False
end
object lblCountryInfo: TLabel
Left = 480
Height = 15
Height = 17
Top = 8
Width = 123
Width = 129
Alignment = taRightJustify
Caption = 'New band country!'
Font.Color = clRed
@ -3775,9 +3775,9 @@ object frmNewQSO: TfrmNewQSO
end
object lblAmbiguous: TLabel
Left = 656
Height = 15
Height = 17
Top = 8
Width = 114
Width = 123
Caption = 'Ambiguous prefix'
Font.Color = clRed
ParentColor = False
@ -3786,16 +3786,16 @@ object frmNewQSO: TfrmNewQSO
end
object Label6: TLabel
Left = 99
Height = 15
Height = 17
Top = 8
Width = 85
Width = 90
Caption = 'QTH profile: '
ParentColor = False
ParentFont = False
end
object cmbProfiles: TComboBox
Left = 187
Height = 32
Height = 29
Top = 3
Width = 281
ItemHeight = 0
@ -3808,7 +3808,7 @@ object frmNewQSO: TfrmNewQSO
end
object dbgrdQSOBefore: TDBGrid
Left = 0
Height = 101
Height = 120
Top = 0
Width = 807
Align = alClient

View File

@ -1211,12 +1211,6 @@ begin
frmRotControl.BringToFront
end;
if cqrini.ReadBool('Window','Dxcluster',False) then
begin
frmDXCluster.Show;
frmDXCluster.BringToFront
end;
if frmTRXControl.Showing then
begin
if frmTRXControl.rbRadio1.Checked then
@ -1281,10 +1275,17 @@ begin
if cqrini.ReadBool('Window','CWType',False) then
acCWType.Execute;
CheckForExternalTablesUpdate;
if cqrini.ReadBool('Window','RBNMonitor',False) then
acRBNMonitor.Execute;
CheckForExternalTablesUpdate;
if cqrini.ReadBool('Window','Dxcluster',False) then
begin
frmDXCluster.Show;
frmDXCluster.BringToFront
end;
pgDetails.Pages[1].TabVisible := cqrini.ReadBool('NewQSO','SatelliteMode', False);
@ -5782,19 +5783,19 @@ begin
frmQSODetails.mode := cmbMode.Text;
frmQSODetails.freq := cmbFreq.Text;
frmQSODetails.ClubDate := edtDate.Text;
if dmData.Club1.MainFieled = 'idcall' then
if dmMembership.Club1.MainFieled = 'idcall' then
frmQSODetails.ClubData1 := idcall;
if dmData.Club2.MainFieled = 'idcall' then
if dmMembership.Club2.MainFieled = 'idcall' then
frmQSODetails.ClubData2 := idcall;
if dmData.Club3.MainFieled = 'idcall' then
if dmMembership.Club3.MainFieled = 'idcall' then
frmQSODetails.ClubData3 := idcall;
if dmData.Club4.MainFieled = 'idcall' then
if dmMembership.Club4.MainFieled = 'idcall' then
frmQSODetails.ClubData4 := idcall;
if dmData.Club5.MainFieled = 'idcall' then
if dmMembership.Club5.MainFieled = 'idcall' then
frmQSODetails.ClubData5 := idcall;
end;
@ -5803,19 +5804,19 @@ begin
frmQSODetails.mode := cmbMode.Text;
frmQSODetails.freq := cmbFreq.Text;
frmQSODetails.ClubDate := edtDate.Text;
if dmData.Club1.MainFieled = 'qth' then
if dmMembership.Club1.MainFieled = 'qth' then
frmQSODetails.ClubData1 := edtQTH.Text;
if dmData.Club2.MainFieled = 'qth' then
if dmMembership.Club2.MainFieled = 'qth' then
frmQSODetails.ClubData2 := edtQTH.Text;
if dmData.Club3.MainFieled = 'qth' then
if dmMembership.Club3.MainFieled = 'qth' then
frmQSODetails.ClubData3 := edtQTH.Text;
if dmData.Club4.MainFieled = 'qth' then
if dmMembership.Club4.MainFieled = 'qth' then
frmQSODetails.ClubData4 := edtQTH.Text;
if dmData.Club5.MainFieled = 'qth' then
if dmMembership.Club5.MainFieled = 'qth' then
frmQSODetails.ClubData5 := edtQTH.Text;
end;
@ -5824,19 +5825,19 @@ begin
frmQSODetails.mode := cmbMode.Text;
frmQSODetails.freq := cmbFreq.Text;
frmQSODetails.ClubDate := edtDate.Text;
if dmData.Club1.MainFieled = 'award' then
if dmMembership.Club1.MainFieled = 'award' then
frmQSODetails.ClubData1 := edtAward.Text;
if dmData.Club2.MainFieled = 'award' then
if dmMembership.Club2.MainFieled = 'award' then
frmQSODetails.ClubData2 := edtAward.Text;
if dmData.Club3.MainFieled = 'award' then
if dmMembership.Club3.MainFieled = 'award' then
frmQSODetails.ClubData3 := edtAward.Text;
if dmData.Club4.MainFieled = 'award' then
if dmMembership.Club4.MainFieled = 'award' then
frmQSODetails.ClubData4 := edtAward.Text;
if dmData.Club5.MainFieled = 'award' then
if dmMembership.Club5.MainFieled = 'award' then
frmQSODetails.ClubData5 := edtAward.Text;
end;
@ -5845,19 +5846,19 @@ begin
frmQSODetails.mode := cmbMode.Text;
frmQSODetails.freq := cmbFreq.Text;
frmQSODetails.ClubDate := edtDate.Text;
if dmData.Club1.MainFieled = 'county' then
if dmMembership.Club1.MainFieled = 'county' then
frmQSODetails.ClubData1 := edtCounty.Text;
if dmData.Club2.MainFieled = 'county' then
if dmMembership.Club2.MainFieled = 'county' then
frmQSODetails.ClubData2 := edtCounty.Text;
if dmData.Club3.MainFieled = 'county' then
if dmMembership.Club3.MainFieled = 'county' then
frmQSODetails.ClubData3 := edtCounty.Text;
if dmData.Club4.MainFieled = 'county' then
if dmMembership.Club4.MainFieled = 'county' then
frmQSODetails.ClubData4 := edtCounty.Text;
if dmData.Club5.MainFieled = 'county' then
if dmMembership.Club5.MainFieled = 'county' then
frmQSODetails.ClubData5 := edtCounty.Text;
end;
@ -5911,19 +5912,19 @@ begin
frmQSODetails.mode := cmbMode.Text;
frmQSODetails.freq := cmbFreq.Text;
frmQSODetails.ClubDate := edtDate.Text;
if dmData.Club1.MainFieled = 'state' then
if dmMembership.Club1.MainFieled = 'state' then
frmQSODetails.ClubData1 := edtState.Text;
if dmData.Club2.MainFieled = 'state' then
if dmMembership.Club2.MainFieled = 'state' then
frmQSODetails.ClubData2 := edtState.Text;
if dmData.Club3.MainFieled = 'state' then
if dmMembership.Club3.MainFieled = 'state' then
frmQSODetails.ClubData3 := edtState.Text;
if dmData.Club4.MainFieled = 'state' then
if dmMembership.Club4.MainFieled = 'state' then
frmQSODetails.ClubData4 := edtState.Text;
if dmData.Club5.MainFieled = 'state' then
if dmMembership.Club5.MainFieled = 'state' then
frmQSODetails.ClubData5 := edtState.Text;
end;

File diff suppressed because it is too large Load Diff

View File

@ -1046,6 +1046,8 @@ type
wasOnlineLogSupportEnabled : Boolean;
procedure SaveClubSection;
procedure LoadMebershipCombo;
procedure LoadMembersFromCombo(ClubComboText, ClubNumber : String);
public
{ public declarations }
ActPageIdx : integer;
@ -1678,82 +1680,27 @@ end;
procedure TfrmPreferences.btnLoadFifthClick(Sender: TObject);
begin
if cmbFifthClub.Text = '' then
exit;
with TfrmLoadClub.Create(self) do
try
TypOfLoad := 0;
DBnum := '5';
SourceFile := dmData.MembersDir + LowerCase(
copy(cmbFifthClub.Text, 1, Pos(';', cmbFifthClub.Text) - 1)) + '.txt';
ShowModal
finally
Free
end;
LoadMembersFromCombo(cmbFifthClub.Text, '5')
end;
procedure TfrmPreferences.btnLoadFirstClick(Sender: TObject);
begin
if cmbFirstClub.Text = '' then
exit;
with TfrmLoadClub.Create(self) do
try
TypOfLoad := 0;
DBnum := '1';
SourceFile := dmData.MembersDir + LowerCase(
copy(cmbFirstClub.Text, 1, Pos(';', cmbFirstClub.Text) - 1)) + '.txt';
ShowModal
finally
Free
end;
LoadMembersFromCombo(cmbFirstClub.Text, '1')
end;
procedure TfrmPreferences.btnLoadFourthClick(Sender: TObject);
begin
if cmbFourthClub.Text = '' then
exit;
with TfrmLoadClub.Create(self) do
try
TypOfLoad := 0;
DBnum := '4';
SourceFile := dmData.MembersDir + LowerCase(
copy(cmbFourthClub.Text, 1, Pos(';', cmbFourthClub.Text) - 1)) + '.txt';
ShowModal;
finally
Free
end;
LoadMembersFromCombo(cmbFourthClub.Text, '4')
end;
procedure TfrmPreferences.btnLoadSecondClick(Sender: TObject);
begin
if cmbSecondClub.Text = '' then
exit;
with TfrmLoadClub.Create(self) do
try
TypOfLoad := 0;
DBnum := '2';
SourceFile := dmData.MembersDir + LowerCase(
copy(cmbSecondClub.Text, 1, Pos(';', cmbSecondClub.Text) - 1)) + '.txt';
ShowModal
finally
Free
end;
LoadMembersFromCombo(cmbSecondClub.Text, '2')
end;
procedure TfrmPreferences.btnLoadThirdClick(Sender: TObject);
begin
if cmbThirdClub.Text = '' then
exit;
with TfrmLoadClub.Create(self) do
try
TypOfLoad := 0;
DBnum := '3';
SourceFile := dmData.MembersDir + LowerCase(
copy(cmbThirdClub.Text, 1, Pos(';', cmbThirdClub.Text) - 1)) + '.txt';
ShowModal
finally
Free
end;
LoadMembersFromCombo(cmbThirdClub.Text, '3')
end;
procedure TfrmPreferences.btnSelbFontClick(Sender: TObject);
@ -2425,22 +2372,15 @@ var
i: integer;
begin
dmUtils.LoadFontSettings(self);
dmUtils.ReadMemberList(cmbFirstClub);
dmUtils.ReadZipList(cmbFirstZip);
dmUtils.InsertModes(cmbDefaultMode);
dmUtils.InsertModes(cmbMode);
dmUtils.InsertModes(cmbWsjtDefaultMode);
cmbDefaultMode.ReadOnly := True;
cmbWsjtDefaultMode.ReadOnly := True;
for i := 0 to cmbFirstClub.Items.Count - 1 do
begin
cmbSecondClub.Items.Add(cmbFirstClub.Items[i]);
cmbThirdClub.Items.Add(cmbFirstClub.Items[i]);
cmbFourthClub.Items.Add(cmbFirstClub.Items[i]);
cmbFifthClub.Items.Add(cmbFirstClub.Items[i]);
end;
LoadMebershipCombo;
dmUtils.ReadZipList(cmbFirstZip);
for i := 0 to cmbFirstZip.Items.Count - 1 do
begin
cmbSecondZip.Items.Add(cmbFirstZip.Items[i]);
@ -2862,11 +2802,11 @@ begin
edtHtmlFiles.Text := cqrini.ReadString('ExtView', 'html', 'firefox');
chkIntQSLViewer.Checked := cqrini.ReadBool('ExtView', 'QSL', True);
edtClub1Date.Text := cqrini.ReadString('FirstClub', 'DateFrom', '1945-01-01');
edtClub2Date.Text := cqrini.ReadString('SecondClub', 'DateFrom', '1945-01-01');
edtClub3Date.Text := cqrini.ReadString('ThirdClub', 'DateFrom', '1945-01-01');
edtClub4Date.Text := cqrini.ReadString('FourthClub', 'DateFrom', '1945-01-01');
edtClub5Date.Text := cqrini.ReadString('FifthClub', 'DateFrom', '1945-01-01');
edtClub1Date.Text := cqrini.ReadString('FirstClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
edtClub2Date.Text := cqrini.ReadString('SecondClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
edtClub3Date.Text := cqrini.ReadString('ThirdClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
edtClub4Date.Text := cqrini.ReadString('FourthClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
edtClub5Date.Text := cqrini.ReadString('FifthClub', 'DateFrom', C_CLUB_DEFAULT_DATE_FROM);
edtCbUser.Text := cqrini.ReadString('CallBook', 'CBUser', '');
edtCbPass.Text := cqrini.ReadString('CallBook', 'CBPass', '');
@ -2968,5 +2908,65 @@ begin
cqrini.WriteBool('Clubs', 'CheckForUpdate', chkCheckMembershipUpdate.Checked)
end;
procedure TfrmPreferences.LoadMebershipCombo;
var
i : Integer;
Club1 : String;
Club2 : String;
Club3 : String;
Club4 : String;
Club5 : String;
begin
Club1 := cmbFirstClub.Text;
Club2 := cmbSecondClub.Text;
Club3 := cmbThirdClub.Text;
Club4 := cmbFourthClub.Text;
Club5 := cmbFifthClub.Text;
cmbSecondClub.Items.Clear;
cmbThirdClub.Items.Clear;
cmbFourthClub.Items.Clear;
cmbFifthClub.Items.Clear;
dmMembership.ReadMemberList(cmbFirstClub);
for i := 0 to cmbFirstClub.Items.Count - 1 do
begin
cmbSecondClub.Items.Add(cmbFirstClub.Items[i]);
cmbThirdClub.Items.Add(cmbFirstClub.Items[i]);
cmbFourthClub.Items.Add(cmbFirstClub.Items[i]);
cmbFifthClub.Items.Add(cmbFirstClub.Items[i]);
end;
cmbFirstClub.ItemIndex := cmbFirstClub.Items.IndexOf(Club1);
cmbSecondClub.ItemIndex := cmbSecondClub.Items.IndexOf(Club2);
cmbThirdClub.ItemIndex := cmbThirdClub.Items.IndexOf(Club3);
cmbFourthClub.ItemIndex := cmbFourthClub.Items.IndexOf(Club4);
cmbFifthClub.ItemIndex := cmbFifthClub.Items.IndexOf(Club5)
end;
procedure TfrmPreferences.LoadMembersFromCombo(ClubComboText, ClubNumber : String);
var
MemberFileName : String;
begin
if (ClubComboText = '') or (Pos('---', ClubComboText) > 0) then
exit;
MemberFileName := dmMembership.GetClubFileName(ClubComboText);
with TfrmLoadClub.Create(self) do
try
TypOfLoad := 0;
DBnum := ClubNumber;
SourceFile := MemberFileName;
ShowModal
finally
Free
end;
if not FileExists(dmData.MembersDir + MemberFileName) then
CopyFile(dmData.GlobalMembersDir + MemberFileName, dmData.MembersDir + MemberFileName);
LoadMebershipCombo
end;
end.

View File

@ -129,7 +129,7 @@ implementation
{$R *.lfm}
{ TfrmQSODetails }
uses dUtils, dData, fNewQSO, uMyIni;
uses dUtils, dData, fNewQSO, uMyIni, dMembership;
{
%l - long club name
@ -407,11 +407,11 @@ begin
if data = '' then
exit;
case num of
1 : begin Club := dmData.Club1; ClubInfo := @LClub1 end;
2 : begin Club := dmData.Club2; ClubInfo := @LClub2 end;
3 : begin Club := dmData.Club3; ClubInfo := @LClub3 end;
4 : begin Club := dmData.Club4; ClubInfo := @LClub4 end;
5 : begin Club := dmData.Club5; ClubInfo := @LClub5 end
1 : begin Club := dmMembership.Club1; ClubInfo := @LClub1 end;
2 : begin Club := dmMembership.Club2; ClubInfo := @LClub2 end;
3 : begin Club := dmMembership.Club3; ClubInfo := @LClub3 end;
4 : begin Club := dmMembership.Club4; ClubInfo := @LClub4 end;
5 : begin Club := dmMembership.Club5; ClubInfo := @LClub5 end
end;
if Club.Name = '' then
exit;

View File

@ -52,23 +52,23 @@ implementation
{$R *.lfm}
{ TfrmRebuildMembStat }
uses dUtils, dData, uMyIni, dLogUpload;
uses dUtils, dData, uMyIni, dLogUpload, dMembership;
procedure TfrmRebuildMembStat.FormShow(Sender: TObject);
begin
dmUtils.LoadWindowPos(frmRebuildMembStat);
chkRebClub1.Caption := dmData.Club1.LongName;
chkRebClub2.Caption := dmData.Club2.LongName;
chkRebClub3.Caption := dmData.Club3.LongName;
chkRebClub4.Caption := dmData.Club4.LongName;
chkRebClub5.Caption := dmData.Club5.LongName;
chkRebClub1.Caption := dmMembership.Club1.LongName;
chkRebClub2.Caption := dmMembership.Club2.LongName;
chkRebClub3.Caption := dmMembership.Club3.LongName;
chkRebClub4.Caption := dmMembership.Club4.LongName;
chkRebClub5.Caption := dmMembership.Club5.LongName;
edtSince1.Text := dmData.Club1.DateFrom;
edtSince2.Text := dmData.Club2.DateFrom;
edtSince3.Text := dmData.Club3.DateFrom;
edtSince4.Text := dmData.Club4.DateFrom;
edtSince5.Text := dmData.Club5.DateFrom;
edtSince1.Text := dmMembership.Club1.DateFrom;
edtSince2.Text := dmMembership.Club2.DateFrom;
edtSince3.Text := dmMembership.Club3.DateFrom;
edtSince4.Text := dmMembership.Club4.DateFrom;
edtSince5.Text := dmMembership.Club5.DateFrom;
chkRebClub1.Enabled := chkRebClub1.Caption<>'';
edtSince1.Enabled := chkRebClub1.Caption<>'';
@ -163,35 +163,35 @@ begin
if chkRebClub1.Checked then
begin
UpdateClub(dmData.Club1,'1',edtSince1.Text);
UpdateClub(dmMembership.Club1,'1',edtSince1.Text);
lblDone1.Visible := True;
Application.ProcessMessages
end;
if chkRebClub2.Checked then
begin
UpdateClub(dmData.Club2,'2',edtSince2.Text);
UpdateClub(dmMembership.Club2,'2',edtSince2.Text);
lblDone2.Visible := True;
Application.ProcessMessages
end;
if chkRebClub3.Checked then
begin
UpdateClub(dmData.Club3,'3',edtSince3.Text);
UpdateClub(dmMembership.Club3,'3',edtSince3.Text);
lblDone3.Visible := True;
Application.ProcessMessages
end;
if chkRebClub4.Checked then
begin
UpdateClub(dmData.Club4,'4',edtSince4.Text);
UpdateClub(dmMembership.Club4,'4',edtSince4.Text);
lblDone4.Visible := True;
Application.ProcessMessages
end;
if chkRebClub5.Checked then
begin
UpdateClub(dmData.Club5,'5',edtSince5.Text);
UpdateClub(dmMembership.Club5,'5',edtSince5.Text);
lblDone5.Visible := True;
Application.ProcessMessages
end