Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DriveComboBox Entscheidungshilfe (https://www.delphipraxis.net/139521-drivecombobox-entscheidungshilfe.html)

haentschman 30. Aug 2009 19:33


DriveComboBox Entscheidungshilfe
 
Hallo alle... :hi:

ich bräuchte mal Eure Hilfe bei einer Entscheidung oder Tipps in die Richtung.

ich hätte gern:

- für den Datenträgeraustausch (Zip Datei) eine Laufwerksauswahl wo nur die USB Festplatten / USB Sticks angezeigt werden. (Damit die Sekretöse nicht denken muß :wink: )
- als ComboBox
- oder in einer StringList die Laufwerksbuchstaben aus der ich dann eine RadioGroup Auswahl basteln könnte.

was ich probiert habe:
- TDriveComboBoxEx (TMS): Kein Filter nach DriveTyp, Items bearbeitbar
- JvDriveComboBox: Filter nach DriveTyp, Items nicht nachbearbeitbar um zumindest das Systemlaufwerk auszublenden

welchen Weg würdet ihr gehen ?

Danke für Tipps.

:hi:

zeras 30. Aug 2009 20:08

Re: DriveComboBox Entscheidungshilfe
 
Ich habs so gelöst. Bei mir läuft das ohne Probleme.

Delphi-Quellcode:
procedure TfSelectDrive.FormShow(Sender: TObject);
var
  dr : String;
  Idx : Integer;

const
  DRIVE_UNKNOWN = 0;
  DRIVE_NO_ROOT_DIR = 1;
  DRIVE_REMOVABLE = 2;
  DRIVE_FIXED = 3;
  DRIVE_REMOTE = 4;
  DRIVE_CDROM = 5;
  DRIVE_RAMDISK = 6;
var
  r: LongWord;
  Drives: array[0..128] of char;
  pDrive: PChar;

begin
  inherited;

  r := GetLogicalDriveStrings(SizeOf(Drives), Drives);
  if r = 0 then Exit;
  if r > SizeOf(Drives) then
    raise Exception.Create(SysErrorMessage(ERROR_OUTOFMEMORY));
  pDrive := Drives;
  while pDrive^ <> #0 do
  begin
    if GetDriveType(pDrive) = DRIVE_REMOVABLE then
      CBDrivesRemovable.Items.Add(pDrive);
    Inc(pDrive, 4);
  end;

  IDx:=CBDrivesRemovable.Items.IndexOf(Drive);
  if Idx <>-1  then begin
    try
      CBDrivesRemovable.ItemIndex:=Idx;

    except

    end;
  end;
end;

haentschman 30. Aug 2009 20:31

Re: DriveComboBox Entscheidungshilfe
 
Danke für deine Hilfe :thumb:

habe in der Zwischenzeit viel über GetLogicalDrive, GetDriveType gelesen. Ich denke, daß ich so wie in deinem Beispiel mir eine normale ComboBox mit den Laufwerken zusammenstelle und das Systemlaufwerk übergehe.

Danke :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 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