Autor Beitrag
delphia1029
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 14.09.09 21:42 
Habe ein Problem mit folgendem Code. Es kommt zur fehlermeldung 2010 inkompatible Type 'Char' und 'String'

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
procedure TForm1.FormCreate(Sender: TObject);

var drv_type : Integer;
    drive    : Char;
    Position: Integer;
    a : Integer;
    b : String;
    c : String;

begin
  //Bilder festlegen
  Image1.Picture.LoadFromFile('images\work.png');
  Image2.Picture.LoadFromFile('images\noth.png');
  Image3.Picture.LoadFromFile('images\noth.png');
  Image4.Picture.LoadFromFile('images\noth.png');

  //Programmpfad ermitteln
  b:=ExtractFilePath(ParamStr(0));
  Position:=Pos(':', b);
  Delete(b,Position,1000000);

  //Laufwerkstyp ermitteln
  drive := b;
  drv_type := GetDriveType(drive+':\');
  Case drv_type of
    DRIVE_UNKNOWN: a := 1;
    DRIVE_REMOVABLE: a := 2;
    DRIVE_FIXED: a := 3;
    DRIVE_REMOTE: a := 4;
    DRIVE_CDROM: a := 5;
    DRIVE_RAMDISK: a := 6;
  end;
end;6;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 14.09.2009 um 22:52
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 14.09.09 21:57 
Naja... Du versuchst halt einem einzelnen Zeichen einen ganzen String zuzuweisen.
user profile icondelphia1029 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  drive: Char;
  b: String;
begin
  ...
  drive := b;
Was du vermutlich meinst:
ausblenden Delphi-Quelltext
1:
drive := ExtractFileDrive(ParamStr(0))[1];					
Oder kurz:
ausblenden Delphi-Quelltext
1:
drive := ParamStr(0)[1];					


Dann noch dazu:
user profile icondelphia1029 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
  Image1.Picture.LoadFromFile('images\work.png');					
Da fehlt die Pfadangabe. Dass es so vielleicht klappt, ist reines Glück...
www.delphi-library.d...ewtopic.php?p=499701
delphia1029 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 14.09.09 22:26 
Ich bekomme immer noch die Meldung Inkompatible Typen, in der Zeile drv_txpe ....

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TForm1.FormCreate(Sender: TObject);

var drv_type : Integer;
    drive    : Char;
    a : Integer;
    b : String;

begin
  //Bilder festlegen
  Image1.Picture.LoadFromFile('images\work.png');
  Image2.Picture.LoadFromFile('images\noth.png');
  Image3.Picture.LoadFromFile('images\noth.png');
  Image4.Picture.LoadFromFile('images\noth.png');

  //Laufwerkstyp ermitteln
  drive := ExtractFileDrive(ParamStr(0))[1];
  drv_type := GetDriveType(drive+'\');
  Case drv_type of
    DRIVE_UNKNOWN: a := 1;
    DRIVE_REMOVABLE: a := 2;
    DRIVE_FIXED: a := 3;
    DRIVE_REMOTE: a := 4;
    DRIVE_CDROM: a := 5;
    DRIVE_RAMDISK: a := 6;
  end;
end;

end.


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
steffven
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 14.09.09 23:13 
Habe eben einmal für dich gegoogelt:

www.delphipraxis.net/topic2024.html

Ich würde also
ausblenden Delphi-Quelltext
1:
drv_type := GetDriveType(drive+'\');					

in
ausblenden Delphi-Quelltext
1:
drv_type := GetDriveType(PChar(drive+':\'));					

ändern.

Folgenden Code habe ich eben getestet, funktioniert perfekt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
var
drv_type : Integer;
t : String;
begin
  drv_type := GetDriveType(PChar('C:\'));
  Case drv_type of
    DRIVE_UNKNOWN: t := 'Unknown';
    DRIVE_REMOVABLE: t := 'Removable';
    DRIVE_FIXED: t := 'Fixed';
    DRIVE_REMOTE: t := 'Network';
    DRIVE_CDROM: t := 'CD-ROM';
    DRIVE_RAMDISK: t := 'RAM Disk';
  end;
  Label1.Caption := t;
end;