Delphi - Program hozzárendelése állomány kiterjesztéshez

2. rész

forráskód letöltése
Múlt heti részből megtudhattuk, hogy miként regisztrálhatunk egy alkalmazást egy tetszőleges állomány kiterjesztéshez. Ennek segítségével lehetőség nyílt arra, hogy tetszőleges menüpontokat hozzunk létre, ha az Intézőben valaki jobb gombbal kattint az állományon, de az is megoldhatóvá vált, hogy egyedi ikont rendeljünk az összes ilyen kiterjesztéssel rendelkező állományhoz.

Mostani példánkban a múlt héten bemutatott TExtension komponenst fejlesztjük tovább és most már lehetőség nyílik az eddigieken kívül arra is, hogy minden egyes ilyen menüponthoz, vagy akár globálisan az egész regisztrációhoz 19 különböző tulajdonságot is beállítsunk. A mellékelt példaprogram megnyitása előtt az Extension.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A program helyes működése érdekében az Extension1 komponens néhány alkönyvtárat tartalmazó property-jét át kell állítani attól függően, hogy Ön honnan futtatja a programot. Ezt a beállítást elvégzi a program a Form OnCreate eseményénél. Azonban, ha változtat a komponens beállításain, akkor célszerű, ha ezeket a könyvtárakat is átírja a megfelelőre, majd törölje a Form OnCreate-nél lévő erre vonatkozó forráskód részletet.

Mivel a komponens csak továbbfejlesztése a múlt héten bemutatottnak, így itt most csak az újdonságokat tárgyaljuk és egyúttal feltételezzük az Olvasóról, hogy tisztában van a múltkori cikk tartalmával, mivel a mostani információk azokra épülnek.

Új property-vel bővült tehát a TExtension komponens, ez pedig nem más, mint az Attribute.

Ugyanezzel a névvel és típussal szintén újdonság a MenuItems property-n belüli Attribute is.

Míg a komponensnél lévő Attribute property az egész regisztrációra nézve globálisan hat, addig ezt felülbírálhatjuk az egyes menüpontoknál beállított értékekkel.

Az Attribute 19 értéke közül tetszőleges számban választhatjuk ki a számunkra szükségeseket mind a két esetben.

Az Attribute értékeinek nagy része arra szolgál, hogy korlátozzuk az általunk bejegyzett kiterjesztés regisztráció hozzáférhetőségét.

Gondoljunk csak arra, hogy hány olyan program lehet egy számítógépre telepítve, mely például HTM kiterjesztésű állományokat szeretne saját magának regisztrálni.

Ha például szeretnénk megakadályozni, hogy egy másik program módosítsa, vagy bármi módon megváltoztassa a regisztrációnkat, akkor kell az fcaNoEdit konstanst használnunk.

Ha csak a törlés megakadályozása a cél, akkor az fcaNoRemove használata elegendő, míg az fcaNoRemoveVerb esetén az alapértelmezett menüpontok törlése tiltott. (Az alapértelmezett menüpontokról a jövő heti részben lesz részletesen szó.)

Az fcaNoNewVerb-el az új menüpont létrehozását tilthatjuk, míg az fcaNoEditVerb-el az alapértelmezett menüpontok módosítását, törlését.

Ha a kiterjesztéshez tartozó megnevezés megváltoztatását nem engedélyezzük, akkor kell az fcaNoEditDesc. Ugyanígy az ikonhoz tartozó bejegyzés tartalma az fcaNoEditIcon-al védhető, míg az, hogy milyen program induljon akkor, ha a felhasználó rákattint az állományra az fcaNoEditDflt igazra állításával állítható be.

Korlátozhatjuk továbbá azt is, hogy a Start menüpont Dokumentumok menüjéhez ne legyen hozzáadva a felhasználó által kiválasztott állományunk. Ehhez az fcaNoRecentDocs konstansra van szükség.

Ha azt akarjuk elérni, hogy az állomány kiterjesztés akkor is látható maradjon, mikor a felhasználó kiválasztja a "Kiterjesztések elrejtése" ("Hide extensions") beállítást, akkor az fcaAlwaysShowExt-et kell igazra állítani az Attribute property-n belül.


Ezek a tulajdonságok szintén a Windows regisztrációs adatbázisába kell hogy kerüljenek, méghozzá egy EditFlags nevű bejegyzéshez, mely DWORD típusú kell hogy legyen.

Program hozzárendelése állomány kiterjesztéshez cikksorozat