Delphi - Komponensek használata szerkesztési időben

HTML Help komponensek 4. rész

forráskód letöltése
Az előző részekben elkészítettünk 3 komponenst, amelyek segítségével project-eket, indexeket és tartalomjegyzékeket kezelhetünk. Most alkalmassá tesszük a komponenseket arra, hogy szerkesztési időben is használhatók legyenek.
A mellékelt példaprogram megnyitása előtt nyissa meg a mellékelt HTMLComponents.dpk állományt, majd az Add feliratú gomb segítségével adja hozzá a komponenscsomaghoz az előzőleg elkészített komponenseket. Az előző részekben feltelepített komponenseket távolítsa el a Delphi-ből, majd válassza az Install gombot.
Ha a Delphi fejlesztőkörnyezetben egy komponens fölött lenyomjuk az egér jobb oldali gombját, akkor megjelenik egy helyi menü. Ebben a menüben mi is elhelyezhetünk menüpontokat.
Ehhez minden egyes komponenshez regisztrálnunk kell egy új komponens szerkesztőt.
Egy teljesen különálló unit-ban hozzuk létre a komponensszerkesztőket.
Először létre kell hoznunk egy új osztályt, amely a TComponentEditor-ból származik.
  THHPNewMenu = class(TComponentEditor)
    function GetVerbCount: Integer; override;
    function GetVerb(Index: Integer): String; override;
    procedure ExecuteVerb(Index: Integer); override;
    procedure Edit; override;
  end;
Felül kell írnunk a fenti metódusokat.
A megjelenítendő menüpontok számát a GetVerbCount függvénynek kell eredményül adnia.
Result:=4;
A menüpontokban megjelenő feliratokat a GetVerb metódusban adhatjuk meg.
  case Index of
    0: Result:='Create New Project';
    1: Result:='Load Project';
Az Edit metódusban egyetlen sort kell elhelyeznünk.
ExecuteVerb(0);
Az ExecuteVerb metódusban kell leprogramoznunk, hogy az egyes menüpontok kiválasztása milyen műveletet eredményezzen.
if Index=0 then
  with Component as THTMLHelpProject do begin
    Designer.Modified;
    CreateNewProject;
  end;
Az Index paraméterben kapjuk meg a kiválasztott menüpont indexét.
Végül szükségünk van egy Register nevű eljárásra, amelyben regisztráljuk a létrehozott komponensszerkesztőket.
RegisterComponentEditor(THTMLHelpProject,THHPNewMenu);

HTML Help komponensek cikksorozat