case语句的判断变量的类型错了吗?(100分)

  • 主题发起人 主题发起人 flyman2
  • 开始时间 开始时间
F

flyman2

Unregistered / Unconfirmed
GUEST, unregistred user!
我按照一教程编写程序部分如下:
procedure TFMForm.FormCreate(Sender: TObject);
var
Drive, AddedIndex: Integer;
DriveLetter: Char;
begin
FileMana := TFMForm.Create(Application);
for Drive := 0 to 25 do
begin
DriveLetter := Chr(Drive + ord('a'));
case GetDrivetype(Drive) of
DRIVE_REMOVABLE:
AddedIndex := DriveTabSet.Tabs.AddObject(DriveLetter, Floppy.Picture.Graphic);
DRIVE_FIXED:
AddedIndex := DriveTabSet.Tabs.AddObject(DriveLetter, Fixed.Picture.Graphic);
DRIVE_REMOTE:
AddedIndex := DriveTabSet.Tabs.AddObject(DriveLetter, Network.Picture.Graphic);
end;
if UpCase(DriveLetter) = UpCase(FileListbox1.Drive) then
DriveTabSet.TAbIndex := AddedIndex;
end;
end;
执行后,显示incompatible types:'integer' and 'Pchar'提示信息,双击提示信息,标记
返回到上面部分的case GetDrivetype(Drive) of处。
请问各位大侠这是什么原因,该如何解决?
 
应该是用DriveLetter 来使用吧
 
你抄错了吧?
case GetDrivetype(Drive) of
应该是
case GetDrivetype(Driveletter) of
 
如pan ying所说
case GetDrivetype(Drive) of
换成 case GetDrivetype(DriveLetter) of
getdrivetype是获得驱动器类型,里面的参数必须是pchar的,而drive是integer的
 
GetDrivetype的参数应该是这样的:
GetDrivetype(PChar(DriveLetter+':/'))
 
同意上面。
 
接受答案了.
 
后退
顶部