anoniem Geplaatst: 29 augustus 2002 Delen Geplaatst: 29 augustus 2002 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 Quote Link naar reactie
anoniem Geplaatst: 29 augustus 2002 Auteur Delen Geplaatst: 29 augustus 2002 het is wel zo bij %systemroot% dat gaat automatis naar winnt of windows ofzo Quote Link naar reactie
anoniem Geplaatst: 29 augustus 2002 Auteur Delen Geplaatst: 29 augustus 2002 [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] Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 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. Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 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. Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 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. Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 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. Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 Oh oke, ik had niet begrepen dat je het bestand wou openen. Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 [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] Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 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. Quote Link naar reactie
anoniem Geplaatst: 30 augustus 2002 Auteur Delen Geplaatst: 30 augustus 2002 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. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen