Avatar billede js_delphi Nybegynder
21. juli 2004 - 08:05 Der er 6 kommentarer og
1 løsning

Hvordan angives en sti i en edit boks?

Hej..

Ved tryk pä en knap pä en form, skal et andet dokument äbnes (f.eks. .doc, .xls, .txt osv.).
Hertil benytter jeg fölgende funktion, som iövrigt fungerer fint:

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open',
'c:\Yes.doc',
nil, nil, SW_SHOWNORMAL);
end;

Det skal dog väre valgbart, hvilken fil der äbnes fra programmet,
ved, at brugeren indtaster den fulde sti (f.eks. som ovenstäende ”c:\yes.doc”)  i en edit boks.

Hvordan erstatter jeg den forudprogrammerede sti af en redigerbar tekst fra edit boksen?
Formentlig temmeligt enkelt, men hvordan göres dette simplest?
Jeg benytter Delphi 7.

Pft.
Avatar billede pellelil Nybegynder
21. juli 2004 - 08:07 #1
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open',
edit1.text,
nil, nil, SW_SHOWNORMAL);
end;
Avatar billede js_delphi Nybegynder
21. juli 2004 - 08:14 #2
Har jeg allerede forsögt, men fölgende fejl vises af compileren:
Incompatible types: 'TCaption' and 'PAnsiChar'.
Avatar billede borrisholt Novice
21. juli 2004 - 08:14 #3
tsk tsk Pelle. Jeg troede du var for gammel til at posdte utested kode ;)

Prøv det her :

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'open', pointer(edit1.text) ,nil, nil, SW_SHOWNORMAL);
end;

Jens B
Avatar billede stone Forsker
21. juli 2004 - 08:17 #4
uses shellapi

procedure TForm1.Button1Click(Sender: TObject);
var
page: string;  //edit1 er en variabel som åbner alt
begin
page:= edit1.Text;
ShellExecute(0, 'open', PChar(page), nil, nil, SW_SHOWNORMAL);
end;
Avatar billede js_delphi Nybegynder
21. juli 2004 - 08:19 #5
Perfekt, tak for de hurtige svar!
Avatar billede borrisholt Novice
21. juli 2004 - 08:22 #6
stone>> Det er grov som du kan ;) Der er en performance forbedring ved at caste en streng til en pointer, i stedet for en PChar.

Prøv etv at kigge på Assembler koden til det følgende :

procedure TForm1.Button2Click(Sender: TObject);
var
  s : String;
  p : Pchar;
begin
  s := 'Her er en hest';
  p := Pointer(s);
  edit1.Text := p;
  p := Pchar(s);
  edit1.Text := p;
end;


Jens B
Avatar billede pellelil Nybegynder
21. juli 2004 - 15:47 #7
borrisholt> Jeg ved absolut INTET om noget som helst, men det afholder mig alligevel ikke fra at udtale mig om det med stor autoisation.
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