6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
7 ComCtrls, StdCtrls, ExtCtrls, BottleDef, EllipsEd, 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;
44 lblAdditionalFMOName: TLabel;
45 memAdditionalFMOName: TMemo;
48 lblProxyAddress: TLabel;
50 edtProxyAddress: TEdit;
52 cbxUseHttpProxy: TCheckBox;
53 tstChannel: TTabSheet;
54 lblAutoJoinChannels: TLabel;
55 memAutoJoinChannels: TMemo;
56 cbxAutoStart: TCheckBox;
57 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('Out\ResetIfGhostAfterSend') as TCPCCheckBoxNode).Checked := Pref.ResetIfGhostAfterSend;
121 (GetNodeFromKeyPath('Out\ClearAfterSend') as TCPCCheckBoxNode).Checked := Pref.ClearAfterSend;
122 (GetNodeFromKeyPath('Out\Confirm') as TCPCCheckBoxNode).Checked := not Pref.NoConfirm;
125 on E: Exception do ShowMessage(E.Message);
127 //cbxIgnoreFrequentYenS.Checked := Pref.IgnoreFrequentYenS;
128 spnWaitScriptEnd.Value := Pref.WaitScriptEnd;
130 rgpWhenReturn.ItemIndex := Ord(Pref.WhenReturn);
131 rgpWhenShiftReturn.ItemIndex := Ord(Pref.WhenShiftReturn);
132 rgpWhenCtrlReturn.ItemIndex := Ord(Pref.WhenCtrlReturn);
134 cbxUseHttpProxy.Checked := Pref.UseHttpProxy;
135 edtProxyAddress.Text := Pref.ProxyAddress;
136 edtProxyPort.Text := IntToStr(Pref.ProxyPort);
138 memAdditionalFMOName.Lines := Pref.AdditionalFMOName;
139 memAutoJoinChannels.Lines := Pref.AutoJoinChannels;
144 procedure TfrmSetting.FormClose(Sender: TObject; var Action: TCloseAction);
146 Pref.DefaultScript := memDefaultScript.Text;
147 Pref.IgnoreTimeCritical := cbxIgnoreTimeCritical.Checked;
148 Pref.NoSendGhostList := cbxNoSendGhostList.Checked;
149 Pref.ConfirmOnExit := cbxConfirmOnExit.Checked;
151 Pref.ColorScript := cbxColorScript.Checked;
152 with frmColorSetting do begin
153 Pref.TalkColorH := Color['H'];
154 Pref.TalkColorU := Color['U'];
155 Pref.TalkColorS := Color['Synchro'];
156 Pref.MarkUpColor := Color['Tag'];
157 Pref.MetaWordColor := Color['Meta'];
158 Pref.MarkErrorColor := Color['Error'];
159 Pref.BgColor := Color['Background'];
161 Pref.ColorTimeLagValue := trkColorTimeLag.Position;
162 Pref.ColorSpeed := trkColorSpeed.Position;
164 Pref.AutoStart := cbxAutoStart.Checked;
165 Pref.TabPosition := TTabPosition(rgpTabPosition.ItemIndex);
166 Pref.GhostDropDownCount := spnGhostDropDownCount.Value;
168 with ctvBottle do begin
169 Pref.NoTranslate := (GetNodeFromKeyPath('Arrive\NoTranslate') as TCPCCheckBoxNode).Checked;
170 Pref.NoDescript := (GetNodeFromKeyPath('Arrive\NoDescript') as TCPCCheckBoxNode).Checked;
171 Pref.NoTransUrl := (GetNodeFromKeyPath('Arrive\UrlTag\NoSelection') as TCPCRadioNode).Checked;
172 Pref.SilentWhenHidden := (GetNodeFromKeyPath('Arrive\SilentWhenHidden') as TCPCCheckBoxNode).Checked;
173 Pref.FixMessySurface := (GetNodeFromKeyPath('Arrive\FixMessySurface') as TCPCCheckBoxNode).Checked;
174 Pref.ResetIfGhostAfterSend := (GetNodeFromKeyPath('Out\ResetIfGhostAfterSend') as TCPCCheckBoxNode).Checked;
175 Pref.ClearAfterSend := (GetNodeFromKeyPath('Out\ClearAfterSend') as TCPCCheckBoxNode).Checked;
176 Pref.NoConfirm := not (GetNodeFromKeyPath('Out\Confirm') as TCPCCheckBoxNode).Checked;
179 on E: Exception do ShowMessage(E.Message);
181 //Pref.IgnoreFrequentYenS := cbxIgnoreFrequentYenS.Checked;
182 Pref.WaitScriptEnd := spnWaitScriptEnd.Value;
184 Pref.WhenReturn := TReturnKeyFunction(rgpWhenReturn.ItemIndex);
185 Pref.WhenShiftReturn := TReturnKeyFunction(rgpWhenShiftReturn.ItemIndex);
186 Pref.WhenCtrlReturn := TReturnKeyFunction(rgpWhenCtrlReturn.ItemIndex);
188 Pref.UseHttpProxy := cbxUseHttpProxy.Checked;
189 Pref.ProxyAddress := edtProxyAddress.Text;
190 Pref.ProxyPort := StrToInt(edtProxyPort.Text);
192 Pref.AdditionalFMOName := memAdditionalFMOName.Lines;
194 Pref.AutoJoinChannels := memAutoJoinChannels.Lines;
197 procedure TfrmSetting.edtProxyPortKeyPress(Sender: TObject; var Key: Char);
199 if not(Key in ['0'..'9']) then Key := Char(0);
202 procedure TfrmSetting.ctvBottleNodeChecked(Sender: TObject;
203 Node: TCPCConfigItemNode);
205 //ShowMessage(ctvBottle.GetFullKeyPath(Node));
208 procedure TfrmSetting.ctvBottleNodeChecking(Sender: TObject;
209 Node: TCPCConfigItemNode; var Allow: Boolean);
211 if Node.KeyName = 'IgnoreBottle' then begin
212 MessageDlg('
\82±
\82Ì
\8b@
\94\
\82Í
\8eÀ
\91\95\82³
\82ê
\82Ä
\82¢
\82Ü
\82¹
\82ñ', mtError, [mbOk], 0);
217 procedure TfrmSetting.tstRuleShow(Sender: TObject);
219 frmRuleList.UpdateDisplay;
222 procedure TfrmSetting.btnUseCurrentJoinChannelsClick(Sender: TObject);
224 memAutoJoinChannels.Lines := JoinChannels;