pochecker: Move reading mainform size into OnShow event to avoid unnecessary size scaling.

git-svn-id: trunk@65131 -
This commit is contained in:
wp 2021-05-25 12:02:53 +00:00
parent fe6e63ed13
commit e4eac5dffe

View File

@ -79,6 +79,7 @@ type
procedure AddToMasterPoList(S: TStrings); procedure AddToMasterPoList(S: TStrings);
procedure SetSelectedMasterFiles(S: TStrings); procedure SetSelectedMasterFiles(S: TStrings);
procedure ApplyConfig; procedure ApplyConfig;
procedure ApplyGeometry;
procedure SaveConfig; procedure SaveConfig;
function LangFilterIndexToLangID(Index: Integer): TLangID; function LangFilterIndexToLangID(Index: Integer): TLangID;
function LangIdToLangFilterIndex(LangID: TLangID): Integer; function LangIdToLangFilterIndex(LangID: TLangID): Integer;
@ -175,6 +176,7 @@ end;
procedure TPoCheckerForm.FormShow(Sender: TObject); procedure TPoCheckerForm.FormShow(Sender: TObject);
begin begin
ApplyGeometry;
WindowState := FPoCheckerSettings.MainFormWindowState; WindowState := FPoCheckerSettings.MainFormWindowState;
SetSelectedMasterFiles(FPoCheckerSettings.MasterPoSelList); SetSelectedMasterFiles(FPoCheckerSettings.MasterPoSelList);
end; end;
@ -513,18 +515,9 @@ end;
procedure TPoCheckerForm.ApplyConfig; procedure TPoCheckerForm.ApplyConfig;
var var
ARect: TRect;
Abbr: String; Abbr: String;
ID: TLangID; ID: TLangID;
begin begin
ARect := FPoCheckerSettings.MainFormGeometry;
if not IsDefaultRect(ARect) and IsValidRect(ARect) then
begin
ARect.Width := Scale96ToForm(ARect.Width);
ARect.Height := Scale96ToForm(ARect.Height);
ARect := FitToRect(ARect, Screen.WorkAreaRect);
BoundsRect := ARect;
end;
SetTestTypeCheckBoxes(FPoCheckerSettings.TestTypes); SetTestTypeCheckBoxes(FPoCheckerSettings.TestTypes);
SelectDirectoryDialog.Filename := FPoCheckerSettings.SelectDirectoryFilename; SelectDirectoryDialog.Filename := FPoCheckerSettings.SelectDirectoryFilename;
Abbr := FPoCheckerSettings.LangFilterLanguageAbbr; Abbr := FPoCheckerSettings.LangFilterLanguageAbbr;
@ -533,11 +526,22 @@ begin
AddToMasterPoList(FPoCheckerSettings.MasterPoList); AddToMasterPoList(FPoCheckerSettings.MasterPoList);
end; end;
procedure TPoCheckerForm.ApplyGeometry;
var
ARect: TRect;
begin
ARect := FPoCheckerSettings.MainFormGeometry;
if not IsDefaultRect(ARect) and IsValidRect(ARect) then
begin
ARect := FitToRect(ARect, Screen.WorkAreaRect);
BoundsRect := ARect;
end;
end;
procedure TPoCheckerForm.SaveConfig; procedure TPoCheckerForm.SaveConfig;
var var
SL: TStringList; SL: TStringList;
ID: TLangID; ID: TLangID;
R: TRect;
begin begin
FPoCheckerSettings.SelectDirectoryFilename := SelectDirectoryDialog.Filename; FPoCheckerSettings.SelectDirectoryFilename := SelectDirectoryDialog.Filename;
//FPoCheckerSettings.LangFilterIndex := LangFilter.ItemIndex; //FPoCheckerSettings.LangFilterIndex := LangFilter.ItemIndex;
@ -546,18 +550,9 @@ begin
FPoCheckerSettings.TestTypes := GetTestTypesFromListBox; FPoCheckerSettings.TestTypes := GetTestTypesFromListBox;
FPoCheckerSettings.MainFormWindowState := WindowState; FPoCheckerSettings.MainFormWindowState := WindowState;
if (WindowState = wsNormal) then if (WindowState = wsNormal) then
begin FPoCheckerSettings.MainFormGeometry := BoundsRect
R := BoundsRect;
R.Width := ScaleFormTo96(R.Width);
R.Height := ScaleFormTo96(R.Height);
FPoCheckerSettings.MainFormGeometry := R;
end
else else
begin FPoCheckerSettings.MainFormGeometry := Rect(RestoredLeft, RestoredTop, RestoredLeft+RestoredWidth, RestoredTop+RestoredHeight);
R := Rect(0, 0, ScaleFormTo96(RestoredWidth), ScaleFormTo96(RestoredHeight));
OffsetRect(R, RestoredLeft, RestoredTop);
FPoCheckerSettings.MainFormGeometry := R;
end;
FPoCheckerSettings.MasterPoList := MasterPoListBox.Items; FPoCheckerSettings.MasterPoList := MasterPoListBox.Items;
SL := GetSelectedMasterFiles; SL := GetSelectedMasterFiles;
try try