OSDN Git Service

ブラウザのページUp/Downアクションの追加
[gikonavigoeson/gikonavi.git] / InputAssist.pas
index 3414f7b..118a637 100644 (file)
@@ -5,7 +5,7 @@ interface
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ComCtrls, GikoListView, Menus, ExtCtrls, ImgList,
-  InputAssistDataModule, StdActns, ActnList;
+  InputAssistDataModule, StdActns, ActnList, GikoSystem;
 
 type
   TInputAssistForm = class(TForm)
@@ -13,8 +13,6 @@ type
     Panel2: TPanel;
     GikoListView1: TGikoListView;
     Panel3: TPanel;
-    KeyNameEdit: TLabeledEdit;
-    CategoryNameEdit: TLabeledEdit;
        Panel4: TPanel;
        TextMemo: TMemo;
     ColumnImageList: TImageList;
@@ -38,6 +36,11 @@ type
     InsertButton: TButton;
     InsertButtonAction: TAction;
     CloseAction: TAction;
+    KeyPanel: TPanel;
+    KeyNameEdit: TLabeledEdit;
+    Splitter: TSplitter;
+    CategoryPanel: TPanel;
+    CategoryNameEdit: TLabeledEdit;
     procedure FormCreate(Sender: TObject);
     procedure GikoListView1SelectItem(Sender: TObject; Item: TListItem;
       Selected: Boolean);
@@ -72,14 +75,29 @@ var
 
 implementation
 
+uses Setting, MojuUtils;
+
 
 {$R *.dfm}
 //! \83t\83H\81[\83\80\90\90¬\82Ì\83C\83x\83\93\83g
 procedure TInputAssistForm.FormCreate(Sender: TObject);
 var
+       wp: TWindowPlacement;
        i : Integer;
        column: TListColumn;
 begin
+       //\83E\83B\83\93\83h\83E\82Ì\88Ê\92u\90Ý\92è
+       wp.length := sizeof(wp);
+       wp.rcNormalPosition.Top := GikoSys.Setting.InputAssistFormTop;
+       wp.rcNormalPosition.Left := GikoSys.Setting.InputAssistFormLeft;
+
+       wp.rcNormalPosition.Bottom := GikoSys.Setting.InputAssistFormTop
+                                                                       + GikoSys.Setting.InputAssistFormHeight;
+       wp.rcNormalPosition.Right := GikoSys.Setting.InputAssistFormLeft
+                                                                       + GikoSys.Setting.InputAssistFormWidth;
+       wp.showCmd := SW_HIDE;
+       SetWindowPlacement(Handle, @wp);
+
        FSortColumn := 0;
        GikoListView1.Columns.Clear;
        column := GikoListView1.Columns.Add;
@@ -126,11 +144,16 @@ begin
        if (Length(KeyNameEdit.Text) = 0) then begin
                ShowMessage('\83L\81[\96¼\82ð\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢\81B');
        end else begin
-               resWord := InputAssistDM.Add(KeyNameEdit.Text);
-               resWord.SetCategory(CategoryNameEdit.Text);
-               resWord.SetText(TextMemo.Text);
-               AddListViewItem(resWord);
-               GikoListView1.AlphaSort;
+               if (not InputAssistDM.IsDupulicate(
+                       KeyNameEdit.Text, CategoryNameEdit.Text) ) then begin
+                       resWord := InputAssistDM.Add(KeyNameEdit.Text);
+                       resWord.SetCategory(CategoryNameEdit.Text);
+                       resWord.SetText(TextMemo.Text);
+                       AddListViewItem(resWord);
+                       GikoListView1.AlphaSort;
+               end else begin
+                       ShowMessage('\93¯\88ê\82Ì\83L\81[\96¼\81E\83J\83e\83S\83\8a\96¼\82Å\8aù\82É\93o\98^\8dÏ\82Ý\82Å\82·\81B');
+               end;
        end;
 end;
 //! \8dí\8f\9c\83{\83^\83\93\89\9f\89º\8e\9e\82Ì\83C\83x\83\93\83g
@@ -166,6 +189,10 @@ end;
 procedure TInputAssistForm.FormClose(Sender: TObject;
   var Action: TCloseAction);
 begin
+       GikoSys.Setting.InputAssistFormTop := Self.Top;
+       GikoSys.Setting.InputAssistFormLeft := Self.Left;
+       GikoSys.Setting.InputAssistFormHeight := Self.Height;
+       GikoSys.Setting.InputAssistFormWidth := Self.Width;
        //\83\\81[\83g\8fó\91Ô\82Ì\90Ý\92è
        InputAssistDM.Sorted := True;
 end;
@@ -175,15 +202,19 @@ procedure TInputAssistForm.GikoListView1Compare(Sender: TObject; Item1,
 begin
        if ((FSortColumn and 2) > 0) then begin
                // \83J\83e\83S\83\8a\82Å\83\\81[\83g
-               Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
+               Compare := CompareStr(
+                       ZenToHan(Item1.SubItems[0]), ZenToHan(Item2.SubItems[0]));
                if (Compare = 0) then begin
-                       Compare := AnsiCompareStr(Item1.Caption, Item2.Caption);
+                       Compare := CompareStr(
+                               ZenToHan(Item1.Caption), ZenToHan(Item2.Caption));
                end;
        end else begin
                // \83L\81[\82Å\83\\81[\83g
-               Compare := AnsiCompareStr(Item1.Caption, Item2.Caption);
+               Compare := CompareStr(
+                       ZenToHan(Item1.Caption), ZenToHan(Item2.Caption));
                if (Compare = 0) then begin
-                       Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
+                       Compare := CompareStr(
+                               ZenToHan(Item1.SubItems[0]), ZenToHan(Item2.SubItems[0]));
                end;
        end;
        // \8f¸\8f\87\8d~\8f\87\82Ì\94½\93]