Delphi - Hasznos metódusok a TShellUIHelper osztályból

forráskód letöltése
A TShellUIHelper osztály használatával lehetőségünk nyílik az Internet Explorer kedvencek listájához új elemeket hozzáadni. Az ott meglévő elemeket elmenthetjük egy HTML állományba, vagy éppen egy HTML állományból olvashatjuk be azokat. Nagyon hasznos dolog az is, hogy egy tetszőleges weblapot elhelyezhetünk az Active Desktop-on.
A TShellUIHelper osztály a SHDocVw.dll állományban található. Szerencsére ennek megfelelője megvan Delphi alatt is, az SHDocVw.pas állományban.
Az osztály használatához programunk uses listájában fel kell tüntetni az SHDocVw unit nevét.
Amennyiben a TShellUIHelper osztály nem elérhető, úgy a Projects – Import Type Library – Add parancsával importálja az Windows\System32\SHDocVw.dll állományt.
Az osztály használatához legelőször létre kell hoznunk egy TShellUIHelper típusú objektumot. Példaprogramunkban ezt Helper névre kereszteltük el.
A Helper objektumot, mint más objektumokat, a Create metódussal kell létrehozni és a Free metódussal kell majd felszabadítanunk a számára lefoglalt memóriaterületet.
Helper:=TShellUIHelper.Create(Nil);
Az alábbi metódusok bemutatása során mindegyiknél található egy példa, amely megmutatja, hogy hogyan lehet őket felhasználni. A példák forráskódjai nem a példaprogramból lettek kimásolva, hanem már behelyettesített értékeket tartalmaznak. Ennek az a célja, hogy lássuk, hogy hogyan kell helyesen megadni a metódusok paramétereit.
Az Internet Explorer kedvencek listájának bővítése
Az AddFavorite metódus segítségével egy új elemet adhatunk hozzá az Internet Explorer kedvencek listájához.
procedure AddFavorite(const URL: WideString);
A metódus egyetlen bemenő paramétert vár, ez egy szabályos URL cím. Amikor meghívjuk a metódust, akkor megjelenik a már megszokott „Kedvenc hozzáadása” ablak, ahol nevet rendelhetünk hozzá az URL címhez.
Egy példa a metódus használatára:
Helper.AddFavorite(’http://www.delphi6.hu’);
Egy weblap elhelyezése az Active Desktop-on
Ezt az AddDesktopComponent metódus meghívásával tehetjük meg.
procedure AddDesktopComponent(const URL: WideString; const Type_: WideString);
Az URL paraméterben egy szabályos URL címet kell megadni. A Type_ paraméterben a ’website’ string-et kell használnunk. A metódus megnyit egy párbeszédablakot, amelyben eldönthetjük, hogy tényleg el akarjuk-e helyezni az oldalt az Active Desktop-on.
Egy példa a metódus használatára:
Helper.AddDesktopComponent('http://www.delphi6.hu',’website');
Kedvencek listájának exportálása/importálása
Az Internet Explorer kedvencek listáját elmenthetjük egy HTML állományba, vagy épp ellenkezőleg, betölthetjük onnan. Ehhez az ImportExportFavorites metódust kell segítségül hívni.
procedure ImportExportFavorites(fImport: WordBool; const strImpExpPath: WideString);
Ez a metódus alkalmazható importálásra és exportálásra egyaránt. Az fImport értéke határozza meg azt, hogy melyik eljárás történjen. Ha értéke igaz, akkor importálunk, ellenkező esetben exportálunk.
Az strImpExpPath paraméterben egy HTML állomány nevét kell megadnunk, amelybe a listát el szeretnénk menteni, illetve ahonnan azt be szeretnénk tölteni. Ha itt üres paramétert adunk meg, akkor megjelenik a megnyitás / mentés ablak.
Egy példa a Kedvencek exportálására:
Helper.ImportExportFavorites(False,'c:\kedvencek.html');
Egy példa a Kedvencek importálására:
Helper.ImportExportFavorites(True,'c:\kedvencek.html');
És próbáljuk ki az üres paramétert is.
Helper.ImportExportFavorites(False,’’);