AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Nicht belegte Laufwerksbuchstaben als Pulldown- Menü
Thema durchsuchen
Ansicht
Themen-Optionen

Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

Ein Thema von hagen28 · begonnen am 25. Jun 2007 · letzter Beitrag vom 25. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
hagen28

Registriert seit: 25. Jun 2007
9 Beiträge
 
#1

Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 16:46
Hi,
ich programmiere noch nicht lange und hatte auch gerade erst ein dreiviertel Jahr Unterricht in der Schule. Jetzt bin ich über schweres Problem gestolpert und hoffe ihr könnt mir helfen.
Ich will ein Programm schreiben, was bestimmte Ordner als Laufwerke einbindet. Wie das geht, ist kein Problem, da es den schönen MS-Dos Befehl subst gibt. Ich bräuchte aber in meinem Programm eine Pulldown- Liste, in der alle noch nicht belegten Laufwerksbuchstaben aufgeführt sind. Wenn man einen Buchstaben auswählt, soll dieser in einem String gespeichert werden. Ich habe überhaupt keine Ahnung wie man sowas angehen kann und auch Google war nicht hilfreich.
Ich hoffe ihr könnt mir da weiterhelfen.

Ich wäre euch für leicht verständliche Erklärungen, bzw. Code- Beispiele sehr dankbar.
Jan
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 16:48
Hallo, herzlich Willkommen in der DP .
Schau Dir mal die Win32-API-Funktion GetDriveType an.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hagen28

Registriert seit: 25. Jun 2007
9 Beiträge
 
#3

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 16:52
So viel hilft mir das aber nicht weiter. Laut Delphi Hilfe kann man damit den DatenträgerTYP bestimmen.
Zitat:
The GetDriveType function determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 16:53
Hi,

wen du diesen Code ein wenig umschreibst, kommst du damit zum gewünschten Ergebnis.
Versuche den Code zu verstehen, führe ihn mal 1:1 aus und dann siehst du sicher schnell, was du abändern musst.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 16:55
Ich glaube er meint du sollst es anhand des Rückgabewertes machen. Auf diese Art und Weise kannst du auch GetVolumeInformation nutzen.
Am besten ist natürlich einfach die Verwendung von GetLogicalDrives weil man daran genau erkennt welche Laufwerksbuchstaben genutzt werden und welche nicht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 16:57
@SirThornberry
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hagen28

Registriert seit: 25. Jun 2007
9 Beiträge
 
#7

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 17:07
Vielen Dank soweit. Besonders an Matze. Der Link hat mich ein ganzes Stück weiter gebracht. Musste ja auch nur drei Buchstaben und ein Leerzeichen einfügen
Nur wie kann ich jetzt ein Pulldown Menü erstellen und dort die Einträge der Listbox speichern? Hab leider noch nie mit Pulldown Menüs gearbeitet, denke aber dass es nicht allzu schwer ist, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 17:12
Hi,

dafür nutzt du einfach eine TComboBox. Diese kannst du gleich füllen wie eine TListBox.

Edit: Ich kenne deine Änderungen nicht, aber so hätte ich's wohl gelöst:

Delphi-Quellcode:
for I := 0 to 25 do
  if not DriveExists[I] then
    ComboBox1. // ...
  Mit Zitat antworten Zitat
hagen28

Registriert seit: 25. Jun 2007
9 Beiträge
 
#9

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 17:24
Mit den drei Buchstaben + ein Leerzeichen meinte ich das "not ". Damit hatte ich dann ja schon eine Auflistung aller nicht belegten Laufwerksbuchstaben. Natürlich kann man die obere Funktion komplett löschen, da ich ja nicht wissen will, ob der Buchstabe vllt. ein CD- Rom Laufwerk ist. Ich weiß ja, dass er noch nicht vergeben ist.

Dem Tipp mit der ComboBox werde ich gleich nachgehen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Nicht belegte Laufwerksbuchstaben als Pulldown- Menü

  Alt 25. Jun 2007, 17:25
Hallo Jan,

es gibt noch mehr Möglichkeiten. Insbesondere interessieren mich die Laufwerkstypen nicht, wenn ich die freien Laufwerksbuchstaben wissen möchte:

Delphi-Quellcode:
procedure GetLogicalDriveLetters(s: TStrings; mounted: Boolean = False);
var
  dw: DWORD;
  i: Integer;
  letter: Char;
begin
  s.BeginUpdate; // Visualisierung abschalten
  s.Clear; // Mit leerer Liste beginnen
  dw := GetLogicalDrives; // Mount-Status aller Laufwerksbuchstaben
  for letter := 'Ato 'Zdo // Schleife über alle Laufwerke
  begin
    if not mounted xor Odd(dw) then // Ein Rätsel für dich
      s.Add(letter + ':'); // Dann ist Laufwerksbuchstabe frei
    dw := dw shr 1; // Nächstes Status-Bit auf Bit-Position 0 schieben
  end;
  s.EndUpdate; // Visualisierung wieder einschalten
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  GetLogicalDriveLetters(ComboBox.Items);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 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