X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=InputAssist.pas;h=3f30c28221b30e974cda5b22205db6c61c680f35;hb=689b12d31031dcbcfe5ce00fd0a6bf1e2a464fac;hp=852e305e98433478cee023d07cad7e8f5faa1450;hpb=379e44dd986d76a499eab613f4a65e18e4dcb8bb;p=gikonavigoeson%2Fgikonavi.git diff --git a/InputAssist.pas b/InputAssist.pas index 852e305..3f30c28 100644 --- a/InputAssist.pas +++ b/InputAssist.pas @@ -64,7 +64,8 @@ type FSortColumn : Integer; FInsertText : String; procedure AddListViewItem(ResWord : TResistWord); - procedure SetCategory(combo: TComboBox); + procedure SetCategory(combo: TComboBox; selected: String); + function ValidateKey(key, category: String): boolean; public { Public éŒ¾ } procedure SetUpFromEditor(); @@ -143,22 +144,35 @@ procedure TInputAssistForm.AddButtonClick(Sender: TObject); var resWord : TResistWord; begin - if (Length(KeyNameEdit.Text) = 0) then begin - ShowMessage('ƒL[–¼‚ðÝ’肵‚Ä‚­‚¾‚³‚¢B'); - end else begin + if (ValidateKey(KeyNameEdit.Text, CategoryNameComboBox.Text)) then begin if (not InputAssistDM.IsDupulicate( KeyNameEdit.Text, CategoryNameComboBox.Text) ) then begin resWord := InputAssistDM.Add(KeyNameEdit.Text); resWord.SetCategory(CategoryNameComboBox.Text); resWord.SetText(TextMemo.Text); AddListViewItem(resWord); - SetCategory(CategoryNameComboBox); + SetCategory(CategoryNameComboBox, resWord.GetCategory); GikoListView1.AlphaSort; end else begin ShowMessage('“¯ˆê‚̃L[–¼EƒJƒeƒSƒŠ–¼‚ÅŠù‚É“o˜^Ï‚Ý‚Å‚·B'); end; end; end; +//! ƒL[–¼EƒJƒeƒSƒŠ—LŒøƒ`ƒFƒbƒN +function TInputAssistForm.ValidateKey(key, category: String): boolean; +begin + Result := True; + if (Length(key) = 0) then begin + ShowMessage('ƒL[–¼‚ðÝ’肵‚Ä‚­‚¾‚³‚¢B'); + Result := False; + end else begin + if (Length(category) = 0) then begin + ShowMessage('ƒJƒeƒSƒŠ‚ðÝ’肵‚Ä‚­‚¾‚³‚¢B'); + Result := False; + end; + end; +end; + //! íœƒ{ƒ^ƒ“‰Ÿ‰ºŽž‚̃Cƒxƒ“ƒg procedure TInputAssistForm.DeleteButtonClick(Sender: TObject); begin @@ -174,18 +188,28 @@ var resWord : TResistWord; begin if GikoListView1.Selected <> nil then begin - if (Length(KeyNameEdit.Text) = 0) then begin - ShowMessage('ƒL[–¼‚𖳂µ‚É‚Í‚Å‚«‚Ü‚¹‚ñB'); - end else begin - resWord := TResistWord(GikoListView1.Selected.Data); - resWord.SetKey(KeyNameEdit.Text); - resWord.SetCategory(CategoryNameComboBox.Text); - resWord.SetText(TextMemo.Text); - // ˆê——‚̍XV - GikoListView1.Selected.Caption := resWord.GetKey; - GikoListView1.Selected.SubItems[0] := resWord.GetCategory; - SetCategory(CategoryNameComboBox); - GikoListView1.AlphaSort; + if (ValidateKey(KeyNameEdit.Text, CategoryNameComboBox.Text)) then begin + resWord := TResistWord(GikoListView1.Selected.Data); + // •ÏX‘O‚̃L[^ƒJƒeƒSƒŠ‚Æ“¯ˆê‚à‚µ‚­‚́A‘¼‚Əd•¡–³‚µ + if ((resWord.GetKey = KeyNameEdit.Text) + and (resWord.GetCategory = CategoryNameComboBox.Text)) or + (not InputAssistDM.IsDupulicate( + KeyNameEdit.Text, CategoryNameComboBox.Text) ) then begin + resWord.SetCategory(CategoryNameComboBox.Text); + resWord.SetText(TextMemo.Text); + // ƒL[‚ª•Ï‚í‚é‚Æ‚«‚́AChangeKey‚ðŒÄ‚Ô + if (resWord.GetKey <> KeyNameEdit.Text) then begin + resWord.SetKey(KeyNameEdit.Text); + InputAssistDM.ChangeKey(resWord); + end; + // ˆê——‚̍XV + GikoListView1.Selected.Caption := resWord.GetKey; + GikoListView1.Selected.SubItems[0] := resWord.GetCategory; + SetCategory(CategoryNameComboBox, resWord.GetCategory); + GikoListView1.AlphaSort; + end else begin + ShowMessage('“¯ˆê‚̃L[–¼EƒJƒeƒSƒŠ–¼‚ÅŠù‚É“o˜^Ï‚Ý‚Å‚·B'); + end; end; end; end; @@ -292,9 +316,10 @@ begin LockWindowUpdate(0); end; //! ƒJƒeƒSƒŠƒRƒ“ƒ{ƒ{ƒbƒNƒXÝ’è -procedure TInputAssistForm.SetCategory(combo: TComboBox); +procedure TInputAssistForm.SetCategory(combo: TComboBox; selected: String); var cat : TStringList; + i : Integer; begin // ŒŸõ—p cat := TStringList.Create; @@ -306,6 +331,11 @@ begin combo.Items.AddStrings(cat); combo.ItemIndex := 0; combo.Items.EndUpdate; + // ‘I‘ðÏ‚݂̃JƒeƒSƒŠ‚ɃCƒ“ƒfƒbƒNƒX‚ð•ÏX + i := combo.Items.IndexOf(selected); + if (i <> -1) then begin + combo.ItemIndex := i; + end; finally cat.Free; end; @@ -321,11 +351,9 @@ begin FInsertText := ''; CloseAction.ShortCut := TShortCut(0); // ’ljÁ—pƒL[“ü—ÍOK - SetCategory(CategoryNameComboBox); + SetCategory(CategoryNameComboBox, ''); end; procedure TInputAssistForm.SetUpFromEditor(); -var - cat : TStringList; begin Self.Caption := '“ü—̓AƒVƒXƒg'; Panel3.Visible := False; @@ -335,7 +363,7 @@ begin FInsertText := ''; CloseAction.ShortCut := ShortCut(VK_ESCAPE, []); // ŒŸõ—p - SetCategory(CategoryComboBox); + SetCategory(CategoryComboBox, ''); end; function TInputAssistForm.GetInsertText(): String; begin