Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при отмене [D7, XP]


lobach ©   (2006-05-19 14:55:00) 

Здраствуйте...
Помогите пожалуйста, вылезает ошибка при нажатии кнопки отмена в диалоговом окне сохранения файла, нажимаеш OK,  все нормально, сохраняет, жмёш отмену, выдаёт ошибку:

Project lvbsvc.exe raised exception class EInOutError with message 'I/O error 105'. Process stopped.


Германн   (2006-05-21 04:43:00) [1]

ifSaveDialog1.Execute then begin//открытие диалогового окна
 AssignFile(f, SaveDialog1.FileName);     //объявление файла
 Rewrite(f);                                       //открываем для перезаписи  
 writeln(f, stroka1, imya, stroka2);          //пишем строки в файл
 CloseFile(f);
end;      


В исходном варианте не было проверки "того, что было нажато" в Диалоге.


lobach   (2006-05-21 04:30:00) [2]

Конкретно простой пример: хочу чтобы текст, введенный пользователем и еще несколько строк записывались в текстовый файл, посмотрите, может что нитак?

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, jpeg, ExtCtrls, StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   SaveDialog1: TSaveDialog;

   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
//объявление переменных
f: TextFile;
stroka1: String;
stroka2: String;
imya: String;
begin                                    //начало процедуры
                                          //значения переменных
stroka1:= 'Мальчика зовут';
stroka2:= ',ему 10 лет';
imya:= Edit1.text //имя мальчика, введенное пользователем

SaveDialog1.Execute; //открытие диалогового окна
AssignFile(f, SaveDialog1.FileName);     //объявление файла
Rewrite(f);                                       //открываем для перезаписи
writeln(f, stroka1, imya, stroka2);          //пишем строки в файл

CloseFile(f);                                     // закрыть файл
end;

end.


umbra   (2006-05-19 16:04:00) [3]


> Project lvbsvc.exe raised exception class EInOutError with
> message 'I/O error 105'. Process stopped.
>


эта ошибка означает, что Вы пытаетесь записывать в файл, который не открыт. Т.е. даже в случае нажатия кнопки "Отмена" Вы пытаетесь что-то записать.


stud   (2006-05-19 16:04:00) [4]

очевидно все равно пытаешся сохранять не смотря на отмену


Gydvin   (2006-05-19 14:57:00) [5]

код


Наверх

Титульная страница Поиск, карта сайта Написать письмо