Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Problem mit Laufwerkstyp erkennen (https://www.delphipraxis.net/73211-problem-mit-laufwerkstyp-erkennen.html)

monty.ms 13. Jul 2006 17:39


Problem mit Laufwerkstyp erkennen
 
Hallo,

ich habe folgendes Probleme: Ich will, wie in dem Beispiel unten, den Typ des Laufwerks im Label1 darstellen lassen. Der ItemIndex ist am Anfang 0. Er wechselt also erst wenn die Prozedur ausgeführt wird. Aber aus irgendeinem Grund zeigt er mir trotzdem den Typ vom Index 0 an, obwohl man sieht, dass er gewechselt hat, da dass zweite Laufwerk angezeigt wird. Hat einer ne Idee wieso? Wenn ich den ItemIndex manuell änder (also einfach direkt an der DriveComboBox ändern) dann zeigt er mir den richtigen Typ an.

Danke

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR drv_type : Integer;
    drv     : Char;
    a       : String;
begin
  DriveComboBox1.ItemIndex := 1;
  drv := Char(DriveComboBox1.Drive);
  drv_type := GetDriveType(PChar(drv+':\'));
  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;

Label1.Caption := a;
monty

himitsu 13. Jul 2006 18:45

Re: Problem mit Laufwerkstyp erkennen
 
eventuell aktualisiert die riveComboBox nicht gleich ihren Inhalt.

Versuch es mal so:
Code:
DriveComboBox1.ItemIndex := 1;
[b]Application.ProgressMessages;[/b]
drv := Char(DriveComboBox1.Drive);
ich kenn zwar die Propertynamen nicht, aber so könnte es eventuell och gehn.
(für DriveList muß natürlich der richtige Name der Laufwerkliste eingefügt werden)
Delphi-Quellcode:
DriveComboBox1.ItemIndex := 1;
drv := Char(DriveComboBox1.DriveList[DriveComboBox1.ItemIndex]);

monty.ms 13. Jul 2006 19:24

Re: Problem mit Laufwerkstyp erkennen
 
ich hab das eben mal probiert, und mit Application.ProcessMessages funktioniert das auch nicht..

das mit der DirList, versteh ich nicht ganz.. der listet dann nur die Verzeichnissse des Laufwerks in der DirectoryListBox auf, oder?!

Zacherl 13. Jul 2006 19:42

Re: Problem mit Laufwerkstyp erkennen
 
Versuche mal
Delphi-Quellcode:
DriveComboBox1.Items[DrivecomboBox1.ItemIndex]
um das Laufwerk zu ermitteln, bzw Statt ItemIndex direkt 1.

Florian

monty.ms 13. Jul 2006 20:03

Re: Problem mit Laufwerkstyp erkennen
 
also ich habs jetzt so gemacht, da drv vom typ char is muss ich ihn natürlich von string in char umwandeln:

Delphi-Quellcode:
drv := (DriveComboBox1.Items[1])[1];
.. und das funktioniert einwandfrei, danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz