Avatar billede janbb Juniormester
23. december 2002 - 14:19 Der er 7 kommentarer og
1 løsning

alternativ shellexecute

Nedenstående procedure kunne jeg tænke mig udskiftet med en specifik "programåbner": altså at filen altid åbnes med
et program jeg har valgt.Det er et delphiprogram og kunne måske incorporeres i programmet.Det er lidt længe siden jeg har leget med programmeringstasterne, så jeg håber at blive "skubbet" lidt i gang af en der er lidt mere rutineret.





procedure TForm3.Button1Click(Sender: TObject);


var
cnt: integer;
begin
for Cnt := 0 to DBMemo1.Lines.Count-1 do
begin

Shellexecute(handle,'open',PChar(DBMemo1.Lines[Cnt]),nil,nil,sw_show);
  // Memo.Lines[Cnt] - indeholder én filhenvisning
  // Shellexecute(handle,'open',PChar(memo1.lines[1]),nil,nil,sw_show);

end;
Avatar billede dkn Nybegynder
23. december 2002 - 15:10 #1
forstår ikke helt dit spørgsmål?
Vil du registrere en ny extension som dit program skal åbne?
Gider du ikke bruge shellexecute til åbning af filer?
....
Avatar billede justincase1089 Nybegynder
23. december 2002 - 17:39 #2
hmm
Avatar billede hatecaps Nybegynder
23. december 2002 - 21:31 #3
hvis du har adgang til sorcen for det program der skal åbne filerne, eller du ved at man kan kalde det med et filnavn som parameter, så kan du fint bruge shellexecute..

shellexecute(handle,nil,pchar('mitprogram.exe'),pchar('minfil.txt'),nil,sw_show);

hvis mitprogram.exe kigger på paramstr vil det se minfil.txt og bruge den til hvad det nu er den bruger sådan noget til ;-)

ha' det godt
hatecaps
Avatar billede janbb Juniormester
24. december 2002 - 03:10 #4
justincase1089: Jeg går ud fra det er en fejl du har skrevet dig på til et svar.
dkn: nej jeg vil ikke lave om på de associerede fil-extentioner.Det ville ellers være en let måde at løse det på, men programmet er ikke så vitalt at det skal dominere instillingerne på min computer.

hatecaps:Jeg prøver lige at fordøje lidt på din programlinie, men umiddelbart virker det ikke som om det kan gå i tråd med programopbygningen.

Det er et dbmemofelt i en database, der for hver record indeholder en filhenvisning.Jeg har så denne button, hvis kildekode er angivet, der åbner den angivne fil (i hver record), når jeg klikker mig igennem de forsk. rekords.D.v.s. hvis det er en doc-fil åbnes det i word, hvis det er en pas fil åbnes det i delphi, hvis det er en htm-fil åbnes det i en browser o.s.v..Problemet er at jeg gerne ville have htm-filerne til at exekveres i en delphi-konstrueret browser, der altså foreligger i exe-format, men jo osse formentlig kan indkobles i programmet (der er kun få funktioner med).
Håber det kan kaste lidt lys over problematikken.
Avatar billede janbb Juniormester
24. december 2002 - 03:20 #5
Men jeg prøver noget i stil med det her:  shellexecute(handle,nil,pchar('mitprogram.exe'),PChar(DBMemo1.Lines[Cnt]),nil,nil,sw_show);
og vender så tilbage.
Avatar billede dkn Nybegynder
24. december 2002 - 03:33 #6
ok i såfald kan du vel bare bruge paramstr og paramscount:

i 'mitprogram.exe' Oncreate:
Var
st:String;
i:integer;
begin
st := '';
for i := 1 to paramcount-1 do
st := st+paramstr(I);

//ok nu har vi så alt param teksten, dvs du har filnavnet.
if extractfilext(st) = '.txt' then
    memo1.lines.loadfromfile(st) else
if extractfilext(st) = '.htm' then
    webbrowser1.navigate('file://'+st);
end;

jeg har her gået ud fra at der i din start kode har stået:
shellexecute(handle,nil,pchar('mitprogram.exe'),PChar(DBMemo1.Lines[Cnt]),nil,nil,sw_show);


ps jeg ved ikke om koden jeg skrev er helt uden fejl med prøv

dkn
Avatar billede janbb Juniormester
24. december 2002 - 04:11 #7
hatecaps: det gik fint med at få 'mitprogram.exe' til at starte op,men den tager ikke filen ind.
dkn: Jeg prøver lige at kigge på det.
Avatar billede janbb Juniormester
24. december 2002 - 04:56 #8
WebBrowser1.Navigate(Table1Genvej.AsString);
løste problemet
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