OSDN Git Service

NGワードで特定の正規表現を使用するとフリーズする不具合を修正
[gikonavigoeson/gikonavi.git] / KeySetting.pas
index 9ed48dd..d701f47 100644 (file)
@@ -4,8 +4,8 @@ interface
 
 uses
        Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
-       Dialogs, ComCtrls, StdCtrls, ExtCtrls, ActnList, Menus, GikoSystem, GikoUtil,
-    Editor;
+       Dialogs, ComCtrls, StdCtrls, ExtCtrls, ActnList, Menus,
+       Editor;
 
 type
        TKeySettingItem = class(TObject)
@@ -64,7 +64,7 @@ type
                { Private \90é\8c¾ }
        public
                { Public \90é\8c¾ }
-        EditorForm: TEditorForm;
+               EditorForm: TEditorForm;
        end;
 
 //var
@@ -72,7 +72,9 @@ type
 
 implementation
 
-uses Giko, Gesture;
+uses
+       Giko, GikoUtil, Gesture, GikoDataModule, GikoSystem;
+
 const
        GUESTURE_NOTHING        = '\82È\82µ';
 
@@ -83,31 +85,33 @@ var
        i: Integer;
        ListItem: TListItem;
        KeyItem: TKeySettingItem;
+    CenterForm: TCustomForm;
 
 begin
-       for i := 0 to GikoForm.ActionList.ActionCount - 1 do begin
-               if GikoForm.ActionList.Actions[i] is TAction then begin
-                       if GikoForm.ActionList.Actions[i].Tag <> 0 then
+       //for i := 0 to GikoForm.ActionList.ActionCount - 1 do begin
+       for i := 0 to GikoDM.GikoFormActionList.ActionCount - 1 do begin
+               //if GikoForm.ActionList.Actions[i] is TAction then begin
+               if GikoDM.GikoFormActionList.Actions[i] is TAction then begin
+                       if GikoDM.GikoFormActionList.Actions[i].Tag <> 0 then
                                Continue;
                        ListItem := ListView.Items.Add;
-                       ListItem.Caption := TAction(GikoForm.ActionList.Actions[i]).Hint;
-                       ListItem.SubItems.Add(TAction(GikoForm.ActionList.Actions[i]).Category);
-                       ListItem.SubItems.Add(ShortCutToText(TAction(GikoForm.ActionList.Actions[i]).ShortCut));
+                       ListItem.Caption := TAction(GikoDM.GikoFormActionList.Actions[i]).Hint;
+                       ListItem.SubItems.Add(TAction(GikoDM.GikoFormActionList.Actions[i]).Category);
+                       ListItem.SubItems.Add(ShortCutToText(TAction(GikoDM.GikoFormActionList.Actions[i]).ShortCut));
                        ListItem.SubItems.Add( GikoSys.Setting.Gestures.GetActionGesture(
-                               TAction( GikoForm.ActionList.Actions[i] ) ) );
-                       ListItem.ImageIndex := TAction(GikoForm.ActionList.Actions[i]).ImageIndex;
+                               TAction( GikoDM.GikoFormActionList.Actions[i] ) ) );
+                       ListItem.ImageIndex := TAction(GikoDM.GikoFormActionList.Actions[i]).ImageIndex;
                        KeyItem := TKeySettingItem.Create;
-                       KeyItem.Action := TAction(GikoForm.ActionList.Actions[i]);
-                       KeyItem.ShortCut := TAction(GikoForm.ActionList.Actions[i]).ShortCut;
+                       KeyItem.Action := TAction(GikoDM.GikoFormActionList.Actions[i]);
+                       KeyItem.ShortCut := TAction(GikoDM.GikoFormActionList.Actions[i]).ShortCut;
                        KeyItem.Gesture := GikoSys.Setting.Gestures.GetActionGesture(
-                               TAction( GikoForm.ActionList.Actions[i] ) );
+                               TAction( GikoDM.GikoFormActionList.Actions[i] ) );
                        ListItem.Data := KeyItem;
                end;
        end;
        if ListView.Items.Count > 0 then
                ListView.Selected := ListView.Items[0];
        EditorForm := TEditorForm.Create(Self);
-       GikoSys.LoadEditorKeySetting(EditorForm.ActionList);
        try
                for i := 0 to EditorForm.ActionList.ActionCount - 1 do begin
                        if EditorForm.ActionList.Actions[i] is TAction then begin
@@ -144,6 +148,15 @@ begin
        MouseGesture.OnGestureMove := OnGestureMove;
        MouseGesture.OnGestureEnd := OnGestureEnd;
        MouseGesture.SetHook( Handle );
+
+    CenterForm := TCustomForm(Owner);
+    if Assigned(CenterForm) then begin
+        Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left;
+        Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top;
+    end else begin
+        Left := (Screen.Width - Width) div 2;
+        Top := (Screen.Height - Height) div 2;
+    end;
 end;
 
 procedure TKeySettingForm.FormDestroy(Sender: TObject);
@@ -355,6 +368,7 @@ end;
 procedure TKeySettingForm.OnGestureEnd(Sender: TObject);
 begin
        GestureEdit.Text := MouseGesture.GetGestureStr;
+    MouseGesture.Clear;
 end;
 
 procedure TKeySettingForm.GestureCheckBoxClick(Sender: TObject);