mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-29 02:57:41 +00:00
* Keyman for Windows 10.0 Open Source * Squashed 'windows/src/ext/jedi/jedi/' content from commit f444ad2 git-subtree-dir: windows/src/ext/jedi/jedi git-subtree-split: f444ad2da4693851e523f1ea6bd541f701904c24 * Squashed 'windows/src/ext/jedi/jcl/' content from commit d63d3c9fd git-subtree-dir: windows/src/ext/jedi/jcl git-subtree-split: d63d3c9fd9ff84efdd8159084ec6a60313644243 * Squashed 'windows/src/ext/jedi/jvcl/' content from commit bee19f3b4 git-subtree-dir: windows/src/ext/jedi/jvcl git-subtree-split: bee19f3b46909fde2fa92c06cd2706f41d99f6c3 * Add required .res files * Add required .res files * Add docbook files (forced) * Add required libxslt * Add required jedi files * Add installation files * Tweak .gitignore for open * CI * Remove KMW from Developer source (#122) * Remove KMW from Developer source (copies during build) * Remove KMW from Developer source (copies during build) * Remove KMW from Developer source (copies during build) * Fixup release build and copy license, readme from kmw during build * Remove obsolete build help documentation * Keyman Engine 10 on Windows regression for shift states (#129) * Improve #128 -- cleaner debug messages * Fixes #127, shift state now resets correctly; and more work for #128 * Fixes #130 (#131)
94 lines
1.8 KiB
ObjectPascal
94 lines
1.8 KiB
ObjectPascal
unit testcomapi;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, keymanapi_TLB, StdCtrls;
|
|
|
|
type
|
|
TProc = procedure of object;
|
|
|
|
TForm1 = class(TForm)
|
|
cmdStartTest: TButton;
|
|
memoLog: TMemo;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure cmdStartTestClick(Sender: TObject);
|
|
private
|
|
kmcom: ITavultesoftKeyman;
|
|
procedure TestKeyboards;
|
|
procedure Test(Name: string; Func: TProc);
|
|
procedure TestPackages;
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TForm1.cmdStartTestClick(Sender: TObject);
|
|
begin
|
|
Test('Keyboards', TestKeyboards);
|
|
Test('Packages', TestPackages);
|
|
end;
|
|
|
|
procedure TForm1.Test(Name: string; Func: TProc);
|
|
begin
|
|
try
|
|
Func;
|
|
except
|
|
on E:Exception do
|
|
memoLog.Lines.Add('FAIL: '+Name+' on _Release: ' + E.ClassName + ' - ' + E.Message);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.TestKeyboards;
|
|
var
|
|
k: IKeymanKeyboardInstalled;
|
|
s, t: WideString;
|
|
begin
|
|
k := kmcom.Keyboards.Items[1];
|
|
s := k.Name;
|
|
kmcom.Keyboards.Refresh;
|
|
try
|
|
t := k.Name;
|
|
except
|
|
on E:Exception do s := E.ClassName + ' - ' + E.Message;
|
|
end;
|
|
|
|
if t <> s
|
|
then memoLog.Lines.Add('FAIL: Keyboards: '+t)
|
|
else memoLog.Lines.Add('PASS: Keyboards: '+s+'='+t);
|
|
end;
|
|
|
|
procedure TForm1.TestPackages;
|
|
var
|
|
k: IKeymanPackageInstalled;
|
|
s, t: WideString;
|
|
begin
|
|
k := kmcom.Packages.Items[1];
|
|
s := k.Name;
|
|
kmcom.Refresh;
|
|
// kmcom.Packages.Refresh;
|
|
try
|
|
t := k.Name;
|
|
except
|
|
on E:Exception do s := E.ClassName + ' - ' + E.Message;
|
|
end;
|
|
|
|
if t <> s
|
|
then memoLog.Lines.Add('FAIL: Packages: '+t)
|
|
else memoLog.Lines.Add('PASS: Packages: '+s+'='+t);
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
kmcom := CoTavultesoftKeyman.Create;
|
|
end;
|
|
|
|
end.
|