Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.25;
Скачать: CL | DM;

Вниз

Опять про CD-Rom   Найти похожие ветки 

 
Фагот ©   (2003-06-10 15:08) [0]

procedure TForm1.FormCreate(Sender: TObject);
var cycle: integer;
sy: Pchar;
begin
for cycle:=0 to 25 do
begin
sy:=PChar(ord("a")+cycle);
( sy) procedure TForm1.FormCreate(Sender: TObject);
var cycle: integer;
sy: Pchar;
begin
for cycle:=0 to 25 do
begin
sy:=PChar(ord("a")+cycle);
if GetDriveType(sy)=DRIVE_CDROM then ShowMessage(sy);
end;
end;

Выдаётся "Access violation..."
Что не так?


 
Yanis ©   (2003-06-10 15:15) [1]

Может из-за винды, у тебя всего скорее NT стоит?


 
Мое имя (клоны все равно суксь)   (2003-06-10 15:16) [2]

в 17-й


 
Фагот ©   (2003-06-10 15:16) [3]

Двухтоннка Про. Ругается на ntdll.dll


 
VMcL ©   (2003-06-10 17:10) [4]

>Фагот © (10.06.03 15:08)

sy:=PChar(ord("a")+cycle);
Это неправильно.

var
Drv: packed array [0 .. 3] of Char;
Cycle: Byte;
begin
Drv[1] := ":";
Drv[2] := "\";
Drv[3] := #0;
for Cycle := 0 to 25 do
begin
Drv[0] := Chr(Cycle);
if GetDriveType(Drv) = DRIVE_CDROM then //...
end;
end;


 
Михайлов Антон ©   (2003-06-11 01:52) [5]

Ну мой код медь рабочий...
У мя на всех осях работает....


Procedure GetDriveType;
var
Disk: Char;
begin
for Disk := "A" to "Z" do
case GetDriveType(PChar(Disk+":\")) of
2:Memo1.lines.add("[Floppy]"+Disk+":\");
3:Memo1.lines.add("[HDD Partition]"+Disk+":\");
5:Memo1.lines.add("[CD-ROM]"+Disk+":\");
end;
end;


 
stranger___ ©   (2003-06-11 01:56) [6]

Михайлов Антон © (11.06.03 01:52)
офигеть не встать


 
Илайдж   (2003-06-11 08:21) [7]

http://delphimaster.net/view/7-1055223659/

Тестировано: Win2K, Win98.


 
Леонид Федьков   (2003-06-11 11:11) [8]

Проверено. Работает всегда. (Делал по "козе" для определения типа драйва. Где взял "козу" - не помню.


procedure TDataModule1.Get_drive_cd;
{Определение логического имени CD-ROM }
var
PDrivers :Pchar;
Bufer : array [1..500] of char;
Stop : Boolean;
i : integer;
Z : String;

begin
PDrivers:=@Bufer;
GetLogicalDriveStrings(500,PDrivers);

Z:=""; Stop:=False;
for i :=1 to 500 do
begin
if Bufer[i]<>#0 then
begin
Z:=Z+Bufer[i];
Stop:=False;
end
else begin
if Stop then break
else begin
if GetDriveType(Pchar(Z))=DRIVE_CDROM then
begin
Drive_CD := Z;
end;
Stop:=true; Z:="";end;
end;
end;
end;





 
@LE   (2003-06-12 09:00) [9]

function GetCDChar(var ch : Char) : Boolean;
var
s : array[0..255] of char;
c : PChar;
begin
Result := false;
GetLogicalDriveStrings(256, @s);
c := @s;
repeat
if GetDriveType(c) = DRIVE_CDROM then begin
Result := true;
ch := c^;
Break;
end;
while c^ <> #0 do c := c + 1;
c := c + 1;
until c^=#0;{}
end;




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

Текущий архив: 2003.08.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-81792
korvin
2003-08-14 08:51
2003.08.25
Правильное сворачивание всех окон программы из модальной


1-81673
sunsay
2003-08-14 22:57
2003.08.25
Проблема с наследованием


3-81533
Berezne
2003-07-31 13:14
2003.08.25
Как организовать фильтрацию в DBGrid !!!


4-82020
Igor__
2003-06-24 18:58
2003.08.25
SHFileOperation


11-81601
Romaizdurdoma
2002-12-05 22:02
2003.08.25
Куда делись хинты в КОЛе