![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите когда и как надо освобождать TOpenSaveDialog [Delphi, Windows]
someone © (2008-02-18 21:48:00)Подскажите когда и как надо освобождать TOpenSaveDialog?
Вот фрагмент кода:
uses KOL;
var Form1: TForm1; OpenSaveDialog :TOpenSaveDialog ;
implementation {$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
IF OpenSaveDialog.Execute THEN
BEGIN
Caption:=OpenSaveDialog.Filename;
END;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenSaveDialog.Create;
OpenSaveDialog.OpenDialog:=true;
end;
Если освобождать в событии TForm1.FormClose, то будет ошибка.
Rocket (2008-03-14 08:46:00) [1]
> SetCurrentDirectory()
Спасибо, Тыщ! :)
mdw (2008-03-13 11:21:00) [2]
> Кстати, многие программы этим - [3] страдают.
Например Delphi7. :))
Тыщ (2008-03-13 09:07:00) [3]SetCurrentDirectory()
Кстати, многие программы этим - [3] страдают.
Rocket (2008-03-13 07:58:00) [4]
> текущий каталог меняй после диалога
Текущий каталог чего? Диалог я после показа вообще освобождаю. Пробовал указывать в InitialDir и Filename и пустые строки и "левые" (существующие) пути, но мало того, что после этого надо сделать Execute, так ещё и выбрать другой файл, чтоб всё сработало (папку "отпустило" :) )...
GMax (2008-03-12 21:45:00) [5]текущий каталог меняй после диалога
Rocket (2008-03-12 10:17:00) [6]Попробовал в VCL - так же. Что ж теперь, писать свой собственный диалог?
Rocket (2008-03-12 10:02:00) [7]После выбора файла через TKOLOpenSaveDialog я не могу удалить папку, содержащую выбранный файл, пока не закрою свою программу. Причём сам файл удаляется успешно, проблема именно с папкой. Почему так происходит и как с этим бороться?
someone (2008-02-18 22:25:00) [8]Вот так?:
uses KOL;
var Form1: TForm1;
OpenDialog:POpenSaveDialog;
implementation {$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
IF OpenDialog.Execute THEN
BEGIN
Caption:=OpenDialog.Filename;
END;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenDialog:=NewOpenSaveDialog('Add...','',[]);
OpenDialog.OpenDialog := True;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
OpenDialog.Free;
end;
Vladimir Kladov (2008-02-18 21:55:00) [9]nEWoPENsAVEdIALOG