Delphi - Kódszerkesztő

ToolsAPI 4. rész

forráskód letöltése
Ebben a részben az IOTASourceEditor interfész osztállyal ismerkedünk meg, amely a forráskód szerkesztéséért felelős. Ezt az osztályt kell használnunk, ha a forráskódból olvasni vagy abba írni szeretnénk.
A mellékelt példaprogram használatához a SourceEditor.dpk Package állomány tartalmát telepítenie kell.
Delphi 5 feletti verziók használata esetében a Package fordítása hibát fog okozni, hiányzó unit-ok miatt. A fordításhoz szükséges unit-ok megtalálhatóak a delphiX\Source\ToolsAPI könyvtárban.
Hasonlóan az előző részekhez, most is szükségünk van egy DataModule-ra és egy Form-ra. Ne feledkezzünk meg arról, hogy nem használhatunk olyan unit és objektum neveket, amelyeket az előző részekben.
Minden egyes megnyitott állományhoz külön kódszerkesztő tartozik.
Az IOTASourceEditor interfész eléréséhez elkészítettük a GetEditor függvényt.
function GetEditor: IOTASourceEditor;
Az interfész eléréséhez több lépés szükséges.
Hozzá kell férnünk az IOTAModuleServices interfészhez.
ModuleServices:=BorlandIDEServices as IOTAModuleServices;
Ezután az aktuális állomány modulját kell lekérdeznünk.
Module:=ModuleServices.CurrentModule;
Végül az IOTAEditor osztályon keresztül el tudjuk érni az IOTASourceEditor-t.
for i:=0 to Module.GetModuleFileCount-1 do begin
  Intf:=Module.GetModuleFileEditor(i);
  if Intf.QueryInterface(IOTASourceEditor,Result)=S_OK then
    Break;
end;
BlockAfter
Osztály: IOTASourceEditor
property BlockAfter: TOTACharPos;
A kijelölés utolsó karakterének pozícióját adja meg, a forráskódon belül. A TOTACharPos struktúra két tagból áll. A Line tag értéke a sort azonosítja, a CharPos pedig a soron belüli karaktert.
BlockStart
Osztály: IOTASourceEditor
property BlockStart: TOTACharPos;
A kijelölés első karakterének pozícióját határozza meg.
BlockType
Osztály: IOTASourceEditor
property BlockType: TOTABlockType;
A kijelölt blokkról szolgáltat információkat. Értékei a következők lehetnek: btInclusive, btLine, btColumn, btNonInclusive, btUnknown.
BlockVisible
Osztály: IOTASourceEditor
property BlockVisible: Boolean;
A kijelölés láthatóságát állíthatjuk vele. Hamis érték megadása esetén a kijelölést megszüntethetjük.
EditViewCount
Osztály: IOTASourceEditor
property EditViewCount: Integer;
Egy forráskódhoz többféle nézet tartozhat. Ez a property a kódhoz rendelt nézetek számát adja vissza.
EditViews
Osztály: IOTASourceEditor
property EditViews[Index: Integer]: IOTAEditView;
A property a kódhoz rendelt nézeteket tartalmazza. Az eredményül kapott IOTAEditView interfész felelős az adott nézet kezeléséért.
FileName
Osztály: IOTASourceEditor
property FileName: string;
A megnyitott állomány elérési útja és neve.
Modified
Osztály: IOTASourceEditor
property Modified: Boolean;
Azt jelzi, hogy a megnyitott állomány tartalmán történt-e módosítás.
CreateReader
Osztály: IOTASourceEditor
function CreateReader: IOTAEditReader;
Létrehoz egy újabb interfészt, amely segítségével a forráskód részeit olvashatjuk.
Visszatérési érték
Az interfész.
CreateUndoableWriter
Osztály: IOTASourceEditor
function CreateUndoableWriter: IOTAEditWriter;
Létrehoz egy újabb interfészt, amely segítségével a megnyitott forráskódba írhatunk. Az interfészen keresztül végzett módosítások visszavonhatóak.
Visszatérési érték
Az interfész.
CreateWriter
Osztály: IOTASourceEditor
function CreateWriter: IOTAEditWriter;
Ugyanaz, mint a CreateUndoableWriter metódus, csak a módosításokat nem lehet visszavonni.
GetLinesInBuffer
Osztály: IOTASourceEditor
function GetLinesInBuffer: Longint;
A forráskód sorainak számát adja vissza.
Visszatérési érték
A sorok száma.
SetSyntaxHighlighter
Osztály: IOTASourceEditor
function SetSyntaxHighlighter(
SyntaxHighlighter: TOTASyntaxHighlighter
): TOTASyntaxHighlighter;
A kódszerkesztő által használt kódkiemelés típusát állítja be, vagy kérdezi le.
Paraméterek
SyntaxHighlighter: TOTASyntaxHighlighter
Érték Jelentése
shNone Nincs kiemelés.
shQuery Lekérdezéshez használható, nem módosítja az előző értéket.
shPascal Pascal, ez az alapértelmezett.
shC C nyelvhez használt kiemelés.
shSQL SQL nyelvhez használt kiemelés.
shIDL IDL-hez (Interface Definition Language) használt kiemelés.
Visszatérési érték
Az előző állapot.
Show
Osztály: IOTASourceEditor
procedure Show;
Megjeleníti a kódszerkesztő ablakot.

ToolsAPI cikksorozat