Develop and Download Open Source Software

Browse CVS Repository

Contents of /gikonavigoeson/gikonavi/FavoriteAdd.pas

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


Revision 1.4 - (show annotations) (download) (as text)
Fri Nov 21 17:24:50 2003 UTC (20 years, 5 months ago) by yoffy
Branch: MAIN
Changes since 1.3: +4 -5 lines
File MIME type: text/x-pascal
・今まで 1 つ固定であった BBS が複数持てるようになった。
 これにより、多くの2ちゃんねる特有の処理が排除され使えなくなった可能性がある。

以下注意。
 お気に入りファイルのフォーマットが変更になった(確定)。
 巡回ファイルのフォーマットが変更になったかもしれない(不明)。
 他にもあるかも。

1 unit FavoriteAdd;
2
3 interface
4
5 uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, ComCtrls, StdCtrls, Favorite, ImgList, BoardGroup, NewFavoriteFolder;
8
9 type
10 TFavoriteAddDialog = class(TForm)
11 TitleLabel: TLabel;
12 NameLabel: TLabel;
13 Label3: TLabel;
14 NameEdit: TEdit;
15 CaptionEdit: TEdit;
16 OKButton: TButton;
17 CancelButton: TButton;
18 NewFolderButton: TButton;
19 FolderTreeView: TTreeView;
20 Label4: TLabel;
21 procedure FormCreate(Sender: TObject);
22 procedure OKButtonClick(Sender: TObject);
23 procedure CancelButtonClick(Sender: TObject);
24 procedure NewFolderButtonClick(Sender: TObject);
25 private
26 { Private ?辿?転 }
27 FBoard: TBoard;
28 FThreadItem: TThreadItem;
29 // procedure PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
30 function GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
31 public
32 { Public ?辿?転 }
33 procedure SetBoard(Board: TBoard);
34 procedure SetThreadItem(ThreadItem: TThreadItem);
35 end;
36
37 var
38 FavoriteAddDialog: TFavoriteAddDialog;
39
40 implementation
41
42 uses Giko;
43
44 {$R *.dfm}
45
46 procedure TFavoriteAddDialog.FormCreate(Sender: TObject);
47 var
48 i: Integer;
49 begin
50 FolderTreeView.Items := FavoriteDM.TreeView.Items;
51
52 for i := FolderTreeView.Items.Count - 1 downto 0 do begin
53 if not (TObject(FolderTreeView.Items[i].Data) is TFavoriteFolder) then
54 FolderTreeView.Items[i].Delete;
55 end;
56
57 if FolderTreeView.Items.GetFirstNode <> nil then begin
58 FolderTreeView.Items.GetFirstNode.Expanded := True;
59 FolderTreeView.Items.GetFirstNode.Selected := True;
60 end;
61 { Node := FolderTreeView.Items.AddChild(nil, GikoForm.Favorite.Root.Title);
62 Node.ImageIndex := 0;
63 Node.Data := GikoForm.Favorite.Root;
64 PrepareFavoriteTree(GikoForm.Favorite.Root, Node);
65 Node.Expanded := True;
66 Node.Selected := True;}
67 end;
68
69
70 {procedure TFavoriteAddDialog.PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
71 var
72 i: Integer;
73 ChildFavo: TFavoriteItem;
74 ChildNode: TTreeNode;
75 begin
76 for i := 0 to TFavoriteFolder(Favo).Count - 1 do begin
77
78 ChildFavo := TFavoriteFolder(Favo).Items[i];
79 if ChildFavo is TFavoriteFolder then begin
80 ChildNode := FolderTreeView.Items.AddChild(Node, ChildFavo.Title);
81 ChildNode.ImageIndex := 0;
82 ChildNode.Data := ChildFavo;
83 PrepareFavoriteTree(ChildFavo, ChildNode);
84 end else if ChildFavo is TFavoriteBoardItem then begin
85 end else if ChildFavo is TFavoriteThreadItem then begin
86 end;
87 end;
88 end;}
89
90 procedure TFavoriteAddDialog.OKButtonClick(Sender: TObject);
91 var
92 i: Integer;
93 Node: TTreeNode;
94 FavoBoardItem: TFavoriteBoardItem;
95 FavoThreadItem: TFavoriteThreadItem;
96 FavNode: TTreeNode;
97 begin
98 if FolderTreeView.Selected = nil then
99 Exit;
100 Node := nil;
101 for i := 0 to FolderTreeView.Items.Count - 1 do begin
102
103 FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Data);
104 if FavNode = nil then begin
105 FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Parent.Data);
106 if FavNode <> nil then
107 Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, FolderTreeView.Items[i].Text, FolderTreeView.Items[i].Data);
108 Node.ImageIndex := 14;
109 Node.SelectedIndex := 14;
110 end;
111 end;
112
113
114 FavNode := GetGikoFavoriteNode(FolderTreeView.Selected.Data);
115 if FavNode <> nil then begin
116 if FBoard <> nil then begin
117 FavoBoardItem := TFavoriteBoardItem.Create;
118 FavoBoardItem.Item := FBoard;
119 FavoBoardItem.Title := FBoard.Title;
120 Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoBoardItem);
121 Node.ImageIndex := 15;
122 Node.SelectedIndex := 15;
123 end else if FThreadItem <> nil then begin
124 FavoThreadItem := TFavoriteThreadItem.Create;
125 FavoThreadItem.Item := FThreadItem;
126 FavoThreadItem.Title := FThreadItem.Title;
127 Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoThreadItem);
128 Node.ImageIndex := 16;
129 Node.SelectedIndex := 16;
130 end;
131 end;
132
133 FavoriteDM.WriteFavorite;
134 Close;
135 end;
136
137 procedure TFavoriteAddDialog.CancelButtonClick(Sender: TObject);
138 begin
139 Close;
140 end;
141
142 procedure TFavoriteAddDialog.NewFolderButtonClick(Sender: TObject);
143 var
144 Dlg: TNewFavoriteFolderDialog;
145 Node: TTreeNode;
146 FavFolder: TFavoriteFolder;
147 begin
148 if FolderTreeView.Selected = nil then
149 Exit;
150
151 Dlg := TNewFavoriteFolderDialog.Create(Self);
152 try
153 Dlg.ShowModal;
154 if Dlg.ModalResult = mrOK then begin
155 if Length(Dlg.FolderEdit.Text) = 0 then
156 Exit;
157 FavFolder := TFavoriteFolder.Create;
158 Node := FolderTreeView.Items.AddChildObject(FolderTreeView.Selected, Dlg.FolderEdit.Text, FavFolder);
159 Node.ImageIndex := 14;
160 Node.SelectedIndex := 14;
161 FolderTreeView.Selected := Node;
162 end;
163 finally
164 Dlg.Free;
165 end;
166 end;
167
168 procedure TFavoriteAddDialog.SetBoard(Board: TBoard);
169 begin
170 FBoard := Board;
171 if Board = nil then Exit;
172
173 NameEdit.Text := Board.Title;
174 CaptionEdit.Text := Board.Title;
175 TitleLabel.Caption := '?????????即?C???端????????????????';
176 NameLabel.Caption := '???添:';
177 end;
178
179 procedure TFavoriteAddDialog.SetThreadItem(ThreadItem: TThreadItem);
180 begin
181 FThreadItem := ThreadItem;
182 if ThreadItem = nil then Exit;
183
184 NameEdit.Text := ThreadItem.Title;
185 CaptionEdit.Text := ThreadItem.Title;
186 TitleLabel.Caption := '?????X???b?h???即?C???端????????????????';
187 NameLabel.Caption := '?X???b?h?添:';
188 end;
189
190 function TFavoriteAddDialog.GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
191 var
192 i: Integer;
193 begin
194 Result := nil;
195 for i := 0 to FavoriteDM.TreeView.Items.Count - 1 do begin
196 if FavoriteDM.TreeView.Items[i].Data = FavFolder then begin
197 Result := FavoriteDM.TreeView.Items[i];
198 Exit;
199 end;
200 end;
201 end;
202
203 end.

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