Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Code - kann den jemand für ne DLL umschreiben (https://www.delphipraxis.net/20855-delphi-code-kann-den-jemand-fuer-ne-dll-umschreiben.html)

sugaFRAG 24. Apr 2004 13:38


Delphi Code - kann den jemand für ne DLL umschreiben
 
hi Jungs,

also ich hab folgenden Code in meinem Projekt um die Laufwerke (CD LWs. E:\ F:\ u.s.w.) zu erkenennen:

Delphi-Quellcode:
function RefreshDriveList(): string;
var
  i,typ: Integer;
  s: string;
begin
  for i:=0 to 25 do
  begin
    s := Chr(i + 65) + ':\';
    typ := GetDriveType(PChar(s));
    if typ = DRIVE_CDROM then
    form1.ComboBox1.Items.Add(s);
  end;
end;
soo kann mir diesen code jetzt jemand umschreiben für eine dll ?
also das ich das vielleicht so aufrufen kann:

combobox1.items.add(RefreshDriveList());

geht das ? Also ich will eigentlich nur das ich dass praktisch in ne function hab die ich mit einem befehl aufrufen kann ohne das in der function die laufwerke gesetzt werden, denn in ner dll erkennt der ja die combobox nicht !!!

danke im voraus.

Muetze1 24. Apr 2004 14:34

Re: Delphi Code - kann den jemand für ne DLL umschreiben
 
Moin!

Delphi-Quellcode:
function RefreshDriveList(DrivesList : TStrings): string;
var
  i,typ: Integer;
  s: string;
begin
  for i:=0 to 25 do
  begin
    s := Chr(i + 65) + ':\';
    typ := GetDriveType(PChar(s));
    if typ = DRIVE_CDROM then
      DrivesList.Add(s);
  end;
end;
Aufruf:
Delphi-Quellcode:
  RefreshDriveList(ComboBox1.Items);
MfG
Muetze1

Sharky 24. Apr 2004 14:38

Re: Delphi Code - kann den jemand für ne DLL umschreiben
 
Und wenn Du dann noch das Funktionsergebniss änderst kannst Du prüfen ob überhaupt ein CD-ROM vorhanden ist.

Delphi-Quellcode:
function RefreshDriveList(DrivesList : TStrings): Boolean;
var
  i,typ: Integer;
  s: string;
  b_temp : Boolean;
begin
  b_temp := False;
  for i:=0 to 25 do
  begin
    s := Chr(i + 65) + ':\';
    typ := GetDriveType(PChar(s));
    if typ = DRIVE_CDROM then
    begin
      DrivesList.Add(s);
      b_temp := True;
    end;
  end;
  result := b_temp;
end;
Aufruf:
Delphi-Quellcode:
  if not (RefreshDriveList(ComboBox1.Items)) then
  begin
    ShowMessage ('Keine CD-ROM Laufwerke gefunden');
  end;

Robert Marquardt 24. Apr 2004 15:50

Re: Delphi Code - kann den jemand für ne DLL umschreiben
 
Das wuerde ich so nicht in einer DLL machen. Es werden Strings in der DLL alloziiert.
Es muss deshalb ShareMem verwendet werden was die DLL Delphi-spezifisch macht.

Warum ueberhaupt in der DLL machen? Das ist doch eine simple Funktion die ins Hauptprogramm gehoert.
Ich nehme daher an das das ganze Design des Programms mangelhaft ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 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-2025 by Thomas Breitkreuz