26. januar 2001 - 12:21Der 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...
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;
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.
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...
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.
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?
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 ...
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?
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
Synes godt om
Ny brugerNybegynder
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.