summaryrefslogtreecommitdiff
path: root/apps/windoze/Delphi20/swordvc/SWKey.pas
diff options
context:
space:
mode:
Diffstat (limited to 'apps/windoze/Delphi20/swordvc/SWKey.pas')
-rw-r--r--apps/windoze/Delphi20/swordvc/SWKey.pas150
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.