Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/InputAssist.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download) (as text)
Sat Jan 14 07:44:14 2006 UTC (18 years, 3 months ago) by h677
Branch: MAIN
CVS Tags: v1_52_0_642
File MIME type: text/x-pascal
入力アシスト(定型文入力のようなもの)を組み込んでみた。

1 unit InputAssist;
2
3 interface
4
5 uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, StdCtrls, ComCtrls, GikoListView, Menus, ExtCtrls, ImgList,
8 InputAssistDataModule, StdActns, ActnList;
9
10 type
11 TInputAssistForm = class(TForm)
12 Panel1: TPanel;
13 Panel2: TPanel;
14 GikoListView1: TGikoListView;
15 DeleteButton: TButton;
16 AddButton: TButton;
17 ApplyButton: TButton;
18 Panel3: TPanel;
19 KeyNameEdit: TLabeledEdit;
20 CategoryNameEdit: TLabeledEdit;
21 Panel4: TPanel;
22 TextMemo: TMemo;
23 ColumnImageList: TImageList;
24 CloseButton: TButton;
25 InputAssistFormActionList: TActionList;
26 EditCut1: TEditCut;
27 EditCopy1: TEditCopy;
28 EditPaste1: TEditPaste;
29 EditSelectAll1: TEditSelectAll;
30 EditUndo1: TEditUndo;
31 EditDelete1: TEditDelete;
32 procedure FormCreate(Sender: TObject);
33 procedure GikoListView1SelectItem(Sender: TObject; Item: TListItem;
34 Selected: Boolean);
35 procedure AddButtonClick(Sender: TObject);
36 procedure DeleteButtonClick(Sender: TObject);
37 procedure ApplyButtonClick(Sender: TObject);
38 procedure FormClose(Sender: TObject; var Action: TCloseAction);
39 procedure GikoListView1Compare(Sender: TObject; Item1,
40 Item2: TListItem; Data: Integer; var Compare: Integer);
41 procedure GikoListView1ColumnClick(Sender: TObject;
42 Column: TListColumn);
43 procedure CloseButtonClick(Sender: TObject);
44 private
45 { Private 鐃緒申鐃緒申 }
46 FSortColumn : Integer;
47 procedure AddListViewItem(ResWord : TResistWord);
48 public
49 { Public 鐃緒申鐃緒申 }
50 end;
51
52 var
53 InputAssistForm: TInputAssistForm;
54
55 implementation
56
57
58 {$R *.dfm}
59 //! 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
60 procedure TInputAssistForm.FormCreate(Sender: TObject);
61 var
62 i : Integer;
63 column: TListColumn;
64 begin
65 FSortColumn := 0;
66 GikoListView1.Columns.Clear;
67 column := GikoListView1.Columns.Add;
68 column.ImageIndex := 0;
69 column.Caption := '鐃?鐃?';
70 column.Width := 150;
71 column := GikoListView1.Columns.Add;
72 column.Caption := '鐃?鐃?鐃?鐃緒申';
73 column.Width := 80;
74 for i := 0 to InputAssistDM.ResistWordCount - 1 do begin
75 AddListViewItem(InputAssistDM.GetResistWord(i));
76 end;
77 //鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申)
78 InputAssistDM.Sorted := False;
79 end;
80 //! 鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
81 procedure TInputAssistForm.AddListViewItem(ResWord : TResistWord);
82 var
83 item: TListItem;
84 begin
85 item := GikoListView1.Items.Add;
86 item.ImageIndex := -1;
87 item.Caption := resWord.GetKey;
88 item.SubItems.Add(resWord.GetCategory);
89 item.Data := resWord;
90 end;
91 //! 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
92 procedure TInputAssistForm.GikoListView1SelectItem(Sender: TObject;
93 Item: TListItem; Selected: Boolean);
94 begin
95 if (Item <> nil) and (Item.Data <> nil) then begin
96 KeyNameEdit.Text := TResistWord(Item.Data).GetKey;
97 CategoryNameEdit.Text := TResistWord(Item.Data).GetCategory;
98 TextMemo.Lines.Text := TResistWord(Item.Data).GetText;
99 end else begin
100 TextMemo.Lines.Text := '';
101 end;
102 end;
103 //! 鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
104 procedure TInputAssistForm.AddButtonClick(Sender: TObject);
105 var
106 resWord : TResistWord;
107 begin
108 if (Length(KeyNameEdit.Text) = 0) then begin
109 ShowMessage('鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?');
110 end else begin
111 resWord := InputAssistDM.Add(KeyNameEdit.Text);
112 resWord.SetCategory(CategoryNameEdit.Text);
113 resWord.SetText(TextMemo.Text);
114 AddListViewItem(resWord);
115 GikoListView1.AlphaSort;
116 end;
117 end;
118 //! 鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
119 procedure TInputAssistForm.DeleteButtonClick(Sender: TObject);
120 begin
121 if GikoListView1.Selected <> nil then begin
122 InputAssistDM.DeleteResistWord(GikoListView1.Selected.Data);
123 GikoListView1.Selected.Data := nil;
124 GikoListView1.DeleteSelected;
125 end;
126 end;
127 //! 鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
128 procedure TInputAssistForm.ApplyButtonClick(Sender: TObject);
129 var
130 resWord : TResistWord;
131 begin
132 if GikoListView1.Selected <> nil then begin
133 if (Length(KeyNameEdit.Text) = 0) then begin
134 ShowMessage('鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?');
135 end else begin
136 resWord := TResistWord(GikoListView1.Selected.Data);
137 resWord.SetKey(KeyNameEdit.Text);
138 resWord.SetCategory(CategoryNameEdit.Text);
139 resWord.SetText(TextMemo.Text);
140 // 鐃緒申鐃緒申鐃緒申鐃?鐃?
141 GikoListView1.Selected.Caption := resWord.GetKey;
142 GikoListView1.Selected.SubItems[0] := resWord.GetCategory;
143 GikoListView1.AlphaSort;
144 end;
145 end;
146 end;
147 //! 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
148 procedure TInputAssistForm.FormClose(Sender: TObject;
149 var Action: TCloseAction);
150 begin
151 //鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
152 InputAssistDM.Sorted := True;
153 end;
154 //! 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申
155 procedure TInputAssistForm.GikoListView1Compare(Sender: TObject; Item1,
156 Item2: TListItem; Data: Integer; var Compare: Integer);
157 begin
158 if ((FSortColumn and 2) > 0) then begin
159 // 鐃?鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?
160 Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
161 if (Compare = 0) then begin
162 Compare := AnsiCompareStr(Item1.Caption, Item2.Caption);
163 end;
164 end else begin
165 // 鐃?鐃?鐃緒申鐃?鐃?鐃?
166 Compare := AnsiCompareStr(Item1.Caption, Item2.Caption);
167 if (Compare = 0) then begin
168 Compare := AnsiCompareStr(Item1.SubItems[0], Item2.SubItems[0]);
169 end;
170 end;
171 // 鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃?
172 if ((FSortColumn and 1) > 0) then begin
173 Compare := Compare * -1;
174 end;
175 ;
176 end;
177 //! 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃?
178 procedure TInputAssistForm.GikoListView1ColumnClick(Sender: TObject;
179 Column: TListColumn);
180 var
181 i : Integer;
182 begin
183 if Column <> nil then begin
184 // 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
185 for i := 0 to GikoListView1.Columns.Count - 1 do begin
186 GikoListView1.Column[i].ImageIndex := -1;
187 end;
188
189 // FSortColumn 鐃緒申鐃緒申:鐃緒申鐃緒申 鐃緒申鐃緒申鐃?鐃?鐃緒申
190 if Column.Caption = '鐃?鐃?' then begin
191 if FSortColumn = 0 then begin
192 FSortColumn := 1;
193 end else begin
194 FSortColumn := 0;
195 end;
196 end else begin
197 if FSortColumn = 2 then begin
198 FSortColumn := 3;
199 end else begin
200 FSortColumn := 2;
201 end;
202 end;
203 Column.ImageIndex := (FSortColumn and 1);
204 GikoListView1.AlphaSort;
205 end;
206
207 end;
208 //! 鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?
209 procedure TInputAssistForm.CloseButtonClick(Sender: TObject);
210 begin
211 Close();
212 end;
213
214 end.

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26