Refresh sorting controls per timer when user presses the delete button of one sorting. Fixes issue #520

This commit is contained in:
Ansgar Becker
2024-02-03 18:51:48 +01:00
parent 95151d6a3e
commit 17f4cb2949

View File

@ -26,6 +26,9 @@ type
FColumnNames: TStringList; FColumnNames: TStringList;
FSortItems: TSortItems; FSortItems: TSortItems;
FOldOrderClause: String; FOldOrderClause: String;
FDeleteTimer: TTimer;
FDeleteButtonPressed: TButton;
procedure DeleteTimerTimer(Sender: TObject);
procedure comboColumnsChange(Sender: TObject); procedure comboColumnsChange(Sender: TObject);
procedure btnOrderClick(Sender: TObject); procedure btnOrderClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject); procedure btnDeleteClick(Sender: TObject);
@ -57,6 +60,11 @@ begin
FSortItems.Assign(MainForm.DataGridSortItems); FSortItems.Assign(MainForm.DataGridSortItems);
FOldOrderClause := FSortItems.ComposeOrderClause(MainForm.ActiveConnection); FOldOrderClause := FSortItems.ComposeOrderClause(MainForm.ActiveConnection);
FDeleteTimer := TTimer.Create(Self);
FDeleteTimer.Interval := 100;
FDeleteTimer.Enabled := False;
FDeleteTimer.OnTimer := DeleteTimerTimer;
// First creation of controls // First creation of controls
DisplaySortingControls(Sender); DisplaySortingControls(Sender);
end; end;
@ -236,11 +244,16 @@ end;
Delete order column Delete order column
} }
procedure TfrmDataSorting.btnDeleteClick(Sender: TObject); procedure TfrmDataSorting.btnDeleteClick(Sender: TObject);
var
btn: TButton;
begin begin
btn := Sender as TButton; FDeleteButtonPressed := Sender as TButton;
FSortItems.Delete(btn.Tag-1); FDeleteTimer.Enabled := True;
end;
procedure TfrmDataSorting.DeleteTimerTimer(Sender: TObject);
begin
FDeleteTimer.Enabled := False;
FSortItems.Delete(FDeleteButtonPressed.Tag-1);
// Refresh controls // Refresh controls
DisplaySortingControls(Self); DisplaySortingControls(Self);
// Enables OK button // Enables OK button