you can add a new button in the TOpenPictureDialog , but not get the dialog in the constructor, you have to do this at runtime.
check this sample
procedure TForm1.FormCreate(Sender: TObject); var FDeleteButton : TSpeedButton; FPreviewButton : TSpeedButton; begin FPreviewButton := TSpeedButton(OpenPictureDialog1.FindComponent('PreviewButton')); FDeleteButton := TSpeedButton.Create(OpenPictureDialog1); FDeleteButton.SetBounds(107, 1, 23, 22); FDeleteButton.Parent := FPreviewButton.Parent; FDeleteButton.NumGlyphs:=2; FDeleteButton.Glyph.LoadFromResourceName(HInstance, 'BBABORT'); FDeleteButton.Name := 'DeleteButton'; FDeleteButton.OnClick := DeleteBtnClick; end; procedure TForm1.DeleteBtnClick(Sender: TObject); begin //here you must implement the delete logic ShowMessage('Hello from delete button'); end;
and result

source share