Потребовался мне тут компонентик для выбора каталога, решил использовать из девок TcxShellBrowserDialog, а он оказывается не может создавать каталоги. Решил я залезть в техподдержку девок и оказалось, что эта проблема больше 10 лет висит нерешенная :(
Там же нашел идею, на основе которой сварганил следующее:
type
TcxShellBrowserDialog = class(cxShellBrowserDialog.TcxShellBrowserDialog)
private
cxButton3: TcxButton;
procedure cxButton3Click(Sender: TObject);
protected
function CreateForm: TcxShellBrowserDlg; override;
end;
...
function TcxShellBrowserDialog.CreateForm: TcxShellBrowserDlg;
begin
inherited;
Result := TcxShellBrowserDlg.Create(Application);
cxButton3 := TcxButton.Create(Result);
cxButton3.Caption := 'Create';
cxButton3.Width := Result.cxButton1.Width;
cxButton3.Height := Result.cxButton1.Height;
cxButton3.Left := 10;
cxButton3.Top := Result.ClientHeight - cxButton3.Height - 10;
cxButton3.Anchors := [akLeft, akBottom];
cxButton3.Parent := Result;
cxButton3.OnClick := cxButton3Click;
end;
procedure TcxShellBrowserDialog.cxButton3Click(Sender: TObject);
begin
ForceDirectories(IncludeTrailingPathDelimiter(Path) + 'New path');
end;
Кнопка создается, нажимается, вот только свойство Path пустое оказалось. И вот собственно вопрос, как же мне достучаться до рабочего свойства Path?