mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-26 03:01:07 +08:00
Work around bug #794: OK + Apply buttons enabled after just switching to a different tab
The bug seems caused by any TUpDown + TEdit which fire OnChange when they get visible for the first time. PageControl.OnChanging + .OnChange help here.
This commit is contained in:
@ -28,6 +28,8 @@ object optionsform: Toptionsform
|
||||
ActivePage = tabMisc
|
||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||
TabOrder = 3
|
||||
OnChange = pagecontrolMainChange
|
||||
OnChanging = pagecontrolMainChanging
|
||||
object tabMisc: TTabSheet
|
||||
Caption = 'Miscellaneous'
|
||||
object Label4: TLabel
|
||||
|
@ -105,8 +105,12 @@ type
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure chkNullBGClick(Sender: TObject);
|
||||
procedure comboSQLColElementChange(Sender: TObject);
|
||||
procedure pagecontrolMainChanging(Sender: TObject;
|
||||
var AllowChange: Boolean);
|
||||
procedure pagecontrolMainChange(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
FWasModified: Boolean;
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
@ -139,6 +143,23 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure Toptionsform.pagecontrolMainChanging(Sender: TObject;
|
||||
var AllowChange: Boolean);
|
||||
begin
|
||||
// Remember modification state. First tab switch leads TEdit's with TUpDown
|
||||
// to fire OnChange. Avoid enabling the buttons in that case.
|
||||
FWasModified := btnOK.Enabled;
|
||||
end;
|
||||
|
||||
|
||||
procedure Toptionsform.pagecontrolMainChange(Sender: TObject);
|
||||
begin
|
||||
// See OnChanging procedure
|
||||
btnOK.Enabled := FWasModified;
|
||||
btnApply.Enabled := FWasModified;
|
||||
end;
|
||||
|
||||
|
||||
{**
|
||||
Apply settings to registry, childwin and mainform
|
||||
}
|
||||
|
Reference in New Issue
Block a user