Vlastnosti práce s rozhraními v Delphi. Nejlepší IT řešení pro podniky Windows by neměly přesáhnout velikost obrazovky

pouze pro výsledek

přísné dodržování termínů

Průhlednost

Realizace projektu

technická podpora jako dárek

Programování, revize rad na 1C

Jak pracujeme

1. Problém probereme po telefonu. V přítomnosti vzdálený přístup- zobrazit na obrazovce vašeho počítače.

2. Odhadujeme práci v rublech, pokud je projekt velký, pokud ne - přibližný počet hodin.

3. Dokončíme práci.

4. Přijímáte práci ve svém programu, pokud jsou nějaké nedostatky, opravujeme je.

5. Vystavíme fakturu, zaplatíte.

Náklady na práci

1. Veškerá práce je rozdělena do 3 kategorií: konzultace, aktualizace typické konfigurace, vývoj nebo programování nové sestavy, zpracování, tlačítka atd.

3. Pro práci nad 10 hodin je předběžně vypracováno technické zadání s popisem a cenou práce. Práce začíná po odsouhlasení podmínek zadání.

Technická podpora

1. Pokud v dříve přijatých pracích najdete nějaké chyby, do 3 měsíců je zdarma opravíme.

2. Stálým zákazníkům celoročně bezplatně opravujeme nedostatky v naší práci.

Programy pro správu vašeho podnikání.

Koupit 1C: Enterprise

Jsme oficiální prodejce 1C, můžete si zakoupit různé softwarových produktů a licencí. Kromě nákupu „krabice“ vám pomůžeme program nastavit, poradíme a provedeme základní nastavení.

  • Účetnictví
  • Automatizace prodejny
  • Velkoobchod
  • Pomoc při instalaci a počáteční nastavení součástí balení!
  • Doladění konfigurací pro potřeby zákazníka, vývoj nových modulů při absenci potřebných funkcí ve standardní konfiguraci.
1c účetnictví 1C: Řízení obchodu 1C: Maloobchod 1C: Platový a personální management
Od 3300 rublů. Od 6700 rublů. Od 3300 rublů. Od 7400 rublů.

Poskytování serveru.

Server pro okamžité nastavení + 1C.

Nemáte server? Nevadí, vyzvedneme a rychle nastavíme server v "cloudu". Za malý poplatek získáte velmi spolehlivé řešení.

  • Dostupnost 24/7
  • Není třeba si nechávat vlastní správce systému(úspora pokryje náklady na váš server).
  • Rychlé nastavení a instalace 1C na server, za 3 dny již budete mít plně funkční systém.
  • Kdykoli se můžete přestěhovat lokální server pokud vám řešení nevyhovuje.

SMS z vašeho 1C

Chcete, aby zákazníci věděli o akcích, slevách včas? Zákazníci se nevracejí? Přizpůsobit odesílání SMS přímo z 1C!

Naše společnost bude moci rychle nastavit zasílání SMS vašim zákazníkům přímo z 1C. Příklady událostí, které lze automatizovat:

  • Děkujeme za nákup a připsání bonusů ihned po dalším nákupu.
  • Načítání bonusů ke kartě jako dárek k narozeninám \ k jinému významnému nebo svátku.
  • Oznámení o příchodu zboží na sklad.
  • Vypršení platnosti dárkových bonusů.
  • Oznámení o přijetí zálohy a rezervace zboží.
  • Adresa s podrobnostmi, jak se dostat do obchodu / kanceláře, telefonní čísla.
  • Atd.

Nastavení v 1C mohou provádět naši specialisté nebo naši zaměstnanci. S tarify se můžete seznámit na stránce SMS tarify.

  • Záruka Doručování SMS, peníze jsou vybírány pouze za doručené SMS.
  • Samostatné účtování pro každou SMS.
  • Doplňování rovnováhy různými způsoby.
  • Prohlédněte si historii všech odeslaných SMS kdykoli.
  • Jméno odesílatele místo digitálního čísla na telefonu příjemce zprávy.

Tvorba rozhraní uživatel se omezí na výběr z palety komponent, které komponenty Delphi jsou nezbytné pro fungování programu a obsluhu rozhraní vedení také rozhraní zobrazení informací a jejich přenos do formuláře s následným rozložením.

Uživatelské rozhraní, které vytvoříte, by mělo používat standardní prvky známé uživatelům a poskytovat maximální pohodlí. To vše je nakonec určeno takovým kritériem, jako je účinnost rozhraní - maximální výsledek s minimálním úsilím.
Principy tvorby uživatelsky přívětivé rozhraní jsou známy. Jako nejvíc obecné zásady při tvoření uživatelská rozhraní je třeba zvážit tři hlavní body:

  1. Program by měl pomoci dokončit úkol, nikoli se jím stát.
  2. Při práci s programem by se uživatel neměl cítit jako blázen.
  3. Program musí fungovat tak, aby si uživatel nemyslel, že počítač je hlupák.
První zásada- jedná se o tzv. "průhlednost" rozhraní. Uživatelské rozhraní by mělo být intuitivní, snadno se naučit a nevytvářet uživateli problémy, které bude muset v procesu překonat. Použijte standardní, bez zbytečných dekoračních prvků, použijte známé, používané podobné programy kontrolní techniky a dosáhnete výkonnostních kritérií první zásada.

Druhý princip je zanedbávat intelektuální schopnosti uživatelů. Z vlastní zkušenosti vím, že často uživatelé nejen neumějí pracovat u počítače, ale prostě se bojí něco sami udělat. Uživatelské rozhraní by proto mělo být co nejpřívětivější.
Obavy uživatelů jsou navíc často oprávněné, protože náklady na program a počítač samotný se nedají srovnávat například s náklady na databázi vytvořenou mnohaletým úsilím. Proto musí programátor při vytváření uživatelského rozhraní vždy zabudovat do programu „ochranu před hlupáky“ – před chybnými akcemi a uživatelským zadáním nesprávných dat. Někteří programátoři se ale s takovou ochranou nechají příliš unést, udělají ji příliš rušivou a ve výsledku se práce programu podobá známému „krok doleva, krok doprava je považován za únik“! A to, co programátor vytvoří jako řešení problému, začne samo vytvářet problémy.
Abychom vyhověli druhý princip není třeba dovolit programu, aby „opravoval“ akce uživatele a naznačoval, co přesně by měl jednat, čímž jej zatlačuje do úzkého rámce. Také byste se neměli nechat příliš unést zobrazováním informačních výzev, zejména dialogových zpráv, které odvádějí pozornost uživatele od práce. Ještě lépe, zajistěte možnost deaktivovat výzvy.

Třetí zásada je vytvořit program s co nejvyšší „mentální“ kapacitou. I přes rychlý vývoj počítačová technologie, dokonce i rozšířené programy mohou být pouze podmíněně nazývány umělou inteligencí. Zasahují do uživatelského zážitku zobrazováním dialogová okna s hloupými otázkami, které způsobují zmatek i v těch nejjednodušších situacích. Výsledkem je, že uživatelé ve svých srdcích volají: "No, tento stroj je hloupý!"
Mně osobně vadí neustálé dotazy skoro všech textové editory o tom, zda ponechat změněný text, přestože se původní a aktuální text v žádném symbolu neliší. Ano, něco jsem psal, ale pak jsem vše vrátil zpět, opravdu na to nemůžete přijít! Musím se podívat, jestli jsem něco nepokazil.

Snažte se dodržovat následující pravidla:

Standardní prvky rozhraní
Použijte standardní pro tohoto prvku komponenty rozhraní. Po seznámení s vaším programem nebude uživatel ztrácet čas seznamováním se, ale okamžitě začne pracovat - to je jeden ze znaků profesionálně vyrobeného programu.
Malá paleta nástrojů
Snažte se nepoužívat příliš mnoho velký počet různé komponenty. A samozřejmě, když jste někde na jednom místě použili jednu standardní součástku, v podobném případě ji také použijte.
Stejné rozestupy mezi ovládacími prvky
Umístěte prvky rozhraní ve stejné vzdálenosti od sebe. Kolem rozházené komponenty působí dojmem neprofesionálního výrobku. Naopak pečlivé umístění tlačítek, přepínačů, zaškrtávacích políček a dalších komponent tvořících rozhraní na Formuláři je známkou kvalitní práce.
TabOrder. "Správné pořadí
TabOrder je pořadí, ve kterém se kurzor na obrazovce pohybuje ovládacími prvky, když je stisknuta klávesa Tab... Ve správně napsaném programu se kurzor pohybuje v souladu s logikou práce uživatele s programem. Při vytváření programu programátor často komponenty mění, některé odebírá a podle potřeby přidává další. Výsledkem je, že v hotovém programu kurzor náhodně přeskakuje podél formuláře. Po dokončení programu nezapomeňte nakonfigurovat TabOrder.
Výběr písma
Stačí nechat písma na pokoji. Vlastní výchozí fonty Delphi jsou vhodné pro jakýkoli systém, na kterém může váš program běžet. Tučné písmo používejte pouze ke zvýraznění důležitých prvků. Aplikace téhož kurzíva a zvláště podtržení který by uživatel mohl zaměnit za hypertextový odkaz, má špatnou formu.
Výběr barev
Co se týče barev prvků rozhraní, stejně jako v případě písem je lepší je standardně ponechat jako standardní. Delphi používá systémovou paletu Windows a uživatel si její změnou může snadno přizpůsobit barvy pro sebe.
Alternativní ovládání
Profesionálně vyrobený program by se měl dát ovládat nejen myší, ale i klávesnicí. Neměly by být k dispozici žádné funkce, které by bylo možné spustit pouze pomocí myši (kreslení v grafických editorech se nepočítá!). U nejpoužívanějších funkcí byste měli poskytnout "horké klávesy" pro jejich rychlý přístup.
Cihly rozhraní
Pokud jde o konkrétní prvky uživatelského rozhraní, kvalita interakce uživatele s programem závisí na:
  • soulad ovládacího prvku s úkolem, který plní;
  • pravidla, podle kterých ovládací prvek funguje.
    Tato stránka pojednává o pravidlech pro vytváření některých prvků rozhraní.
A nyní chci ukázat, jaké nástroje nabízí Delphi pro správu komponent na formuláři, jejich relativní polohu a chování kurzoru při stisku klávesy. Tab.

Aby byly komponenty uspořádány ve správném vzájemném pořadí, nejprve je nutné je zvýraznit... Můžete jednoduše táhnout myší po oblasti formuláře, která obsahuje vybrané komponenty. Nebo podržením " Posun", ukažte stejnou myší na každou komponentu, kterou chcete vybrat. Opakované kliknutí myší na vybranou komponentu (při stisknutí Posun") zruší výběr.

S vybranými komponentami lze manipulovat jako s celkem – lze je přesouvat po Formuláři, přiřazovat hodnoty stejným vlastnostem, kopírovat (pro instalaci např. na jiný formulář), dokonce mazat.

Nyní klikněte pravým tlačítkem myši na jednu ze součástí az "vyskakovací" nabídky vyberte Pozice -> Zarovnat... Zobrazí se dialogové okno, které vám umožní upravit vodorovnou a svislou polohu součástí ve skupině. Řekněme například, že potřebujeme zarovnat naše čtyři tlačítka doleva a máme stejnou vzdálenost vertikálně. Chcete-li to provést, vyberte přepínače Horizontální: levé strany a Vertikal: Prostor stejně.

Výběrem položky Centrum, rozmístíme součástky tak, aby jejich středy byly umístěny na stejné čáře vodorovně nebo svisle, a bod Střed v okně přesune komponenty do středu okna, také horizontálně nebo vertikálně.

Ve stejné nabídce řádek Tab Ó objednat... způsobí zobrazení dialogového okna, které řídí pohyb kurzoru nad prvky rozhraní při stisku klávesy Tab... Když se formulář objeví na obrazovce, kurzor bude přirozeně na komponentě umístěné na prvním řádku dialogového okna. A pak se posune v seznamu dolů. V dialogovém okně ovládají dvě modré šipky nahoru a dolů polohu vybrané součásti. Zvýraznit požadovaná součástka, pomocí šipek přejděte na požadovaný řádek v seznamu a tak dále.

Při výběru položky nabídky Ovládání -> objeví se podnabídka sestávající ze dvou položek:

  • Přenést do popředí
  • Poslat zpět
Jedná se o komponentní metody, které jsou dostupné i programově. Button1.SendToBack přesune tlačítko do "pozadí" a Button1.BringToFront- přivést na frontu“. To znamená, že pokud je jedna součást umístěna na druhé, tyto metody je vymění. Případy, kdy to lze použít, jsou poměrně zřejmé.

Objektově orientované programování (OOP), kromě konceptu třídy, také poskytuje základní koncept rozhraní.

Co je rozhraní a jaké jsou vlastnosti práce s ním v programovacím jazyce Delphi?

Rozhraní je sémantický a syntaktický konstrukt v programovém kódu používaný ke specifikaci služeb poskytovaných třídou nebo komponentou (Wikipedie).

Rozhraní ve skutečnosti definuje seznam vlastností a metod, které by měly být použity při práci s třídou, která toto rozhraní implementuje, a také jejich podpis (název, datový typ, akceptované parametry (pro procedury a funkce) atd.). Třída, která implementuje určité rozhraní, tedy musí nutně implementovat všechny jeho komponenty. Navíc v přísném souladu s tím, jak jsou v něm popsány.

Rozhraní jsou často srovnávána s abstraktními třídami, ale i přes podobnost není toto srovnání zcela správné. V abstraktních třídách je k dispozici alespoň kontrola nad viditelností členů. Zároveň nejsou definovány žádné rozsahy pro rozhraní.

Rozhraní vám umožňují učinit architekturu flexibilnější, protože sjednocují přístup k určité funkcionalitě, a také vám umožňují vyhnout se řadě problémů spojených s dědičností tříd (rozhraní lze také dědit jedno od druhého).

Chcete-li deklarovat rozhraní v Delphi, použijte klíčové slovo interface. Toto je stejné klíčové slovo, které definuje sekci modulu, ke které lze přistupovat zvenčí (mezi klíčová slova rozhraní a implementace). Při deklaraci rozhraní se však používá jiná syntaxe, podobná deklaracím tříd.

Delphi / Pascal

IMyNewInterface = procedura rozhraní InterfaceProc; konec;

IMyNewInterface = rozhraní

procedura InterfaceProc;

konec;

Syntaxe samotné deklarace rozhraní se tedy zásadně neliší od jiných programovacích jazyků (vlastnosti syntaxe založené na Pascalu se nepočítají). Implementace rozhraní má zároveň řadu charakteristických rysů.

Jde o to, že rozhraní Delphi byla původně představena pro podporu technologie COM. Proto rozhraní IInterface, které je v Delphi praotcem všech ostatních rozhraní (jakási obdoba TObject), již obsahuje tři základní metody pro práci s touto technologií: QueryInterface, _AddRef, _Release. V důsledku toho, pokud třída implementuje jakékoli rozhraní, musí tyto metody bez problémů implementovat. I když tato třída není navržena pro práci s COM.

Díky této vlastnosti rozhraní IInterface v Delphi vede použití rozhraní ve většině případů k přidání záměrně nepoužívaných funkcí do třídy.

Existuje knihovní třída TInterfaceObject, která již implementaci těchto metod obsahuje a při dědění z ní není potřeba je implementovat sami. Protože ale Delphi nepodporuje vícenásobnou dědičnost tříd, jeho použití často způsobuje pouze další potíže při návrhu a implementaci již požadované funkcionality.

To vše vedlo k tomu, že přes všechny možnosti, které rozhraní poskytují, jejich praktické využití v Delphi téměř nepřesáhlo rámec práce s COM.

Optimalizováno pro práci primárně s touto technologií, rozhraní nebo spíše funkčnost a architektonická omezení, která povinně přidávají, se při řešení jiných problémů neospravedlňují.

Mnoho programátorů Delphi je proto ve skutečnosti stále ochuzeno o výkonný a flexibilní nástroj pro vývoj aplikační architektury.

Tento článek je založen na otázkách na fórech: "Jak mohu vrátit řetězec z DLL?", "Jak přenést a vrátit pole záznamů?", "Jak přenést formulář do DLL?"

Abyste nepromarnili půl života snahou na to přijít, v tomto článku vše přinesu na stříbrném podnose.

Témata tohoto článku již byla v tomto blogu dotčena v různé míře, ale v tomto článku jsou shromážděna v hromadě, zdůvodnění je uvedeno. Stručně řečeno, odkaz na tento článek lze hodit těm, kteří vyvíjejí DLL.

Důležitá poznámka: článek je potřeba si přečíst důsledně... Příklady kódu jsou poskytovány pouze jako příklady, v každém kroku (odstavci) článku je doplněn kód příkladů s novými detaily. Například hned na začátku článku chybí ošetření chyb, jsou naznačeny „klasické“ metody (jako je použití GetLastError, sdtcall konvence atd.), které jsou v průběhu článku nahrazovány adekvátnějšími. Děje se tak z toho důvodu, aby „nové“ („neobvyklé“) konstrukce nevyvolávaly otázky. V opačném případě byste pro každý příklad museli vložit poznámku ve formuláři: "toto je probráno v tom odstavci níže, ale to je v tomto." V každém případě je na konci článku odkaz na hotový kód, napsaný s ohledem na vše, co je v článku uvedeno. Můžete to prostě vzít a použít. A článek vysvětluje proč a proč. Pokud vás „proč a proč“ nezajímá – přejděte dolů na závěr a odkaz ke stažení ukázky.

Jeden a nejvíce silné stránky Programovací prostředí Delphi je svou otevřenou architekturou, díky které Delphi umožňuje jakési metaprogramování, umožňující „naprogramovat programovací prostředí“. Tento přístup posouvá Delphi na kvalitativně novou úroveň systémů pro vývoj aplikací a umožňuje vám vkládat další nástroje které podporují téměř všechny fáze tvorby aplikačních systémů. Tak široké možnosti se otevírá díky konceptu tzv. otevřených rozhraní implementovaných v Delphi, což je spojovací článek mezi IDE (Integrated Development Environment) a externími nástroji.

Tento článek se zaměřuje na otevřená rozhraní Delphi a poskytuje přehled funkcí, které představují. Delphi definuje šest otevřených rozhraní: Tool Interface, Design Interface, Expert Interface, File Interface, Edit Interface a Version Control Interface. Je nepravděpodobné, že bychom v rámci tohoto článku byli schopni podrobně osvětlit a ilustrovat schopnosti každého z nich. Zdrojové kódy Delphi vám pomohou lépe porozumět zvažovaným problémům, protože k nim vývojáři poskytli podrobné komentáře. Deklarace tříd reprezentujících veřejná rozhraní jsou obsažena v odpovídajících modulech v adresáři ... \ Delphi \ Source \ ToolsAPI. Design Interface (modul DsgnIntf.pas) poskytuje nástroje pro vytváření editorů vlastností a editorů komponent.

Editory vlastností a komponent jsou tématem hodným samostatné diskuse, takže jen připomeňme, že editor vlastností řídí chování Inspektoru objektů při pokusu o změnu hodnoty odpovídající vlastnosti a editor komponent se aktivuje, když dvojklik levým tlačítkem myši na obrázek součásti umístěné na formuláři. Rozhraní pro správu verzí (modul VCSIntf.pas) je určeno pro vytváření systémů správy verzí. Od verze 2.0 podporuje Delphi integrovaný systém správy verzí Intersolv PVCS, takže ve většině případů není potřeba vyvíjet vlastní systém. Z tohoto důvodu také vynecháme rozhraní pro správu verzí. Souborové rozhraní (modul FileIntf.pas) umožňuje přepsat pracovní souborový systém IDE, což umožňuje zvolit si vlastní způsob ukládání souborů (např. v polích Memo na databázovém serveru). Editační rozhraní (modul EditIntf.pas) poskytuje přístup k vyrovnávací paměti zdrojového kódu, která umožňuje analyzovat a generovat kód, určovat a měnit pozici kurzoru v okně editoru kódu a řídit zvýraznění syntaxe zdrojového textu.

Speciální třídy poskytují rozhraní ke komponentám umístěným ve formuláři (definování typu komponenty, získávání odkazů na nadřazené a podřízené komponenty, přístup k vlastnostem, předávání fokusu, mazání atd.), k samotnému formuláři a zdrojovému souboru projektu. Editační rozhraní také umožňuje identifikovat tzv. modulární oznamovače, které určují reakci na události, jako je změna zdrojového textu modulu, úprava formuláře, přejmenování komponenty, uložení, přejmenování nebo smazání modulu, změna zdrojového souboru projektu atd. Rozhraní nástroje (ToolIntf. pas) poskytuje vývojářům prostředky, jak je získat obecná informace o stavu IDE a provádění akcí, jako je otevírání, ukládání a zavírání projektů a jednotlivé soubory, vytvoření modulu, získání informací o aktuálním projektu (počet modulů a formulářů, jejich názvy atd.), registrace souborový systém, organizace rozhraní k jednotlivým modulům atp. Kromě modulárních oznamovačů definuje rozhraní nástroje doplňkové oznamovače, které upozorňují na události, jako je otevírání / zavírání souborů a projektů, načítání a ukládání souboru projektu na ploše, přidávání / vyjímání modulů projektu, instalace / odinstalování balíčků, kompilace projektu. Na rozdíl od modulárních oznamovačů vám doplňkové oznamovače umožňují zrušit provádění některých událostí.

Kromě toho nástrojové rozhraní poskytuje prostředky pro přístup k hlavní nabídce IDE Delphi, což vám umožňuje zabudovat do ní další položky. Expertní rozhraní (modul ExptIntf.pas) je základem pro vytváření odborných poradců - softwarových modulů zabudované v IDE pro rozšíření jeho funkčnosti. Příkladem odborníka je Průvodce formulářem databáze Delphi, který generuje formulář pro zobrazení a změnu obsahu databázové tabulky. Jakmile definujete třídu expertů, musíte se ujistit, že Delphi „ví“ o našem expertovi. Chcete-li to provést, musí být zaregistrován voláním procedury RegisterLibraryExpert a předáním instance třídy expert jako parametru. Pro ilustraci si vytvoříme jednoduchého expertního poradce ve stylu esStandard, který po výběru příslušné položky nabídky Delphi zobrazí zprávu, že je spuštěn. Jak můžete vidět z výše uvedené tabulky, styl esStandard vyžaduje k přepsání šest metod:

Aby byl expert „uveden do akce“, zvolte položku nabídky Komponenta / Instalovat komponentu ..., v dialogu Procházet vyberte modul obsahující experta (v našem případě exmpl_01.pas), klikněte na OK a poté kompilaci balíčku dclusr30.dpk v hlavním menu Delphi, v sekci Nápověda by se měla objevit položka Simple Expert 1, po výběru se objeví informační zpráva „Standard Expert spuštěn!“. Proč Delphi umísťuje položku expertního menu do sekce Nápověda, zůstává záhadou. Pokud se vám nelíbí, že se položka nabídky zobrazuje kdekoli v Delphi a ne tam, kde chcete, je možná následující možnost: vytvořit experta ve stylu doplňku, který vylučuje automatické vytváření položky nabídky, a přidat položku nabídky "ručně" pomocí rozhraní nástroje. To vám umožní libovolným způsobem nastavit umístění nové položky v hlavní nabídce.

K přidání položky nabídky se používá třída TIToolServices – základ rozhraní nástroje – a třídy TIMainMenuIntf, TIMenuItemIntf, které implementují rozhraní k hlavní nabídce IDE a jejím položkám. Třída TIToolServices ToolServices je inicializována samotným IDE, když je inicializována. Pamatujte, že za uvolnění rozhraní do hlavní nabídky a položek Delphi je odpovědný výhradně vývojář. Po cestě zkomplikujme funkční vytížení experta: při aktivaci své položky menu vydá certifikát o názvu projektu otevřeného v r. tento moment v prostředí: V tomto příkladu je středobodem funkce AddIDEMenuItem, která přidává položku nabídky do hlavní nabídky IDE Delphi. Jako parametry obdrží text nové položky nabídky, její identifikátor, identifikátor položky, před kterou je nová položka vložena, symbolické znázornění klíče, které spolu s pomocí klávesy Ctrl lze použít pro rychlý přístup na novou položku a obsluhu události odpovídající výběru nové položky. Do sekce Zobrazit jsme přidali novou položku nabídky před položku Watches.

Nyní se pojďme seznámit s oznamovateli. Pojďme definovat oznamovatel doplňku, který sleduje okamžiky uzavření / otevření projektů a podle toho upraví pole ukládající název aktivní projekt(implementaci metod, které neprošly změnami oproti předchozímu příkladu, vynecháme): Pro implementaci notifikátoru jsme definovali třídu TAddInNotifier, která je potomkem TIAddInNotifier, a překryli metodu FileNotification. IDE zavolá tuto metodu pokaždé, když dojde k události, na kterou je notifikátor doplňku schopen reagovat (každá taková událost je označena odpovídající konstantou typu TFileNotification). Pole Expert ve třídě TAddInNotifier se používá pro zpětná vazba s odborníkem (metoda TAddInNotifier.FileNotification). V destruktoru znalce je registrace oznamovatele odstraněna a oznamovatel je zničen. Nyní si ukážeme použití modulárních oznamovačů. Vytvořme experta na doplňky, který vydává zprávy o každém úkonu uložení souboru projektu (pro stručnost nebudeme uvádět implementaci nám již známých metod): V tomto příkladu expert na doplněk sleduje události odpovídající otevírání / uzavírání projektů.

Při každém otevření projektu se zaregistruje modulární oznamovač odpovídající souboru projektu. Pokud jde o implementaci, modulární notifikátory jsou podobné doplňkovým notifikátorům: definujeme třídu TModuleNotifier, která je potomkem třídy TIModuleNotifier, a přepíšeme její metody Notify a ComponentRenamed. IDE volá metodu Notify, když jsou vyvolány určité události související s tímto modulem; v rámci této metody je definována reakce na tu či onu událost. Metoda ComponentRenamed se zavolá, když se změní název komponenty ve formuláři modulu. Upozorňujeme, že tuto metodu nepoužíváme, ale musíme ji přepsat, jinak se při změně názvu komponenty zavolá abstraktní metoda základní třídy, což vede k nepředvídatelným následkům.

Registrace modulárního oznamovatele je o něco složitější než registrace oznamovatele doplňku: nejprve získáme rozhraní modulu (TIModuleInterface) a poté zaregistrujeme oznamovatel pomocí rozhraní modulu. Po uzavření projektu je registrace modulárního oznamovatele odregistrována (opět pomocí TIModuleInterface) a oznamovatel je zničen. Nakonec vám ukážeme, jak můžete určit polohu kurzoru v okně editoru kódu. Vytvořme Expert Advisor, který by po zvolení příslušné položky menu zobrazil zprávu obsahující název aktivního souboru a pozici kurzoru v něm (ukázána je implementace pouze metod nezbytných pro tento příklad): Chcete-li zjistit, pozici kurzoru, musíme obdržet následující sekvenci rozhraní: modulární rozhraní (TIModuleInterface); rozhraní editoru kódu (TIEditorInterface); rozhraní pohledu modulu v okně editoru (TIEditView).

Pokud je při výběru položky expertního menu aktivní soubor se zdrojovým textem (* .pas), zobrazí se zpráva obsahující název aktivního souboru a aktuální pozici kurzoru v něm. Pokud je aktivní non-pas-soubor, zpráva se nezobrazí. K získání názvu aktivního souboru se používá metoda GetCurrentFile třídy TIToolServices. Tím končí přehled způsobů použití otevřených rozhraní. CD-ROM obsahuje zdrojový kód všech uvedených příkladů. CD-ROM také obsahuje složitější a podrobnější příklad obsahující odborníka na doplňky, který uživateli umožňuje uložit zdrojový kód modulů Delphi do záložek. Stručný průvodce instalací a používáním Bookmark Expert je obsažen v souboru bkmrks97.htm. Tento článek tedy nastiňuje otevřená rozhraní a poskytuje příklady jejich použití. Ještě jednou zopakujeme: díky dostupnosti zdrojového kódu otevřených rozhraní snadno zjistíte detaily, které vás zajímají. Doufáme, že rozmanitost příležitostí, které poskytuje otevřená rozhraní, vám dá nejeden odvážný a užitečný nápad.