From 39c609f2d9e2c5abce5e165e297475255aced17e Mon Sep 17 00:00:00 2001 From: Paul McGee Date: Wed, 16 Dec 2020 10:10:56 +0800 Subject: [PATCH 1/5] typo / spelling --- Source/EnviroFrm.dfm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/EnviroFrm.dfm b/Source/EnviroFrm.dfm index 83bdc1bd..f9a575c9 100644 --- a/Source/EnviroFrm.dfm +++ b/Source/EnviroFrm.dfm @@ -656,7 +656,7 @@ object EnviroForm: TEnviroForm 'Glossy' 'Calypso' 'Flat UI Light' - 'Material Pattens Blue') + 'Material Patterns Blue') ParentCtl3D = False TabOrder = 2 OnClick = ListBoxStyleClick From 8679b7f88f8974435276c2943048ef156d55776c Mon Sep 17 00:00:00 2001 From: paul mcgee Date: Wed, 16 Dec 2020 11:45:29 +0800 Subject: [PATCH 2/5] Close correct editor tab The tab being closed may not be the current tab with cursor / focus. Closing a tab mutates the PageControl array, so we count down through it. I'm dubious about the use of TTask in PageControlCloseButtonMouseUp. --- Source/main.pas | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Source/main.pas b/Source/main.pas index bbea1ea0..805d6695 100644 --- a/Source/main.pas +++ b/Source/main.pas @@ -612,6 +612,7 @@ TMainForm = class(TForm) procedure actSaveAsExecute(Sender: TObject); procedure actSaveAllExecute(Sender: TObject); procedure actCloseExecute(Sender: TObject); + procedure actCloseExecuteByTab(Sender: TObject; CloseEditor:TEditor = nil); procedure actCloseAllExecute(Sender: TObject); procedure actCloseProjectExecute(Sender: TObject); procedure actExportHTMLExecute(Sender: TObject); @@ -2193,10 +2194,18 @@ procedure TMainForm.actSaveAllExecute(Sender: TObject); end; procedure TMainForm.actCloseExecute(Sender: TObject); +begin + actCloseExecuteByTab(Sender); +end; + +procedure TMainForm.actCloseExecuteByTab(Sender: TObject; CloseEditor:TEditor = nil); var e: TEditor; begin - e := fEditorList.GetEditor; + if CloseEditor = nil then + e := fEditorList.GetEditor + else + e := CloseEditor; if Assigned(e) then fEditorList.CloseEditor(e); @@ -4451,7 +4460,7 @@ procedure TMainForm.EditorPageControlMouseDown(Sender: TObject; Button: TMouseBu if Button = mbLeft then begin - for I := 0 to PageControl.PageCount - 1 do + for I := PageControl.PageCount - 1 downto 0 do // tabs can disappear begin if not (PageControl.Pages[i] is TCloseTabSheet) then Continue; TabSheet:=PageControl.Pages[i] as TCloseTabSheet; @@ -7335,12 +7344,13 @@ procedure TMainForm.PageControlCloseButtonMouseDown(Sender: TObject; I: Integer; PageControl: TPageControl; TabSheet: TCloseTabSheet; + e: TEditor; begin PageControl := Sender as TPageControl; if Button = mbLeft then begin - for I := 0 to PageControl.PageCount - 1 do + for I := PageControl.PageCount - 1 downto 0 do // tabs can disappear begin if not (PageControl.Pages[i] is TCloseTabSheet) then Continue; TabSheet:=PageControl.Pages[i] as TCloseTabSheet; @@ -7349,6 +7359,8 @@ procedure TMainForm.PageControlCloseButtonMouseDown(Sender: TObject; FCloseButtonMouseDownTab := TabSheet; FCloseButtonShowPushed := True; PageControl.Repaint; + e := fEditorList.GetEditor(I,PageControl); // determine tab being closed + actCloseExecuteByTab(Sender, e); end; end; end; @@ -7398,7 +7410,7 @@ procedure TMainForm.PageControlCloseButtonMouseUp(Sender: TObject; TThread.Synchronize(nil, procedure begin //FCloseButtonMouseDownTab.DoClose; //FCloseButtonMouseDownTab := nil; - actCloseExecute(Sender); + //actCloseExecute(Sender); // can close wrong tab PageControl.Repaint; end); end); From 8d963c5b4089756ac35ac1ddac31a4ffcdb767ed Mon Sep 17 00:00:00 2001 From: paul mcgee Date: Wed, 16 Dec 2020 17:28:34 +0800 Subject: [PATCH 3/5] Modifications to prevent 'Windows Classic' related RT216 error Moved Style change out of Environment Form Try/Finally. OnExit hide form and change style to non-Windows Classic. * Probably needs hard-coded style changed to an auto choice * --- Source/main.pas | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/main.pas b/Source/main.pas index 805d6695..e31deee3 100644 --- a/Source/main.pas +++ b/Source/main.pas @@ -1097,6 +1097,13 @@ procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); SaveOptions; + // -- -- -- -- -- -- -- -- -- -- -- -- -- + // This is a cheat. Also don't hard-code 'Windows10'. + // -- -- -- -- -- -- -- -- -- -- -- -- -- + MainForm.Visible := false; + TStyleManager.TrySetStyle('Windows10'); + // -- -- -- -- -- -- -- -- -- -- -- -- -- + Action := caFree; end; @@ -3417,6 +3424,10 @@ procedure TMainForm.actEnviroOptionsExecute(Sender: TObject); // Rebuild recent file list (max count could have changed dmMain.RebuildMRU; + end; + finally + Close; + end; //Load Delphi Style if devData.StyleChange then begin @@ -3428,10 +3439,6 @@ procedure TMainForm.actEnviroOptionsExecute(Sender: TObject); else Loadtheme; end; - end; - finally - Close; - end; end; procedure TMainForm.actUpdatePageCount(Sender: TObject); From fadf0355852f195e580a19eb868285daedb92a87 Mon Sep 17 00:00:00 2001 From: paul mcgee Date: Wed, 16 Dec 2020 20:39:16 +0800 Subject: [PATCH 4/5] Fix my error. Save DFM as Text. --- Source/CPUFrm.dfm | Bin 3527 -> 6165 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Source/CPUFrm.dfm b/Source/CPUFrm.dfm index d696fd6bd835e52dcb8e6c83667987c5f54cd69a..58e2d8b4b36de98c6742a26a93ec9ac914d0a8b2 100644 GIT binary patch literal 6165 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 From f4af51315e5ad0992075e0b65e460112c3add046 Mon Sep 17 00:00:00 2001 From: paul mcgee Date: Fri, 18 Dec 2020 00:56:58 +0800 Subject: [PATCH 5/5] Fix mis-aligned Welcome screen buttons & labels --- Source/main.pas | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Source/main.pas b/Source/main.pas index e31deee3..e7f525dc 100644 --- a/Source/main.pas +++ b/Source/main.pas @@ -7207,18 +7207,22 @@ procedure TMainForm.ResizeWelcomeComponent; LabelView.Left := (PageControlPanel.Width div 4) - (LabelView.Width + 30); LabelDocumentation.Left := (PageControlPanel.Width div 4) - 23; LabelHotkeys.Left := (PageControlPanel.Width div 4) - (LabelHotkeys.Width div 2); - LabelOpen.Left := (PageControlPanel.Width div 4) - 35; - LabelSave.Left := (PageControlPanel.Width div 4) - 33; - LabelZoom.Left := (PageControlPanel.Width div 4) - 38; - LabelRun.Left := (PageControlPanel.Width div 4) - 28; - LabelCompile.Left := (PageControlPanel.Width div 4) - 50; - LabelClear.left := (PageControlPanel.Width div 4) - 34; - PanelDescOpen.Left := (PageControlPanel.Width div 4) + 18; - PanelDescSave.Left := (PageControlPanel.Width div 4) + 18; - PanelDescZoom.Left := (PageControlPanel.Width div 4) + 18; - PanelDescRun.Left := (PageControlPanel.Width div 4) + 18; - PanelDescCompile.Left := (PageControlPanel.Width div 4) + 18; - PanelDescClear.Left := (PageControlPanel.Width div 4) + 18; + + var adj := 45; + LabelOpen .Left := (PageControlPanel.Width div 4) - adj - LabelOpen .width; + LabelSave .Left := (PageControlPanel.Width div 4) - adj - LabelSave .width; + LabelZoom .Left := (PageControlPanel.Width div 4) - adj - LabelZoom .width; + LabelRun .Left := (PageControlPanel.Width div 4) - adj - LabelRun .width; + LabelCompile.Left := (PageControlPanel.Width div 4) - adj - LabelCompile.width; + LabelClear .left := (PageControlPanel.Width div 4) - adj - LabelClear .width; + + PanelDescOpen .Left := (PageControlPanel.Width div 4) + adj; + PanelDescSave .Left := (PageControlPanel.Width div 4) + adj; + PanelDescZoom .Left := (PageControlPanel.Width div 4) + adj; + PanelDescRun .Left := (PageControlPanel.Width div 4) + adj; + PanelDescCompile.Left := (PageControlPanel.Width div 4) + adj; + PanelDescClear .Left := (PageControlPanel.Width div 4) + adj; + ButtonNewDocument.Left := Max(50, (PanelRight.Width div 2) - ButtonNewDocument.Width - (ButtonOpenDocument.Width div 2) - 65); ButtonOpenDocument.Left := ButtonNewDocument.Left + ButtonNewDocument.Width + 25; ButtonOptions.Left := ButtonOpenDocument.Left + ButtonOpenDocument.Width + 25;