Ich habe mir gerade einen eigenen SaveDialog gebastelt mit der ShellComboBox und dem ShellListview. Nur immer, wenn ich ihn schliessen will, bekomme ich eine
AV:
Delphi-Quellcode:
procedure TfrmSaveTemplate.btnOKClick(Sender: TObject);
begin
FAuthor := edtAuthor.Text;
FDescription := memDescription.Text;
FFilename := edtFile.Text;
if ShellListview1.SelectedFolder.IsFolder then
FFilename := ShellListview1.SelectedFolder.PathName + '\' + edtFile.Text
else
FFilename := ShellListview1.SelectedFolder.PathName;
end;
procedure TfrmSaveTemplate.edtFileChange(Sender: TObject);
begin
btnOK.Enabled := edtFile.Text <> '';
end;
function TfrmSaveTemplate.Execute: Boolean;
begin
Result := Self.ShowModal = mrOK;
end;
procedure TfrmSaveTemplate.ShellListView1Click(Sender: TObject);
var
Filename : WideString;
begin
if ShellListView1.ItemIndex > -1 then
begin
Filename := ShellListview1.SelectedFolder.PathName + ShellListview1.Items[ShellListview1.ItemIndex].Caption;
if not ShellListview1.SelectedFolder.IsFolder then
edtFile.Text := ExtractFilenameW(Filename);
end;
end;
Und Aufruf:
Delphi-Quellcode:
var
TemplateFile : TTemplateIO;
begin
if frmSaveTemplate.Execute then
begin
ShowMessage(frmSaveTemplate.Filename + ', ' + frmSaveTemplate.Author + ', ' + frmSaveTemplate.Description);
TemplateFile := TTemplateIO.Create(False);
TemplateFile.FreeOnTerminate := True;
TemplateFile.Author := frmSaveTemplate.Author;
TemplateFile.Description := frmSaveTemplate.Description;
TemplateFile.Page := ImageEnVect;
TemplateFile.SaveToFile(frmSaveTemplate.Filename);
end;
Was mache ich da falsch?