Avatar billede sorjak Nybegynder
22. oktober 2003 - 14:30 Der er 10 kommentarer og
1 løsning

Henvisning til cd-rom drev

Er ved at lave min første programmering i Delphi og har flg. spørgsmål:
Her lavet 1 knap(Tbutton) med (Topendialog) samt filter,
der skal bruges til at gennemse 1 mappe for en bestemt type filer og det virker fint når mappen ligger på mit c-drev. henvist: InitialDir(c:\filer)Men hvordan skriver man
når mappen kommer til at ligge på en cd-rom og drev bogstav
derfor bliver ukendt
Avatar billede dkn Nybegynder
22. oktober 2003 - 14:33 #1
Opendialogs.InitialDir := ExtractFileDrive(application.exe);

// uses sysutils
Avatar billede dkn Nybegynder
22. oktober 2003 - 14:33 #2
application.exename
Avatar billede sorjak Nybegynder
22. oktober 2003 - 16:19 #3
Hej dkn
Dit svar er muligvis rigtig men som sagt er det mit første program så jeg må nok have mere hjælp Så snart jeg fjener c:\filer fra InitialDir Boxen og prøver at skrive din linie
søger den i dokumentmappen på c-drevet istedet
Avatar billede dkn Nybegynder
22. oktober 2003 - 16:27 #4
den kode jeg gav skal du køre inden opendialog, så vil jeg tro det virker
Avatar billede sorjak Nybegynder
22. oktober 2003 - 19:12 #5
Ja det er måske ikke rigtig som jeg gør men kan ikke få det til at virke den går i dokumentmappen på c-drevet
Avatar billede dkn Nybegynder
23. oktober 2003 - 02:07 #6
måske jeg har misforstået dig.
Jeg troede at du havde et program som kom til at ligge på en cd senere, og så ville du starte din dialogbox der med:

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.InitialDir := ExtractFileDrive(application.exename) + '\';
  if OpenDialog1.Execute then
// ...
end;



Men istedet tror jeg det du prøver på at sige er at dit program stadig kører på harddisk, men du vil bare gerne starte på det første cdrom drev som findes på computeren:

procedure TForm1.Button1Click(Sender: TObject);
var
  Drive            : char;
begin
  for Drive := 'A' to 'Z' do
    if GetDriveType(pchar(Drive+ ':\')) = DRIVE_CDROM then
    begin
      OpenDialog1.InitialDir := Drive + ':\';
      if OpenDialog1.Execute then
        showmessage(OpenDialog1.FileName);
  // ...
        break; // stopper loop
    end;
end;
Avatar billede sorjak Nybegynder
23. oktober 2003 - 04:41 #7
Hej dkn
Nej du har ikke misforstået det, jeg ønsker at program / filer ligger på cd-rom
kan se at den kodelinie du skriver ikke helt er det jeg har prøvet så jeg vil vende tilbage til dig med svar senere
Avatar billede sorjak Nybegynder
23. oktober 2003 - 18:59 #8
Hej dkn
Har nu fået prøvet den øverste del af din kode og er sikker på at det er tæt på men.

Nu åbner dialogboxen i c:\delphi\projekt

Det jeg jo vil have er ?:\filer  hvor ?er lig med ukendt cd-rom drev og
og filer er den mappe med den type filer som filter er sat til.

Derfor kan du forklare disse stumper kode for mig

InitialDir := ExtractFileDrive (Er det koden som vælger cd-rom drevet)?
(application.exename) Her er jeg i tvivl har prøvet lidt af hvert men det har
ikke ændret på c:\delphi\projekt

+ '\'; her har jeg prøvet skrive uden ændring og med filer efter \ det gav dog ikke noget

// ...  har skrevet koden uden ændring men hvad betyder det?

Håber du har tid at svare
Avatar billede dkn Nybegynder
25. oktober 2003 - 21:25 #9
ligenu tager den stien til din exe fil og pakker drev bogstav ud og sætter den som initial dir.

Dvs når dit program kommer over på en cd fil den starte på fx D drevet
Avatar billede sorjak Nybegynder
27. oktober 2003 - 16:42 #10
Hej dkn

Har nu lavet cd og det virker!!!!!!

Der er dog en forskel når den ligger på hard disk åbner dialogboks
direkte i mappen "filer" og jeg kan der vælge den fil der ønskes
men når den kommer på cden skal der først vælges mappen "filer"
før den åbner mappen ?????
Når men du har fortjent dine points

Så hvis du har svaret på dette er det ok

Tak for hjælpen
Avatar billede dkn Nybegynder
27. oktober 2003 - 16:44 #11
procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.InitialDir := ExtractFileDrive(application.exename) + '\Filer\';
  if OpenDialog1.Execute then
// ...
end;


skulle jo gøre det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester