Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   TDirectory.GetLogicalDrives (https://www.delphipraxis.net/206033-tdirectory-getlogicaldrives.html)

Willie1 11. Nov 2020 18:00

TDirectory.GetLogicalDrives
 
Hallo Leute,
das
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
  drives: TStringDynArray;
  drive: string;
begin
  lbDrives.Items.Clear;
  drives:=TDirectory.GetLogicalDrives;
  for drive in drives do lbDrives.Items.Add(drive);
end;
liefert die logischen Laufwerke. Um die Lw besser unterscheiden zu könen will ich noch die Laufwerksnamen hinzufügen Gibt es da bei den schönenn IOUtils oder sonst wo eine Funktion oder muss ich da auf die alte Tipp-Sammlung von Michael Puff zurückgreifen?
Gruß Willie.

FriedrichAT 11. Nov 2020 20:55

AW: TDirectory.GetLogicalDrives
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Willie!
Habe etwas in meinem "Fundus" gefunden...

Delphi-Quellcode:
uses DDsnippets;

procedure TForm1.Button1Click(Sender: TObject);
var SL: TStrings;
begin
  SL:= TStringList.Create;
  try
    DriveDisplayNames(SL);
    ComboBox1.Items.Assign(SL);
    ComboBox1.ItemIndex:= 0;
  finally
    SL.Free;
  end;
end;
Hoffe es hilft!!!

Willie1 12. Nov 2020 15:55

AW: TDirectory.GetLogicalDrives
 
Hallo Friedrich,
prima, es hilft. Danke.

Vorschlag an die Delphi-Macher: TDirectory.GetDriveLabel(drive: char) wäre nützlich und leicht zu implementieren.
Gruß Willie.

dummzeuch 12. Nov 2020 17:00

AW: TDirectory.GetLogicalDrives
 
Zitat:

Zitat von Willie1 (Beitrag 1477224)
Vorschlag an die Delphi-Macher: TDirectory.GetDriveLabel(drive: char) wäre nützlich und leicht zu implementieren.

Da die "Delphi Macher" hier nicht mitlesen, wäre ein Quality Portal Eintrag sinnvoll.

Willie1 14. Nov 2020 17:38

AW: TDirectory.GetLogicalDrives
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es funktioniert leider nicht.
Es knallt beim Beenden des Programms.
Ist nicht so schlimm, ich benutze die Tipp-Sammlung von Michael Puff.
Schönes Wochenende Willie.

FriedrichAT 15. Nov 2020 09:49

AW: TDirectory.GetLogicalDrives
 
Hallo Willie!

Hätte Dir den Tipp nicht ungeteste angeboten...
Würde mich selbst interesieren warum es "knallt".
Etwas QC deiner Abfrage zu sehen um den "Es knallt beim Beenden des Programms" - Fehler
einzugreisen wäre nicht schlecht.

Gruß Friedrich

Delphi.Narium 15. Nov 2020 14:10

AW: TDirectory.GetLogicalDrives
 
Würde nicht ein
Delphi-Quellcode:
uses DDsnippets;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DriveDisplayNames(ComboBox1.Items);
  ComboBox1.ItemIndex := 0;
end;
reichen?

Willie1 15. Nov 2020 18:07

AW: TDirectory.GetLogicalDrives
 
Hallo Friedrich,
ich habe deine Quelltexte zunächst unverändert übernommen. DDSnippets.pas habe ich nie geändert.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
begin
   SL:=TStringList.Create;
   try
     DriveDisplayNames(SL);
     ComboBox1.Items.Assign(SL);
     ComboBox1.ItemIndex:=0;
   finally
     SL.Free;
   end;
end;
Ich habe es jetzt so geschrieben.
Beim ersten Durchlauf funktioniert es, bei weiteren gibt es eine Fehlermeldung, probiere es bitte selbst aus. (du brauchst es ja nur zu kopieren)
Gruß Willie.

Dalai 15. Nov 2020 19:14

AW: TDirectory.GetLogicalDrives
 
@Willie1:
Du solltest den Debugger häufiger und intensiver benutzen. Setze einen Breakpoint an der Stelle, an der die AV auftritt. Schau dir an, in welcher Routine das passiert und setze ggf. an den Anfang selbiger einen weiteren Breakpoint. Dann gehe Schritt für Schritt (F7) durch den Code und schau dir im Debugger den Inhalt der Variablen an, ob die einen plausiblen Inhalt haben.

Ich hab den Code grade ausprobiert, und kann da kein Problem feststellen, weder im Delphi 5 noch im XE2. Andererseits hab ich natürlich auch nicht die Laufwerke in deinem Rechner.

Wenn ich eine Vermutung anstellen darf: Es ist sehr gut denkbar, dass die Benutzung dieser Unit Fehler in deinem Code offenbart, die bisher nicht aufgefallen sind, verdeckt geblieben sind.

[EDIT]
Auf meinem Host knallt es auch beim dritten Aufruf der Funktion, in den VMs hingegen gar nicht.
[/EDIT]

Grüße
Dalai

FriedrichAT 15. Nov 2020 22:10

AW: TDirectory.GetLogicalDrives
 
Hallo willie!

Wie Dalai schon schrieb gibt es eventuell Probleme mit deinen vorhandenen Laufwerken.
Habe Dir eine PN geschrieben in der ich Dir den Debugger empfohlen habe, um so den Fehler
einzugreisen.
Was war das ergebnis?
Würde mich persönlich interesieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr.
Seite 1 von 4  1 23     Letzte »    

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