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

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

Как из под Дельфи-программы отформатировать дискету? [D5]


FLIZ_ ©   (2002-08-19 15:49:00) 

прошу подсказать. спасибо!


FLIZ_   (2002-08-19 19:02:00) [1]

кстати - константы быстрого и полного форматирования
перепутаны местами :)


FLIZ_   (2002-08-19 18:59:00) [2]

СПАСИБО за код примера! Мне это подходит!

маленький вопрос :
не пойму - из какого модуля эта ф-ия берется?
что надо в Uses указать ?

в файле ShellAPI.PAS нет такой ф-ии : "ShFormatDrive"

или я очень сильно торможу - и ее там быть не должно
и надо ее самому как внешнюю подключать (как я и сделал)?


FLIZ_   (2002-08-19 18:47:00) [3]

Да, хотелось бы поюзать некую ф-ию, которая
бы форматировала дискету, а мне возвращала
бы информацию о завершенном процессе.

т.е. никаких дополнительных диалогов и окон не надо.

на крайний случай конечно и с диалогами пойдет,
но я бы хотел без них.

сейчас попробую приведенный в ответе код,
посмотрю что он дает ...
спасибо!


-= Like =-   (2002-08-19 18:42:00) [4]

Если не ошибаюсь, эта функция вызывает диалог "Форматирование диска", а он хочет из своей программы форматировать. Или нет?


Yuri-7   (2002-08-19 16:06:00) [5]

Из FAQ Delphi Вокруг да около.
------------------------------
Вопрос:
Форматирование диска в Win32
Ответ:
ShellAPI функция ShFormatDrive().
Пример:

const SHFMT_DRV_A = 0;
const SHFMT_DRV_B = 1;

const SHFMT_ID_DEFAULT = $FFFF;

const SHFMT_OPT_QUICKFORMAT = 0;
const SHFMT_OPT_FULLFORMAT = 1;
const SHFMT_OPT_SYSONLY = 2;

const SHFMT_ERROR = -1;
const SHFMT_CANCEL = -2;
const SHFMT_NOFORMAT = -3;

function SHFormatDrive(hWnd : HWND;
Drive : Word;
fmtID : Word;
Options : Word) : Longint
stdcall; external "Shell32.dll" name "SHFormatDrive";

procedure TForm1.Button1Click(Sender: TObject);
var
FmtRes : longint;
begin
try
FmtRes:= ShFormatDrive(Handle,
SHFMT_DRV_A,
SHFMT_ID_DEFAULT,
SHFMT_OPT_QUICKFORMAT);
case FmtRes of
SHFMT_ERROR : ShowMessage("Error formatting the drive");
SHFMT_CANCEL :
ShowMessage("User canceled formatting the drive");
SHFMT_NOFORMAT : ShowMessage("No Format")
else
ShowMessage("Disk has been formatted");
end;
except
end;

end;


AL2002   (2002-08-19 15:55:00) [6]

function SHFormatDrive (Wnd: HWnd; Drive, Size, Options: Integer): Integer;


Наверх

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