diff options
Diffstat (limited to 'apps/windoze/Delphi20/swordvc/SWKey.pas')
-rw-r--r-- | apps/windoze/Delphi20/swordvc/SWKey.pas | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/apps/windoze/Delphi20/swordvc/SWKey.pas b/apps/windoze/Delphi20/swordvc/SWKey.pas new file mode 100644 index 0000000..7204715 --- /dev/null +++ b/apps/windoze/Delphi20/swordvc/SWKey.pas @@ -0,0 +1,150 @@ +unit SWKey; + +interface + +uses + SwordAPI, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; + +type + TSWKey = class(TComponent) + private + protected + hswkey: integer; + KeyType: AnsiString; + procedure Loaded; override; + function GetText: AnsiString; virtual; + procedure SetText(itext: AnsiString); virtual; + function GetPersist: Boolean; virtual; + procedure SetPersist(ival: Boolean); virtual; + function GetSWHandle: integer; virtual; + procedure SetSWHandle(ihandle: integer); virtual; + + public + constructor Create(AOwner:TComponent); override; + destructor Destroy; override; + procedure Initialize; virtual; + property Text: AnsiString read GetText write SetText; + property Persist: Boolean read GetPersist write SetPersist; + function Error: integer; virtual; + property SWHandle: integer read GetSWHandle write SetSWHandle; + procedure Inc; virtual; + procedure Dec; virtual; + published + end; + +procedure Register; + +implementation + +constructor TSWKey.Create(AOwner:TComponent); +begin + inherited Create(AOwner); + KeyType := 'StrKey'; + hswkey := 0; +end; + + +destructor TSWKey.Destroy; +begin + if not (csDesigning in ComponentState) then + begin + if (hswkey <> 0) then + begin + DeleteKey(hswkey); + hswkey := 0; + end; + end; + inherited Destroy; +end; + + +procedure TSWKey.Loaded; +begin + inherited Loaded; + if not (csDesigning in ComponentState) then + begin + if (hswkey = 0) then + Initialize; + end; +end; + + +procedure TSWKey.Initialize; +begin + if (hswkey <> 0) then + DeleteKey(hswkey); + hswkey := NewKey(PChar(KeyType)); + Persist := true; +end; + + +function TSWKey.Error: integer; +begin + Error := KeyError(hswkey); +end; + + +function TSWKey.GetText: AnsiString; +var + s1: AnsiString; +begin + SetLength(s1, 1024); + KeyGetText(hswkey, PChar(s1), Length(s1)); + s1 := Trim(s1); + GetText := s1; +end; + + +procedure TSWKey.SetText(itext: AnsiString); +begin + KeySetText(hswkey, PChar(itext)); +end; + + +function TSWKey.GetSWHandle: integer; +begin + GetSWHandle := hswkey; +end; + + +procedure TSWKey.SetSWHandle(ihandle: integer); +begin + hswkey := ihandle; +end; + + +function TSWKey.GetPersist: Boolean; +begin + GetPersist := Boolean(KeyGetPersist(hswkey)); +end; + + +procedure TSWKey.SetPersist(ival: Boolean); +begin + KeySetPersist(hswkey, integer(ival)); +end; + + +procedure TSWKey.Inc; +begin + KeyInc(hswkey); +end; + + +procedure TSWKey.Dec; +begin + KeyDec(hswkey); +end; + + + + + + + +procedure Register; +begin + RegisterComponents('Data Access', [TSWKey]); +end; + +end. |