Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Falsche Reihenfolge der Laufwerke! (https://www.delphipraxis.net/55996-falsche-reihenfolge-der-laufwerke.html)

100nF 30. Okt 2005 09:24


Falsche Reihenfolge der Laufwerke!
 
hallo zusammen,

ich habe schon überall gesucht und nichts gefunden!
ich bin schon fast am verzweifeln. :cry:

also ich habe die komponente TCDRip und die Komponente TCDDB. nun habe ich eine combobox in der die CD-Laufwerke aufgelistet werden.
wenn ich nun ein laufwerk auswähle, wird bei den zwei Komponenten TCDRip und TCDDB das laufwerk festgelegt, und die tracks müssten in einer listview aufgelistet werden. Das funktioniert allerdings nicht richtig.

Das Problem habe ich schon rausgefunden: Bei der Komponente TCDRip haben die Laufwerke nicht die gleiche Reihenfolge wie die Kompo TCDDB. Bei der TCDDB ist die Reihenfolge Standard, also die Laufwerksbuchstaben sind nach dem Alphabet sortiert.

Bei der Komponente TCDRip wird allerdings nicht mit dem Laufwerksbuchstaben gearbeitet, sondern mit der property CDRomNum (Integer). Da aber die Reihenfolge vertauscht ist, kann ich nicht sagen E:\ = 0 , F:\ = 1 , G:\ = 2.

Die Kompo TCDRip hat aber noch die property CDRomName. Ich kann z.B. CDRip.CdRomNum auf 0 stellen, und dann mit CDRip.CDRomName die Laufwerksbeschreibung auslesen (z.B. "PHILIPS CDRW/DVD CDD5263")

nun müsste ich aus dieser information den Laufwerksbuchstaben herausfinden, und ich weiss nicht ob und wie es geht.
also von "PHILIPS CDRW/DVD CDD5263" müsste ich z.B. auf "G:\" kommen.

ich hoffe ihr versteht mein problem und könnt mir helfen!! :bounce1:

Liebe Grüsse aus der Schweiz
urbanbruhin

Garfield 30. Okt 2005 14:16

Re: Falsche Reihenfolge der Laufwerke!
 
Zitat:

Zitat von urbanbruhin
Bei der Komponente TCDRip wird allerdings nicht mit dem Laufwerksbuchstaben gearbeitet, sondern mit der property CDRomNum (Integer). Da aber die Reihenfolge vertauscht ist, kann ich nicht sagen E:\ = 0 , F:\ = 1 , G:\ = 2.

Bei der BASSCD.DLL ist es ähnlich. Da werden die Laufwerke auch mit Ziffern identifiziert. Den Laufwerksbuchstaben erhält man dort mit der Funktion BASS_CD_GetDriveLetter. Vielleicht gibt es in der TCDRip etwas entsprechendes.

Nachtrag: In der CDRip_DLL.pas steht:

Delphi-Quellcode:
    TCDROMParams = packed record
        lpszCDROMID            : array[0..255] of char;  // CD-ROM ID, must be unique to index settings in INI file
Das könnte es sein?

100nF 30. Okt 2005 18:19

Re: Falsche Reihenfolge der Laufwerke!
 
Zitat:

Zitat von Garfield
Bei der BASSCD.DLL ist es ähnlich. Da werden die Laufwerke auch mit Ziffern identifiziert. Den Laufwerksbuchstaben erhält man dort mit der Funktion BASS_CD_GetDriveLetter. Vielleicht gibt es in der TCDRip etwas entsprechendes.

das habe ich auch schon gesucht, ich wurde allerdings nicht fündig...

Zitat:

Zitat von Garfield
Nachtrag: In der CDRip_DLL.pas steht:

Delphi-Quellcode:
    TCDROMParams = packed record
        lpszCDROMID            : array[0..255] of char;  // CD-ROM ID, must be unique to index settings in INI file
Das könnte es sein?

also sollte das heissen, dass in einer INI zu den Laufwerksbuchstaben die entsprechenden IDs zugeortnet sind?
also im Programmverzeichnis und beim ordner wo die komponente drin ist, habe ich nirgens eine INI gefunden...

gruss
urbanbruhin

marabu 30. Okt 2005 18:42

Re: Falsche Reihenfolge der Laufwerke!
 
Hallo Urban,

du erhöhst deine Chancen auf qualifizierte Hilfestellung, wenn du für Komponenten, die nicht zum Standard-Lieferumfang von Delphi gehören, einen URL angibst - ganz besonders bei freien oder Trial-Komponenten.

Grüße vom marabu

Garfield 30. Okt 2005 18:46

Re: Falsche Reihenfolge der Laufwerke!
 
Das weiß ich leider auch nicht. Vielleicht ist damit auch gemeint, dass CDex sie in seine INI schreibt. Ich habe noch nicht damit gearbeitet. Nach den Screnshots verwendet CDex nur die Bezeichnung des Laufwerkes. Aber es gibt dort auch eine CDDB-Abfrage. http://www.mpex.net/software/software.html?r=vp&id=cdex

Alternativ sollte es auch über
Delphi-Quellcode:
    TCDROMParams = packed record
        ...
   btTargetID      : BYTE;             // SCSI target ID
   btAdapterID      : BYTE;             // SCSI Adapter ID
   btLunID              : BYTE;             // SCSI LUN ID
gehen.

Garfield 30. Okt 2005 18:50

Re: Falsche Reihenfolge der Laufwerke!
 
Zitat:

Zitat von marabu
du erhöhst deine Chancen auf qualifizierte Hilfestellung, wenn du für Komponenten, die nicht zum Standard-Lieferumfang von Delphi gehören, einen URL angibst - ganz besonders bei freien oder Trial-Komponenten.

TCDRip ist eine Komponente, welche auf eine DLL aus dem CDex-Projekt zugreift.

Mit Google findet man sie zum Beispiel dort:

http://www.inspired.sk/delphi/compon...nent.php?ID=29
http://delphi.triger.com.pl/index.php?MENU_ID=6

100nF 30. Okt 2005 19:01

Re: Falsche Reihenfolge der Laufwerke!
 
Zitat:

Zitat von Garfield
Alternativ sollte es auch über
Delphi-Quellcode:
    TCDROMParams = packed record
        ...
   btTargetID      : BYTE;             // SCSI target ID
   btAdapterID      : BYTE;             // SCSI Adapter ID
   btLunID              : BYTE;             // SCSI LUN ID
gehen.

kannst du das mal genauer erklären?
was kann ich mit den drei Eigenschaften machen?

Danke für deine Hilfe!

Garfield 30. Okt 2005 19:19

Re: Falsche Reihenfolge der Laufwerke!
 
Klicke mal auf dieser Seite http://www.vcdeasy.org/modules.php?name=_ScreenShots auf das erste Bild. Es wird dann in einem anderen Fenster vergrößert dargestellt. Bei CD Writer siehst Du dann "2,1,0" vor dem Laufwerksnamen. Das sind diese IDs. Damit wird beschrieben, wo die Laufwerke hardwaremäßig im Rechner angeschlossen sind.

Leider kann ich es Dir nicht näher erklären, da ich jetzt auf Montage fahren muss.

100nF 30. Okt 2005 19:36

Re: Falsche Reihenfolge der Laufwerke!
 
danke für deine antwort, ich denke daraus lässt sich etwas machen!! :bounce1:

gruss
urbanbruhin

100nF 1. Nov 2005 10:48

Re: Falsche Reihenfolge der Laufwerke!
 
hi, ich nochmal

ich habe jetzt mal versucht, die drei eigenschaften (oder was auch immer) btTargetID, btAdapterID und btLunID auszulesen.

ich habe folgendes probiert:
Delphi-Quellcode:
var b: byte;
begin
  b := cdrip_dll.TCDROMParams.btAdapterID;
end;
Ergebnis:
Zitat:

[Fehler] Unit8.pas(790): Objekt oder Klassentyp erforderlich
irgendwas mache ich falsch, aber ich weiss einfach nicht was...

kann mir vielleicht jemand helfen?

thx

urbanbruhin


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr.
Seite 1 von 3  1 23      

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-2025 by Thomas Breitkreuz