Avatar billede hallubaloo Nybegynder
27. februar 2009 - 16:12 Der er 11 kommentarer og
2 løsninger

eget fil format

Har udviklet et lille program hvor en 'SaveDialog' og 'OpenDialog' kan åbne og gemme *.gw filer (har bare tilføjet dem i Filter Editor).

Når jeg så gemmer en *.gw fil, så kender Windows naturligvis ikke denne filtype, og jeg skal så angive et standard program (mit program) før jeg kan åbne filen ved bare at dobbeltklikke på den.

1. Hvordan får jeg mit program til at oprette filformatet *.gw ude hos brugerne?

2. Det må være noget med registreringsdatabasen, eller?

3. Skal det evt. gøres under installationen, eller kan jeg få programmet til at tjekke hver gang det starter op, og så oprette den, hvis den mangler i systemet?
Avatar billede kroning Nybegynder
27. februar 2009 - 16:20 #1
Avatar billede nca Juniormester
27. februar 2009 - 16:30 #2
Du skal skrive i registry, når du installerer dit program på en maskine.
Enkeltheder kan du finde i denne artikel:
http://www.daycounter.com/LabBook/Changing-File-Associations-With-Registry-Editor.phtml
Avatar billede nca Juniormester
27. februar 2009 - 16:32 #3
Det ser ud som om kroning og jeg har fundet den samme artikel.
Så må den være god ;-)
Avatar billede hallubaloo Nybegynder
27. februar 2009 - 16:44 #4
Jeg kigger lige på det. Kan være jeg får nogle spørgsmål. Er ikke videre skarp til Delphi endnu ;)
Avatar billede hallubaloo Nybegynder
28. februar 2009 - 14:09 #5
Er altså forvirret over to ting.
Skal jeg have koden i min installation?
Jeg bruger Inno Setup v.5, så ved ikke helt hvordan jeg skulle kunne gøre det?
Var det ikke nemmere at få mit program til at tjekke registreringsdatabasen ved opstart af programmet?
Så kunne jeg jo smide koden i min SplashScreen.

En helt anden ting er at jeg ikke ved hvad jeg skal skrive.
De eksempler i kom med forvirre mig lidt :(
Avatar billede kroning Nybegynder
28. februar 2009 - 15:34 #6
Koden skal være i dit program.
I det link jeg henviste til kan du hente et demo program:
http://delphi.about.com/library/weekly/code/appextension.zip

der er kun en enkelt procedure der skal kaldes for at ordne tingene, nemlig:
procedure RegisterFileType(ExtName:String; AppName:String);
Avatar billede hallubaloo Nybegynder
01. marts 2009 - 00:33 #7
Du mener at jeg kun skal bruge den éne linje? Eller misforstår jeg dig?

Fandt dette i det program du henviste til:

---
procedure RegisterFileType(ExtName:String; AppName:String) ;
var
  reg:TRegistry;
begin
  reg := TRegistry.Create;
  try
  reg.RootKey:=HKEY_CLASSES_ROOT;
  reg.OpenKey('.' + ExtName, True) ;
  reg.WriteString('', ExtName + 'file') ;
  reg.CloseKey;
  reg.CreateKey(ExtName + 'file') ;
  reg.OpenKey(ExtName + 'file\DefaultIcon', True) ;
  reg.WriteString('', AppName + ',0') ;
  reg.CloseKey;
  reg.OpenKey(ExtName + 'file\shell\open\command', True) ;
  reg.WriteString('',AppName+' "%1"') ;
  reg.CloseKey;
  finally
  reg.Free;
  end;
---
Er det dét jeg skal bruge? og hvad skal jeg sætte ind hvor?
Ja undskyld, men jeg er altså total NEWBIE :)
Avatar billede hallubaloo Nybegynder
01. marts 2009 - 01:38 #8
Neeeeeeeeeeeej... jeg var lige ved at græde, da jeg for lidt siden kom til at gemme et andet lille program, og opdagede at jeg havde overskrevet programmet i denne tråd.

Så nu skal jeg altså starte forfra :(
Men I må gerne lige hjælpe mig alligevel, selv om der nok lige går en dag eller to med at få genopbygget det. Skal jo bruge det alligevel, når jeg engang kommer så langt igen..
Hvor DUM har man lov at være?
Avatar billede kroning Nybegynder
01. marts 2009 - 09:50 #9
Jeg vil foreslå at du får fat i noget materiale om det grundliggende i delphi/pascal som f.eks. procedurer og funktioner. Der findes masser af hjemmesider og bøger om dette.
Avatar billede eht Nybegynder
01. marts 2009 - 11:43 #10
Jeg bruger denne procedure til at registrere filtyper.
Programmet skal køres med admin-rettigheder.
Under Vista skal dit program startes med et højreklik/Kør som administrator, hvis man ikke har sørget for at programmet selv spørger om lov via UAC (User Acount Control) systemet.

Denne procedure kaldes f.eks. fra OnCreate
Filetype = *.ext (din filetype)
Description = En ganske kort beskrivelse af din filtype.
Key (kan evt. angives til '', ellers feks. programnavnet uden .exe)
Icon = sti til ikon, hvis man ikke ønsker at benytte programmet ikon.



procedure RegisterFiletype(Filetype,Key,Description,Icon,HostProgram:string);
var MyReg : TRegInifile;
    ct : integer;
begin

    // make a correct file-extension
    ct := pos('.',Filetype);
    while ct > 0 do
    begin
      delete(Filetype,ct,1);
      ct := pos('.',Filetype);
    end;
    if (Filetype = '') or (HostProgram = '') then exit; //not a valid file-ext or ass. app
    Filetype := '.' + Filetype;
    MyReg := TRegInifile.create('');
    try
        MyReg.RootKey := HKEY_CLASSES_ROOT; // where all file-types are described
        if Key = '' then Key := copy(Filetype,2,maxint)+'_auto_file'; // if no key-name is given,
                                                            // create one
        MyReg.WriteString(Filetype,'',Key); // set a pointer to the description-key
        MyReg.WriteString(Key,'',Description); // write the description
        if icon <> '' then
          MyReg.WriteString(Key+'\DefaultIcon','',Icon); // write the def-icon if given
        MyReg.WriteString(Key+'\shell\open\command','', HostProgram + ' "%1"'); //association
    finally
            MyReg.free;
    end;

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
Avatar billede hallubaloo Nybegynder
01. marts 2009 - 11:58 #11
#9
Har den store delphi 7 bibel, og adskillige hjemmesider, samt en lærer der underviser os i Delphi. Men jeg vil jo bare gerne hurtigere fremad, end han kan tillade sig at gå. Han skal jo have hele klassen med.

#10 Kigger lige på det om et par timer, når programmet er genopbygget hehe ;)
Avatar billede eht Nybegynder
01. marts 2009 - 13:23 #12
Skulle du i øvrigt have lyst til at lære alt det grundlæggende i Delphi, så læs "Delphi 4 Programmering" af Per Amdal Steffensen fra forlaget Systime. Det er den bedste bog om Delphi på dansk.
Det betyder intet at den er skrevet til Delphi 4, selv om du evt. bruger en ny version ad Delphi.
Kanon bog. Når du har fordøjet den, kan du virkelig meget bedre bruge alle de tips og kodestumper, du kan finde på nettet.
Avatar billede hallubaloo Nybegynder
01. marts 2009 - 16:17 #13
Okay. Det vil jeg lige tage til mig det der. Den må vel ku lånes på bibliotekerne.

Mange tak, vil jeg helt klart gøre :P
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