Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Вниз

SaveDialog   Найти похожие ветки 

 
assassin8899   (2008-05-24 18:42) [0]

По нажатии на кнопку вызываю метод SaveDialog и проверяю, если есть БД, то перезаписываю её.
Главная проблема, что эта процедура работает лишь один раз.При повторном нажатии на кнопку "Yes" условия "База данных уже есть!Хотите её перезаписать?" пользовательские сообщения messegeDlg "Сообщение1" "Сообщение2" обрабатываются но deleteFile(FileName) никак не реагирует и в результате дальше идет системная ошибка "БД уже создана".

procedure TForm15.Button1Click(Sender: TObject);
label a,b;
Var
 cat      : Variant; //ADOX.Catalog
 FileName : String;
begin
 a:
 if savedialog1.Execute then
 begin
 FileName:=savedialog1.FileName+".mdb";
   if fileexists(FileName) then
   begin
   if messageDlg("База данных уже есть!Хотите её перезаписать?",mtInformation,[mbYes,mbNo],0)=mrYes then
       begin
      messageDlg("Сообщение 1!",mtInformation,[mbOk],0);
   deletefile(filename);
      messageDlg("Сообщение 2!",mtInformation,[mbOk],0);
      goto b;
       end
        else
      goto a;
   end
   else
   goto b;

 b:

// Далее Создание БД


 
TIF ©   (2008-05-24 19:26) [1]

Удалено модератором


 
Loginov Dmitry ©   (2008-05-24 22:23) [2]

> deletefile(filename);


Это не гарантирует удаление файла. Для того, чтобы убедиться что файл удален, следует вызвать:
if not DeleteFile() then
 RaiseLastOSError;
И это на 100% не гарантирует удаление файла. Если DeleteFile() вернула True, FileExists() дает False, но файл не был удален, то при попытке создания файла с тем же именем произойдет ошибка.


> if savedialog1.Execute then
> begin
> FileName:=savedialog1.FileName+".mdb";


Подозрительная довольно-таки конструкция. Пользователь уже выбрал конкретный файл (задал название), а ты ему еще расширение какое-то приписываешь. Зачем?

А goto лучше выбросить. Delphi - это тебе не Бейсик, в goto не нуждается.


 
assassin8899   (2008-05-24 22:40) [3]

>>Подозрительная довольно-таки конструкция. Пользователь уже выбрал >>конкретный файл (задал название), а ты ему еще расширение какое-то >>приписываешь. Зачем?

Так он не определяет файл как .mdb


 
TIF ©   (2008-05-24 22:42) [4]

Удалено модератором


 
Virgo_Style ©   (2008-05-25 00:05) [5]

assassin8899   (24.05.08 18:42)
FileName:=savedialog1.FileName+".mdb";


ChangeFileExt ?


 
Loginov Dmitry ©   (2008-05-25 01:00) [6]

> Да, кстати, расширение надо приставлять вручную. ибо в поле
> "Имя файла" мало кто его догадывается писать


А выпадающий список "Тип файла" на кой?


 
TIF ©   (2008-05-25 01:04) [7]

Удалено модератором


 
sniknik ©   (2008-05-25 01:41) [8]

> ибо в поле "Имя файла" мало кто его догадывается писать %)
в "сейведиалоге" задаешь дефаултное расширение и при пропуске его юзером оно добавляется.

> Если этого не делать, на диске ведь просто сохранится файл, вообще без расширения, с одним только именем...
и ничего страшного, раз уж так выбрали так и нужно сохранять... а черезчур "умные" программы которые к моему уже заданному еще один ".mdb" "пристегнут" в корзину.


 
TIF ©   (2008-05-25 01:46) [9]

Удалено модератором


 
TIF ©   (2008-05-25 01:47) [10]

Удалено модератором



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1210500773
dr_creigan
2008-05-11 14:12
2008.06.22
Все текстовые форматы


1-1195132473
DerbyW
2007-11-15 16:14
2008.06.22
Генерация интерфейсов для WebService(SOAP) на основании WSDL


2-1211976882
Dmitrij
2008-05-28 16:14
2008.06.22
Дан список, состоящий из чисел.


2-1211640147
assassin8899
2008-05-24 18:42
2008.06.22
SaveDialog


15-1210707132
Маэстро
2008-05-13 23:32
2008.06.22
Как я сэкономил 1,5к:)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский