Avatar billede zerohero Nybegynder
26. januar 2001 - 12:21 Der er 10 kommentarer og
2 løsninger

Ikoner

Ja, så er jeg her igen *s*... Hvordan gør jeg sådan at eks. *.Jpg og *.bmp filer skal
assorisere mit program. Altså når man vil åbne for en fil i stifinder så starter den mit program og som derefter benytter filen?
Derudover vil jeg også gerne vide hvordan man ændre en filikons udsenede (gennem delphi selvfølig) eks. *.Jpg og *.bmp...


ZeroHero
Avatar billede borrisholt Novice
26. januar 2001 - 12:25 #1
Mojn do

se lidt på den her :

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;


Jens B
Avatar billede martinlind Nybegynder
26. januar 2001 - 12:28 #2
Exe filer har nogle resources som bliver brugt at explorer til at vise filens icon, i delphi sætter du den i project/options men du kan også finde noget doc om det i API hjælpen. En fil assorisering det er noget med at pille i reg. basen, mere præcise oplysninger kan jeg ikke lige gi\' dig.

/Martin
Avatar billede pellelil Nybegynder
26. januar 2001 - 12:29 #3
Du skal ind og skrive i Registrerings Databasen.

Hvis du kigger (via RegEdit) under \"HKEY_CLASSES_ROOT\" så kan du her finde nøglen \".pas\" og i denne har den værdien (af typen REG_SZ = String) \"DelphiUnit\". Det vil således sige at \".PAS\" filer er registreret som værende typen \"DelphiUnit\".

Du bladre nu længere ned stadig under \"HKEY_CLASSES_ROOT\" hvor du nu finder \"DelphiUnig\". Under denne finde du de oplysninger som beskriver dels ikon (DefaultIcon) og dels hvilket program der skal kaldes når man forsøger at \"Open\" en \"DelphiUnit\" (altså en \".pas\" fil).

På samme måde registrere du \".JPG\" og \".BMP\" til at bruge dit program...
Avatar billede pellelil Nybegynder
26. januar 2001 - 12:30 #4
Borrisholt> Du tager da også altid \"den nemme løsning\"  :-)
Avatar billede borrisholt Novice
26. januar 2001 - 12:43 #5
Må man ikke det ? Kunne du bruge resource editoren ?

Jens B
Avatar billede pellelil Nybegynder
26. januar 2001 - 12:54 #6
må og må, man \"skal\" vel \"være doven\" og altid vælge den nemme løsning. Jo den så spændende ud, og jeg vil overveje om jeg i stedet for at linke til Exe-filen i større grad skal benytte eksterne recource-filer.
Avatar billede zerohero Nybegynder
26. januar 2001 - 14:02 #7
Borrisholt>> Jeg ved ikke lige hvordan jeg skal bruge koden... Er det formeget forlangt hvis du
lavede et eksempel med en .bmp fil der bliver associeret med Hest.exe *G*... i en button1click procedure?

ZeroHero
Avatar billede borrisholt Novice
26. januar 2001 - 14:11 #8
du skal kalde koden sådan her :

    SetAssociation(\'bmp\', \'Bitmap Heste\',0);

Så får du bmp associeret med din nuværende exefil ... ikonet til BMP bliver det fra din exe fil .. skal du have et andet må du kompilere flere ickoner ind i din exe fil ...

Jens B
Avatar billede zerohero Nybegynder
26. januar 2001 - 14:24 #9
Det virkede til at være et ret let spørgsmål for jer kloge hoveder.. så her kommer altså lige et lille tillægs spørgsmål...

Jeg har tegnet en rød cirkel på en Panel\'s canvas
og når musen føres hen over den røde cirkel så vil jeg have cursoren til at ændre sig til en crpointhand istedet for crdefault... det virker også fint (jeg mener delphi compiler koden fint)
men der sker ikke noget...
Det virker som om cursoren skal opdateres når den rammer den røde cirkel men hvordan gør man det?
Avatar billede borrisholt Novice
26. januar 2001 - 14:26 #10
DEt er for hvis 4 er støren en to og det regner i spanien !
Avatar billede borrisholt Novice
26. januar 2001 - 14:26 #11
Nej må vi se noget kode .. eller hvad din bitmap hest !
Avatar billede zerohero Nybegynder
26. januar 2001 - 15:00 #12
Borrisholt>> Ups der var jeg da vist lige lidt for hurtig på tasterne... Jeg har fundet problemet men tak for din hjælpende hånd...

ZeroHero
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