diff --git a/lcl/shellctrls.pas b/lcl/shellctrls.pas index b75dde339e..7a21f495bc 100644 --- a/lcl/shellctrls.pas +++ b/lcl/shellctrls.pas @@ -214,6 +214,7 @@ type FMask: string; FMaskCaseSensitivity: TMaskCaseSensitivity; FObjectTypes: TObjectTypes; + FPopulateDelayed: Boolean; FRoot: string; FShellTreeView: TCustomShellTreeView; FUseBuiltInIcons: Boolean; @@ -228,6 +229,7 @@ type { Methods specific to Lazarus } class procedure WSRegisterClass; override; procedure AdjustColWidths; + procedure CreateHandle; override; procedure PopulateWithRoot(); procedure DoOnResize; override; procedure SetAutoSizeColumns(const Value: Boolean); virtual; @@ -1529,6 +1531,13 @@ begin // Check inputs if Trim(FRoot) = '' then Exit; + // Check handle + if not HandleAllocated then + begin + FPopulateDelayed := true; + Exit; + end; + Items.BeginUpdate; Files := TStringList.Create; try @@ -1607,6 +1616,16 @@ begin end; end; +procedure TCustomShellListView.CreateHandle; +begin + inherited; + if FPopulateDelayed then + begin + PopulateWithRoot; + FPopulateDelayed := false; + end; +end; + procedure TCustomShellListView.DoOnResize; begin inherited;