fpspreadsheet: Control position of search dialog and confirmation dialog.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4319 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2015-09-09 15:26:11 +00:00
parent e633cfc677
commit 1641355a19
2 changed files with 41 additions and 1 deletions

View File

@@ -380,6 +380,9 @@ uses
sCSVParamsForm, sCurrencyForm, sFormatSettingsForm, sSortParamsForm, sCSVParamsForm, sCurrencyForm, sFormatSettingsForm, sSortParamsForm,
sHyperlinkForm, sNumFormatForm, sSearchForm; sHyperlinkForm, sNumFormatForm, sSearchForm;
var
SEARCH_DLG_POS: TPoint = (X: -1; Y: -1);
function CreateIni: TCustomIniFile; function CreateIni: TCustomIniFile;
begin begin
Result := TMemIniFile.Create(GetAppConfigFile(false)); Result := TMemIniFile.Create(GetAppConfigFile(false));
@@ -496,7 +499,15 @@ end;
procedure TMainForm.AcSearchExecute(Sender: TObject); procedure TMainForm.AcSearchExecute(Sender: TObject);
begin begin
if SearchForm = nil then if SearchForm = nil then
SearchForm := TSearchForm.Create(self); SearchForm := TSearchForm.Create(self)
else
if not SearchForm.Showing then
begin
SearchForm.Position := poDesigned;
SearchForm.Left := SEARCH_DLG_POS.X;
SearchForm.Top := SEARCH_DLG_POS.Y;
end else
SearchForm.BringToFront;
SearchForm.OnFound := @SearchFound; SearchForm.OnFound := @SearchFound;
SearchForm.OnClose := @SearchClose; SearchForm.OnClose := @SearchClose;
SearchForm.SearchParams := DefaultSearchParams; SearchForm.SearchParams := DefaultSearchParams;
@@ -611,6 +622,8 @@ begin
Unused(CloseAction); Unused(CloseAction);
DefaultSearchParams := TSearchForm(Sender).SearchParams; DefaultSearchParams := TSearchForm(Sender).SearchParams;
DefaultReplaceParams := TSearchForm(Sender).ReplaceParams; DefaultReplaceParams := TSearchForm(Sender).ReplaceParams;
SEARCH_DLG_POS.X := SearchForm.Left;
SEARCH_DLG_POS.Y := SearchForm.Top;
end; end;
procedure TMainForm.SearchFound(Sender: TObject; AFound: Boolean; procedure TMainForm.SearchFound(Sender: TObject; AFound: Boolean;

View File

@@ -104,19 +104,46 @@ const
SEARCH_TAB = 0; SEARCH_TAB = 0;
REPLACE_TAB = 1; REPLACE_TAB = 1;
var
CONFIRM_REPLACEMENT_DLG_X: Integer = -1;
CONFIRM_REPLACEMENT_DLG_Y: Integer = -1;
{ TSearchForms } { TSearchForms }
procedure TSearchForm.ConfirmReplacementHandler(Sender: TObject; procedure TSearchForm.ConfirmReplacementHandler(Sender: TObject;
AWorksheet: TsWorksheet; ARow, ACol: Cardinal; const ASearchText, AReplaceText: String; AWorksheet: TsWorksheet; ARow, ACol: Cardinal; const ASearchText, AReplaceText: String;
var AConfirmReplacement: TsConfirmReplacementResult); var AConfirmReplacement: TsConfirmReplacementResult);
var
F: TForm;
begin begin
Unused(AWorksheet, ARow, ACol); Unused(AWorksheet, ARow, ACol);
Unused(ASearchText, AReplaceText); Unused(ASearchText, AReplaceText);
F := CreateMessageDialog('Replace?', mtConfirmation, [mbYes, mbNo, mbCancel]);
try
if (CONFIRM_REPLACEMENT_DLG_X = -1) then
F.Position := poMainformCenter
else begin
F.Position := poDesigned;
F.Left := CONFIRM_REPLACEMENT_DLG_X;
F.Top := CONFIRM_REPLACEMENT_DLG_Y;
end;
case F.ShowModal of
mrYes: AConfirmReplacement := crReplace;
mrNo : AConfirmReplacement := crIgnore;
mrCancel: AConfirmReplacement := crAbort;
end;
CONFIRM_REPLACEMENT_DLG_X := F.Left;
CONFIRM_REPLACEMENT_DLG_Y := F.Top;
finally
F.Free;
end;
{
case MessageDlg('Replace?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of case MessageDlg('Replace?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of
mrYes: AConfirmReplacement := crReplace; mrYes: AConfirmReplacement := crReplace;
mrNo : AConfirmReplacement := crIgnore; mrNo : AConfirmReplacement := crIgnore;
mrCancel: AConfirmReplacement := crAbort; mrCancel: AConfirmReplacement := crAbort;
end; end;
}
end; end;
procedure TSearchForm.Execute(AWorkbook: TsWorkbook); procedure TSearchForm.Execute(AWorkbook: TsWorkbook);