Avatar billede sorjak Nybegynder
31. oktober 2003 - 05:15 Der er 7 kommentarer og
2 løsninger

Åbning af filer

Har brugt følgende kode til at åbne filer med her eks. på
pdf filer.

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.InitialDir:=ExtractFileDrive(application.exename) + '\PDF FILER\';
if opendialog1.Execute then
label1.Caption:=opendialog1.FileName;
end;

Dette virker fint men jeg skal højre klikke og bruge
Åbn med hver gang selv om jeg sætter flue ben til
Hvordan åbnes filer af forskellig typer med det program
der hører til filtypen hvergang
Avatar billede Slettet bruger
31. oktober 2003 - 07:45 #1
procedure SetAssociation(Extention, Name: string; IconIndex: Integer = 0);
var
  Regist: TRegistry;
begin
  Regist := TRegistry.Create;
  try
    with Regist do
    begin
      RootKey := HKEY_LOCAL_MACHINE;
      if OpenKey('\Software\Classes\.' + Extention, true) then
      begin
        WriteString('', Name);
        if OpenKey('\Software\Classes\' + Name, true) then
        begin
          WriteString('', Name);
          if OpenKey('\Software\Classes\' + Name + '\DefaultIcon', true) then
            WriteString('', Application.ExeName + ',' + IntToStr(IconIndex));
          if OpenKey('\Software\Classes\' + Name + '\shell\open\command', true) then
            WriteString('', Application.ExeName + ' %1');
        end;
      end;
    end;
  finally
    Regist.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SetAssociation('Mpp', Application.ExeNeme);
end;

Den kode gør så .mpp filer bliver åbnet af programmet selv.
Avatar billede sorjak Nybegynder
31. oktober 2003 - 09:06 #2
Hej hejhej

Jeg har sat din kode ind og får så følgende fejl meddelelser:
[Error] drift2.pas(77): Undeclared identifier: 'TRegistry'
[Error] drift2.pas(79): Missing operator or semicolon
[Error] drift2.pas(83): Undeclared identifier: 'RootKey'
[Error] drift2.pas(84): Undeclared identifier: 'OpenKey'
[Error] drift2.pas(98): Missing operator or semicolon
[Error] drift2.pas(103): Identifier redeclared: 'TForm1.Button1Click'

Det skal siges at jeg er ret ny på delphi plan så der er kun ændret
i næstsidste linie af din fil ExeNeme  til ExeName
måske skal jeg ændre mere?
Avatar billede Slettet bruger
31. oktober 2003 - 09:31 #3
Glemte lige at sige du skal tilføje Registry til uses :)
Avatar billede sorjak Nybegynder
31. oktober 2003 - 09:47 #4
Der er så denne fejl tilbage?
begin|cursor blinker her
SetAssociation('Mpp', Application.ExeName);

[Error] drift2.pas(103): Identifier redeclared: 'TForm1.Button1Click'
Avatar billede Slettet bruger
31. oktober 2003 - 11:38 #5
Det er fordi der er to TForm1.Button1Click.. Du skal bare sætte SetAssociation('Mpp', Application.ExeName); ind der hvor du vil registrere den nye fil type.
Avatar billede sorjak Nybegynder
31. oktober 2003 - 13:01 #6
Hej hejhej
Du må nok skære det ud i pap eller lign.Har prøvet at sætte ind diverse steder i min kode (koden går jo på at åbne en mappe som indholder flere pdf filer
hvor jeg så vælger en det ved du måske nok)?Men jeg får stort set denne fejl
ligmeget hvor jeg sætter ind!!!!!!!

procedure TForm1.Button1Click(Sender: TObject);
begin
SetAssociation|cursor blinker her ('Mpp', Application.ExeName)
OpenDialog1.InitialDir:=ExtractFileDrive(application.exename) + '\PDF FILER\';
if opendialog1.Execute then
label1.Caption:=opendialog1.FileName;
end;


[Error] drift2.pas(58): Undeclared identifier: 'SetAssociation'
[Error] drift2.pas(59): Missing operator or semicolon

Kan du skrive min kode med din sammen?
Avatar billede Slettet bruger
31. oktober 2003 - 15:01 #7
[Error] drift2.pas(58): Undeclared identifier: 'SetAssociation'

Det er fordi at funktionen SetAssociation er skrevet under det sted du kalder den. Du kan evt. sætte:
procedure SetAssociation(Extention, Name: string; IconIndex: Integer = 0);
ind lige over det sted hvor der står implementation.


Og den anden fejl er fordi du mangler et semikolon:

SetAssociation('Mpp', Application.ExeName);
Avatar billede sorjak Nybegynder
31. oktober 2003 - 16:28 #8
Ja nu kommer der ikke nogen fejl men det virker ikke

Når min dialogboks med pdf filer vises vælger jeg en fil
tryker på 'åbn' knap så ændre den label til button1 fra (Gennemse filer)
til c:\programmer\Borland\Delphi7\Projekt\PDF Filer\2286dk

højrekliker jeg på fil og vælger program til at åbne med(adobe)og afkrydser
brug altid det valgte program.........osv
husker den det ikke????

vælger jeg 'Engenskaber' på tilfældig pdf fil i mappen
Filtype: Adobe Acrobat Document
Åbnes med: Adobe Reader 6.0
Avatar billede sorjak Nybegynder
22. december 2003 - 05:34 #9
Lukker spørgsmål
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