6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
7 ComCtrls, StdCtrls, ExtCtrls, BottleDef, Spin,
8 CPCConfigTreeView, ColorSettingFrame, BottleChainListFrame, SakuraSeekerInstance;
11 TfrmSetting = class(TForm)
12 PageControl: TPageControl;
14 tstGeneral: TTabSheet;
17 rgpWhenReturn: TRadioGroup;
18 rgpWhenShiftReturn: TRadioGroup;
19 rgpWhenCtrlReturn: TRadioGroup;
20 memDefaultScript: TMemo;
21 lblDefaultScript: TLabel;
22 grpLocalConfirm: TGroupBox;
23 cbxColorScript: TCheckBox;
24 trkColorTimeLag: TTrackBar;
25 trkColorSpeed: TTrackBar;
26 cbxIgnoreTimeCritical: TCheckBox;
27 lblColorTimeLag: TLabel;
28 lblColorSpeed: TLabel;
29 tstReceive: TTabSheet;
30 rgpTabPosition: TRadioGroup;
31 OpenDialog: TOpenDialog;
32 spnWaitScriptEnd: TSpinEdit;
33 lblWaitScriptEnd: TLabel;
34 cbxNoSendGhostList: TCheckBox;
35 cbxConfirmOnExit: TCheckBox;
36 ctvBottle: TCPCConfigTreeView;
37 lblGhostDropDownCount: TLabel;
38 spnGhostDropDownCount: TSpinEdit;
40 frmColorSetting: TfrmColorSetting;
42 frmRuleList: TfrmBottleChainList;
43 tstDetailed: TTabSheet;
47 lblProxyAddress: TLabel;
49 edtProxyAddress: TEdit;
51 cbxUseHttpProxy: TCheckBox;
52 tstChannel: TTabSheet;
53 lblAutoJoinChannels: TLabel;
54 memAutoJoinChannels: TMemo;
55 cbxAutoStart: TCheckBox;
56 btnUseCurrentJoinChannels: TButton;
58 procedure FormClose(Sender: TObject; var Action: TCloseAction);
59 procedure edtProxyPortKeyPress(Sender: TObject; var Key: Char);
60 procedure ctvBottleNodeChecked(Sender: TObject;
61 Node: TCPCConfigItemNode);
62 procedure ctvBottleNodeChecking(Sender: TObject;
63 Node: TCPCConfigItemNode; var Allow: Boolean);
64 procedure tstRuleShow(Sender: TObject);
65 procedure btnUseCurrentJoinChannelsClick(Sender: TObject);
74 frmSetting: TfrmSetting;
78 ChannelDefaultGhost = '(
\83`
\83\83\83\93\83l
\83\8b\90\84\8f§
\83S
\81[
\83X
\83g)';
86 procedure TfrmSetting.Execute;
88 PageControl.ActivePage := tstGeneral;
89 memDefaultScript.Text := Pref.DefaultScript;
90 cbxIgnoreTimeCritical.Checked := Pref.IgnoreTimeCritical;
91 cbxNoSendGhostList.Checked := Pref.NoSendGhostList;
92 cbxConfirmOnExit.Checked := Pref.ConfirmOnExit;
94 cbxColorScript.Checked := Pref.ColorScript;
95 with frmColorSetting do begin
96 Color['H'] := Pref.TalkColorH;
97 Color['U'] := Pref.TalkColorU;
98 Color['Synchro'] := Pref.TalkColorS;
99 Color['Tag'] := Pref.MarkUpColor;
100 Color['Meta'] := Pref.MetaWordColor;
101 Color['Error'] := Pref.MarkErrorColor;
102 Color['Background'] := Pref.BgColor;
104 trkColorTimeLag.Position := Pref.ColorTimeLagValue;
105 trkColorSpeed.Position := Pref.ColorSpeed;
107 cbxAutoStart.Checked := Pref.AutoStart;
108 rgpTabPosition.ItemIndex := Ord(Pref.TabPosition);
109 spnGhostDropDownCount.Value := Pref.GhostDropDownCount;
111 with ctvBottle do begin
112 (GetNodeFromKeyPath('Arrive\NoTranslate') as TCPCCheckBoxNode).Checked := Pref.NoTranslate;
113 (GetNodeFromKeyPath('Arrive\NoDescript') as TCPCCheckBoxNode).Checked := Pref.NoDescript;
114 if Pref.NoTransUrl then
115 (GetNodeFromKeyPath('Arrive\UrlTag\NoSelection') as TCPCRadioNode).Check
117 (GetNodeFromKeyPath('Arrive\UrlTag\WithSelection') as TCPCRadioNode).Check;
118 (GetNodeFromKeyPath('Arrive\SilentWhenHidden') as TCPCCheckBoxNode).Checked := Pref.SilentWhenHidden;
119 (GetNodeFromKeyPath('Arrive\FixMessySurface') as TCPCCheckBoxNode).Checked := Pref.FixMessySurface;
120 (GetNodeFromKeyPath('Arrive\HUTagTo01Tag') as TCPCCheckBoxNode).Checked := Pref.HUTagTo01Tag;
121 (GetNodeFromKeyPath('Out\ResetIfGhostAfterSend') as TCPCCheckBoxNode).Checked := Pref.ResetIfGhostAfterSend;
122 (GetNodeFromKeyPath('Out\ClearAfterSend') as TCPCCheckBoxNode).Checked := Pref.ClearAfterSend;
123 (GetNodeFromKeyPath('Out\Confirm') as TCPCCheckBoxNode).Checked := not Pref.NoConfirm;
126 on E: Exception do ShowMessage(E.Message);
128 //cbxIgnoreFrequentYenS.Checked := Pref.IgnoreFrequentYenS;
129 spnWaitScriptEnd.Value := Pref.WaitScriptEnd;
131 rgpWhenReturn.ItemIndex := Ord(Pref.WhenReturn);
132 rgpWhenShiftReturn.ItemIndex := Ord(Pref.WhenShiftReturn);
133 rgpWhenCtrlReturn.ItemIndex := Ord(Pref.WhenCtrlReturn);
135 cbxUseHttpProxy.Checked := Pref.UseHttpProxy;
136 edtProxyAddress.Text := Pref.ProxyAddress;
137 edtProxyPort.Text := IntToStr(Pref.ProxyPort);
139 memFMOName.Lines := Pref.FMOName;
140 memAutoJoinChannels.Lines := Pref.AutoJoinChannels;
145 procedure TfrmSetting.FormClose(Sender: TObject; var Action: TCloseAction);
147 Pref.DefaultScript := memDefaultScript.Text;
148 Pref.IgnoreTimeCritical := cbxIgnoreTimeCritical.Checked;
149 Pref.NoSendGhostList := cbxNoSendGhostList.Checked;
150 Pref.ConfirmOnExit := cbxConfirmOnExit.Checked;
152 Pref.ColorScript := cbxColorScript.Checked;
153 with frmColorSetting do begin
154 Pref.TalkColorH := Color['H'];
155 Pref.TalkColorU := Color['U'];
156 Pref.TalkColorS := Color['Synchro'];
157 Pref.MarkUpColor := Color['Tag'];
158 Pref.MetaWordColor := Color['Meta'];
159 Pref.MarkErrorColor := Color['Error'];
160 Pref.BgColor := Color['Background'];
162 Pref.ColorTimeLagValue := trkColorTimeLag.Position;
163 Pref.ColorSpeed := trkColorSpeed.Position;
165 Pref.AutoStart := cbxAutoStart.Checked;
166 Pref.TabPosition := TTabPosition(rgpTabPosition.ItemIndex);
167 Pref.GhostDropDownCount := spnGhostDropDownCount.Value;
169 with ctvBottle do begin
170 Pref.NoTranslate := (GetNodeFromKeyPath('Arrive\NoTranslate') as TCPCCheckBoxNode).Checked;
171 Pref.NoDescript := (GetNodeFromKeyPath('Arrive\NoDescript') as TCPCCheckBoxNode).Checked;
172 Pref.NoTransUrl := (GetNodeFromKeyPath('Arrive\UrlTag\NoSelection') as TCPCRadioNode).Checked;
173 Pref.SilentWhenHidden := (GetNodeFromKeyPath('Arrive\SilentWhenHidden') as TCPCCheckBoxNode).Checked;
174 Pref.FixMessySurface := (GetNodeFromKeyPath('Arrive\FixMessySurface') as TCPCCheckBoxNode).Checked;
175 Pref.HUTagTo01Tag := (GetNodeFromKeyPath('Arrive\HUTagTo01Tag') as TCPCCheckBoxNode).Checked;
176 Pref.ResetIfGhostAfterSend := (GetNodeFromKeyPath('Out\ResetIfGhostAfterSend') as TCPCCheckBoxNode).Checked;
177 Pref.ClearAfterSend := (GetNodeFromKeyPath('Out\ClearAfterSend') as TCPCCheckBoxNode).Checked;
178 Pref.NoConfirm := not (GetNodeFromKeyPath('Out\Confirm') as TCPCCheckBoxNode).Checked;
181 on E: Exception do ShowMessage(E.Message);
183 //Pref.IgnoreFrequentYenS := cbxIgnoreFrequentYenS.Checked;
184 Pref.WaitScriptEnd := spnWaitScriptEnd.Value;
186 Pref.WhenReturn := TReturnKeyFunction(rgpWhenReturn.ItemIndex);
187 Pref.WhenShiftReturn := TReturnKeyFunction(rgpWhenShiftReturn.ItemIndex);
188 Pref.WhenCtrlReturn := TReturnKeyFunction(rgpWhenCtrlReturn.ItemIndex);
190 Pref.UseHttpProxy := cbxUseHttpProxy.Checked;
191 Pref.ProxyAddress := edtProxyAddress.Text;
192 Pref.ProxyPort := StrToInt(edtProxyPort.Text);
194 Pref.FMOName := memFMOName.Lines;
195 SakuraSeeker.FileMappingTarget := Pref.FMOName;
197 Pref.AutoJoinChannels := memAutoJoinChannels.Lines;
200 procedure TfrmSetting.edtProxyPortKeyPress(Sender: TObject; var Key: Char);
202 if not(Key in ['0'..'9']) then Key := Char(0);
205 procedure TfrmSetting.ctvBottleNodeChecked(Sender: TObject;
206 Node: TCPCConfigItemNode);
208 //ShowMessage(ctvBottle.GetFullKeyPath(Node));
211 procedure TfrmSetting.ctvBottleNodeChecking(Sender: TObject;
212 Node: TCPCConfigItemNode; var Allow: Boolean);
214 if Node.KeyName = 'IgnoreBottle' then begin
215 MessageDlg('
\82±
\82Ì
\8b@
\94\
\82Í
\8eÀ
\91\95\82³
\82ê
\82Ä
\82¢
\82Ü
\82¹
\82ñ', mtError, [mbOk], 0);
220 procedure TfrmSetting.tstRuleShow(Sender: TObject);
222 frmRuleList.UpdateDisplay;
225 procedure TfrmSetting.btnUseCurrentJoinChannelsClick(Sender: TObject);
227 memAutoJoinChannels.Lines := JoinChannels;