OSDN Git Service

全てを解除することができるようにした。
[gikonavigoeson/gikonavi.git] / IndividualAbon.pas
1 unit IndividualAbon;
2
3 interface
4
5 uses
6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7   Dialogs, StdCtrls, Buttons;
8
9 type
10   TIndividualAbonForm = class(TForm)
11     ComboBox1: TComboBox;
12     Label1: TLabel;
13     Button1: TButton;
14     BitBtn2: TBitBtn;
15     BitBtn1: TBitBtn;
16     procedure Button1Click(Sender: TObject);
17     procedure FormCreate(Sender: TObject);
18     procedure FormDestroy(Sender: TObject);
19     procedure BitBtn2Click(Sender: TObject);
20   private
21         { Private \90é\8c¾ }
22         FThreadLogFileName: String;
23         FNGFileName: String;
24         FDeleteList: TStringList;
25   public
26         { Public \90é\8c¾ }
27         FRepaint : boolean;
28         ResNumber : Integer;
29         function SetThreadLogFileName(AFileName: String): boolean;
30         function DeleteNG(AResNum: Integer): boolean;
31         property DeleteList : TStringList read FDeleteList write FDeleteList;
32   end;
33
34 var
35   IndividualAbonForm: TIndividualAbonForm;
36
37 implementation
38
39 {$R *.dfm}
40
41 procedure TIndividualAbonForm.Button1Click(Sender: TObject);
42 var
43         NGFile: TStringList;
44         i, j: Integer;
45
46         str: String;
47 begin
48         if (FileExists(FNGFileName)) and (ComboBox1.ItemIndex >= 0) then begin
49                 NGFile := TStringList.Create;
50                 try
51                         try
52                                 NGFile.LoadFromFile(FNGFileName);
53                                 str := ComboBox1.Items[ComboBox1.ItemIndex] + '-';
54                                 i := -1;
55                                 for j := 0 to NGFile.Count - 1 do begin
56                                         if AnsiPos(str, NGFile[j]) = 1 then begin
57                                                 i := j;
58                                                 break;
59                                         end;
60                                 end;
61
62                                 if i >= 0 then begin
63                                         FRepaint := true;
64                                         DeleteList.Add(Copy(str, 1, Length(str) - 1));
65                                         NGFile.Delete(i);
66                                         if NGFile.Count = 0 then
67                                                 DeleteFile(FNGFileName)
68                                         else
69                                                 NGFile.SaveToFile(FNGFileName);
70                                 end else
71                                         FRepaint := false;
72                         except
73                         end;
74                 finally
75                         NGFile.Free;
76                 end;
77         end;
78 end;
79 function TIndividualAbonForm.SetThreadLogFileName(AFileName: String): boolean;
80 var
81         NGFile: TStringList;
82         i: Integer;
83         str: String;
84 begin
85         FThreadLogFileName := AFileName;
86         FNGFileName := ChangeFileExt(AFileName, '.NG');
87         Result := false;
88         if FileExists(FNGFileName) then begin
89                 NGFile := TStringList.Create;
90                 try
91                         try
92                                 NGFile.LoadFromFile(FNGFileName);
93                                 ComboBox1.Items.Clear;
94                 ComboBox1.Sorted := true;
95                                 for i := 0 to NGFile.Count - 1do begin
96                                         str := Copy(NGFile.Strings[i], 1, AnsiPos('-', NGFile.Strings[i]) - 1);
97                                         if str <> '' then
98                                                 ComboBox1.Items.Add(str);
99                                 end;
100                                 if ComboBox1.Items.Count > 0 then
101                                         Result := true;
102
103                         except
104                                 Result := false;
105                         end;
106                 finally
107                         NGFile.Free;
108                 end;
109         end;
110 end;
111 function TIndividualAbonForm.DeleteNG(AResNum: Integer): boolean;
112 var
113         NGFile: TStringList;
114         i, j: Integer;
115
116         str: String;
117 begin
118         Result := false;
119         if (FileExists(FNGFileName)) and (AResNum > 0) then begin
120                 NGFile := TStringList.Create;
121                 try
122                         try
123                                 NGFile.LoadFromFile(FNGFileName);
124                                 str := IntToStr(AResNum) + '-';
125                                 i := -1;
126                                 for j := 0 to NGFile.Count - 1 do begin
127                                         if AnsiPos(str, NGFile[j]) = 1 then begin
128                                                 i := j;
129                                                 break;
130                                         end;
131                                 end;
132                                 if i >= 0 then begin
133                                         Result := true;
134                                         NGFile.Delete(i);
135                                         if NGFile.Count = 0 then
136                                                 DeleteFile(FNGFileName)
137                                         else
138                                                 NGFile.SaveToFile(FNGFileName);
139                                 end;
140                         except
141                         end;
142                 finally
143                         NGFile.Free;
144                 end;
145         end;
146 end;
147
148 procedure TIndividualAbonForm.FormCreate(Sender: TObject);
149 begin
150         FDeleteList := TStringList.Create;
151 end;
152
153 procedure TIndividualAbonForm.FormDestroy(Sender: TObject);
154 begin
155         FDeleteList.Free;
156 end;
157
158 procedure TIndividualAbonForm.BitBtn2Click(Sender: TObject);
159 var
160         NGFile: TStringList;
161         i, j: Integer;
162
163         str: String;
164 begin
165         if (FileExists(FNGFileName)) then begin
166                 NGFile := TStringList.Create;
167                 try
168                         try
169                                 FRepaint := false;
170                                 NGFile.LoadFromFile(FNGFileName);
171                                 for i := ComboBox1.Items.Count - 1 downto 0 do begin
172                                         str := ComboBox1.Items[i];
173                                         if( Length(str) > 0 ) then begin
174                                                 FRepaint := true;
175                                                 DeleteList.Add(str);
176                                                 NGFile.Delete(i);
177                                         end;
178                                 end;
179                 DeleteFile(FNGFileName);
180                         except
181                         end;
182                 finally
183                         NGFile.Free;
184                 end;
185         end;
186 end;
187
188 end.