Vraag & Antwoord

Programmeren

[Delphi] bestand vanaf cdrom laden

11 antwoorden
  • ik wil een exe bestand maken met delphi. ik wil dat op een cd zetten samen met een ander bestand. het programma moet het oproepen. het probleem is dat mijn cd-drive op q: zit dat dat is vast niet zo bij iedereen. hoe kan ik naar universeel "een cdromspeler" verwijzen? iets zoals: %cdromspeler%\bestand.html BVD
  • het is wel zo bij %systemroot% dat gaat automatis naar winnt of windows ofzo
  • [quote:720db1f3de="hugovis"]ik wil een exe bestand maken met delphi. ik wil dat op een cd zetten samen met een ander bestand. het programma moet het oproepen. het probleem is dat mijn cd-drive op q: zit dat dat is vast niet zo bij iedereen. [/quote:720db1f3de] Je hebt gelijk! 8) [quote:720db1f3de] hoe kan ik naar universeel "een cdromspeler" verwijzen? iets zoals: %cdromspeler%\bestand.html [/quote:720db1f3de] Nee, ik herformuleer je vraag ff voor je: "Hoe kan ik ervoor zorgen dat mijn Delphi applicatie altijd dat bestand kan openen ongeacht locatie van mijn applicatie en bestand.html?" Aangenomen dat je applicatie en bestand.html in dezelfde directory staan, kun je het volgende doen: [code:1:720db1f3de] uses SysUtils, ... ... var MijnBestand: string; begin MijnBestand := ExtractFilePath(ParamStr(0)) + 'bestand.html'; end; [/code:1:720db1f3de]
  • Of: [code:1:2d011f8c85] var MijnBestand: string; begin MijnBestand := ExtractFileDir(Application.ExeName)+'\bestand.html'; end; [/code:1:2d011f8c85] Misschien iets moeilijker maar ik gebruik het zo altijd.
  • Bedankt voor de tips. Ik had op een andere site ook nog gevonden dat het op de volgende manier kan: [code:1:3b217df189] procedure TVakantie.DagboekClick(Sender: TObject); procedure OpenObject( sObjectPath : string ); begin ShellExecute( 0, Nil, PChar( sObjectPath ), Nil, Nil, SW_NORMAL ); end; begin OpenObject('bestand.html'); end; [/code:1:3b217df189] Het werkt nu ook als je het bestand vanuit een cd-rom wil laden.
  • Dan open je het bestand in het gekoppelde programma, meestal in de Internet Explorer... maar dan weet je nog niet waar het staat :-? je kan wel gewoon "bestand.html" (of ".\bestand.html") doen, dan ga je er dus vanuit dat het programma zoekt in de map waar de exe-file staat.
  • Ja, dat is ook de bedoeling. Het .exe-bestand en de html staan in dezelfde map. Is dit niet zo, dan kan je bv 'map/bestand.html' doen. Dan opent ie dat bestand in die map.
  • Oh oke, ik had niet begrepen dat je het bestand wou openen.
  • [quote:d4e6e91278="hugovis"]Bedankt voor de tips. Ik had op een andere site ook nog gevonden dat het op de volgende manier kan: [code:1:d4e6e91278] procedure TVakantie.DagboekClick(Sender: TObject); procedure OpenObject( sObjectPath : string ); begin ShellExecute( 0, Nil, PChar( sObjectPath ), Nil, Nil, SW_NORMAL ); end; begin OpenObject('bestand.html'); end; [/code:1:d4e6e91278] Het werkt nu ook als je het bestand vanuit een cd-rom wil laden.[/quote:d4e6e91278] Dit kan fout gaan. Je moet altijd het volledig pad opgeven. Dus dan zou je gecombineerd met eerdere code het volgende kunnen doen: [code:1:d4e6e91278] uses SysUtils, ... ... Private Declarations ExePath: String; procedure OpenObject(sObjectPath: String); begin ShellExecute(0, Nil, PChar(sObjectPath), Nil, Nil, SW_NORMAL ); end; procedure TForm1.OnCreate ExePath := ExtractFilePath(Application.ExeName); end; procedure TVakantieDagBoekClick(Sender: TObject); begin OpenObject(ExePath + 'bestand.html'); end; [/code:1:d4e6e91278]
  • h4xX0r; Ik heb jouw code ertussen gezet, maar hij geeft de volgende melding: [Error] Unit1.pas(52): Undeclared identifier: 'OnCreate' En Johan; misschien had ik mijn vraag niet helemaal goed gesteld.
  • Dat kan ook niet... OnCreate is een event, je moet die code die Haxxor bij OnCreate gezet heeft zelf bij OnCreate zetten. Dus dubbelklik op het form en dan plakken.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.