![]() |
TDirectory.GetLogicalDrives
Hallo Leute,
das
Delphi-Quellcode:
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?
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; Gruß Willie. |
AW: TDirectory.GetLogicalDrives
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Willie!
Habe etwas in meinem "Fundus" gefunden...
Delphi-Quellcode:
Hoffe es hilft!!!
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; |
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. |
AW: TDirectory.GetLogicalDrives
Zitat:
|
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. |
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 |
AW: TDirectory.GetLogicalDrives
Würde nicht ein
Delphi-Quellcode:
reichen?
uses DDsnippets;
procedure TForm1.Button1Click(Sender: TObject); begin DriveDisplayNames(ComboBox1.Items); ComboBox1.ItemIndex := 0; end; |
AW: TDirectory.GetLogicalDrives
Hallo Friedrich,
ich habe deine Quelltexte zunächst unverändert übernommen. DDSnippets.pas habe ich nie geändert.
Delphi-Quellcode:
Ich habe es jetzt so geschrieben.
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; 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. |
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 |
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 03:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz