object grpPlayTimeParams: TGroupBox
Left = 8
Top = 48
- Width = 249
- Height = 201
+ Width = 417
+ Height = 225
Caption = #35443#32048'('#12511#12522#31186')'
TabOrder = 0
object lblCostWait: TLabel
Width = 40
Height = 12
Caption = '\w1'#12479#12464
+ FocusControl = spnCostWait
end
object lblCostSurface: TLabel
Left = 16
Width = 97
Height = 12
Caption = #12469#12540#12501#12451#12473#20999#12426#26367#12360
+ FocusControl = spnCostSurface
end
object lblCostChar: TLabel
- Left = 16
- Top = 80
+ Left = 240
+ Top = 32
Width = 78
Height = 12
Caption = #21322#35282#25991#23383'1'#25991#23383
+ FocusControl = spnCostChar
end
object lblCostDBChar: TLabel
- Left = 16
- Top = 104
+ Left = 240
+ Top = 56
Width = 78
Height = 12
Caption = #20840#35282#25991#23383'1'#25991#23383
- end
- object lblCostWhiteSpace: TLabel
- Left = 16
- Top = 128
- Width = 99
- Height = 12
- Caption = #21322#35282#12473#12506#12540#12473'1'#25991#23383
- end
- object lblCostDBWhiteSpace: TLabel
- Left = 16
- Top = 152
- Width = 99
- Height = 12
- Caption = #20840#35282#12473#12506#12540#12473'1'#25991#23383
+ FocusControl = spnCostDBChar
end
object lblCostQuickChar: TLabel
Left = 16
- Top = 176
+ Top = 80
Width = 119
Height = 12
Caption = #12463#12452#12483#12463#12475#12463#12471#12519#12531'1'#25991#23383
+ FocusControl = spnCostQuickChar
end
- object spnCostDBWhiteSpace: TSpinEdit
- Left = 144
- Top = 146
- Width = 89
- Height = 21
- Hint = #20840#35282#12473#12506#12540#12473'1'#25991#23383#12398#34920#31034#12395#12363#12363#12427#26178#38291
- MaxValue = 1000
- MinValue = 0
- TabOrder = 0
- Value = 0
- OnChange = spnCostWaitChange
- end
- object spnCostWhiteSpace: TSpinEdit
- Left = 144
- Top = 122
- Width = 89
- Height = 21
- Hint = #21322#35282#12473#12506#12540#12473'1'#25991#23383#12398#34920#31034#12395#12363#12363#12427#26178#38291
- MaxValue = 1000
- MinValue = 0
- TabOrder = 1
- Value = 0
- OnChange = spnCostWaitChange
+ object lblCostSpecials: TLabel
+ Left = 16
+ Top = 112
+ Width = 133
+ Height = 12
+ Caption = #29305#27530#12394#26178#38291#12434#25345#12388#25991#23383'(&P):'
end
object spnCostDBChar: TSpinEdit
- Left = 144
- Top = 98
- Width = 89
+ Left = 328
+ Top = 50
+ Width = 81
Height = 21
Hint = #12473#12506#12540#12473#12434#38500#12367#20840#35282#25991#23383'1'#25991#23383#12398#34920#31034#12395#12363#12363#12427#26178#38291
MaxValue = 1000
MinValue = 0
- TabOrder = 2
+ TabOrder = 0
Value = 0
OnChange = spnCostWaitChange
end
object spnCostWait: TSpinEdit
- Left = 144
+ Left = 328
Top = 26
- Width = 89
+ Width = 81
Height = 21
Hint = '\w1'#12479#12464'1'#20491#20998#12398#24453#12385#26178#38291#12290'\w9'#12394#12425#12371#12398'9'#20493
MaxValue = 1000
MinValue = 0
- TabOrder = 3
+ TabOrder = 1
Value = 0
OnChange = spnCostWaitChange
end
object spnCostSurface: TSpinEdit
Left = 144
Top = 50
- Width = 89
+ Width = 81
Height = 21
Hint = '1'#22238#12398#12469#12540#12501#12451#12473#20999#26367#12360#12395#12363#12363#12427#26178#38291
MaxValue = 1000
MinValue = 0
- TabOrder = 4
+ TabOrder = 2
Value = 0
OnChange = spnCostWaitChange
end
object spnCostChar: TSpinEdit
Left = 144
- Top = 74
- Width = 89
+ Top = 26
+ Width = 81
Height = 21
Hint = #12473#12506#12540#12473#12434#38500#12367#21322#35282#25991#23383'1'#25991#23383#12398#34920#31034#12395#12363#12363#12427#26178#38291
MaxValue = 1000
MinValue = 0
- TabOrder = 5
+ TabOrder = 3
Value = 0
OnChange = spnCostWaitChange
end
object spnCostQuickChar: TSpinEdit
Left = 144
- Top = 170
- Width = 89
+ Top = 74
+ Width = 81
Height = 21
Hint = #12463#12452#12483#12463#12475#12463#12471#12519#12531#20013#12398'1'#25991#23383#34920#31034#12395#12363#12363#12427#26178#38291
MaxValue = 1000
MinValue = 0
- TabOrder = 6
+ TabOrder = 4
Value = 0
OnChange = spnCostWaitChange
end
+ object lvwCostSpecials: TListView
+ Left = 16
+ Top = 128
+ Width = 161
+ Height = 89
+ Columns = <
+ item
+ Caption = #25991#23383
+ Width = 60
+ end
+ item
+ Alignment = taRightJustify
+ Caption = #26178#38291
+ Width = 60
+ end>
+ ReadOnly = True
+ RowSelect = True
+ TabOrder = 5
+ ViewStyle = vsReport
+ OnDblClick = lvwCostSpecialsDblClick
+ end
+ object btnPlaySpecialAdd: TButton
+ Left = 184
+ Top = 160
+ Width = 75
+ Height = 25
+ Caption = #36861#21152'(&A)'
+ TabOrder = 6
+ OnClick = btnPlaySpecialAddClick
+ end
+ object btnPlaySpecialDelete: TButton
+ Left = 184
+ Top = 192
+ Width = 75
+ Height = 25
+ Caption = #21066#38500'(&D)'
+ TabOrder = 7
+ OnClick = btnPlaySpecialDeleteClick
+ end
end
object cbxPlayTimeProfile: TComboBox
Left = 176
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, BottleDef, Spin,
CPCConfigTreeView, ColorSettingFrame, BottleChainListFrame, SakuraSeekerInstance,
- ImgList, StrListEditor, SppList, Plugins, Clipbrd, SsPlayTime, StrUtils;
+ ImgList, StrListEditor, SppList, Plugins, Clipbrd, SsPlayTime, StrUtils,
+ SpecialCharEditor;
type
TfrmSetting = class(TForm)
grpPlayTimeParams: TGroupBox;
lblPlayTimeProfile: TLabel;
cbxPlayTimeProfile: TComboBox;
- spnCostDBWhiteSpace: TSpinEdit;
- spnCostWhiteSpace: TSpinEdit;
spnCostDBChar: TSpinEdit;
spnCostWait: TSpinEdit;
spnCostSurface: TSpinEdit;
lblCostSurface: TLabel;
lblCostChar: TLabel;
lblCostDBChar: TLabel;
- lblCostWhiteSpace: TLabel;
- lblCostDBWhiteSpace: TLabel;
lblCostQuickChar: TLabel;
btnSavePlayTimeProfile: TButton;
+ lvwCostSpecials: TListView;
+ lblCostSpecials: TLabel;
+ btnPlaySpecialAdd: TButton;
+ btnPlaySpecialDelete: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure edtProxyPortKeyPress(Sender: TObject; var Key: Char);
procedure ctvBottleNodeChecked(Sender: TObject;
procedure cbxPlayTimeProfileChange(Sender: TObject);
procedure btnSavePlayTimeProfileClick(Sender: TObject);
procedure spnCostWaitChange(Sender: TObject);
+ procedure btnPlaySpecialAddClick(Sender: TObject);
+ procedure btnPlaySpecialDeleteClick(Sender: TObject);
+ procedure lvwCostSpecialsDblClick(Sender: TObject);
private
{ Private \90é\8c¾ }
FOldLUID: String;
FSpinUpdateFlag: boolean;
procedure LoadPlayTimeProfiles;
- procedure PlayTimeParamsToControl(Params: TSsPlayTimeParams);
- procedure ControlToPlayTimeParams(Params: TSsPlayTimeParams);
+ procedure PlayTimeParamsToSpinControl(Params: TSsPlayTimeParams);
+ procedure SpinControlToPlayTimeParams(Params: TSsPlayTimeParams);
+ procedure UpdateSpecialChars;
public
{ Public \90é\8c¾ }
procedure Execute;
cbxPlayTimeProfile.Items.Add(Pref.PlayTimeParams.ProfileName);
cbxPlayTimeProfile.ItemIndex := 0;
LoadPlayTimeProfiles;
- PlayTimeParamsToControl(Pref.PlayTimeParams);
+ PlayTimeParamsToSpinControl(Pref.PlayTimeParams);
+ UpdateSpecialChars;
//
cbxAutoStart.Checked := Pref.AutoStart;
rgpTabPosition.ItemIndex := Ord(Pref.TabPosition);
end;
//
Pref.PlayTimeParams.ProfileName := cbxPlayTimeProfile.Text;
- ControlToPlayTimeParams(Pref.PlayTimeParams);
+ SpinControlToPlayTimeParams(Pref.PlayTimeParams);
//
Pref.AutoStart := cbxAutoStart.Checked;
Pref.TabPosition := TTabPosition(rgpTabPosition.ItemIndex);
end;
end;
-procedure TfrmSetting.PlayTimeParamsToControl(Params: TSsPlayTimeParams);
+procedure TfrmSetting.PlayTimeParamsToSpinControl(Params: TSsPlayTimeParams);
begin
FSpinUpdateFlag := true;
with Params do
spnCostSurface.Value := CostSurface;
spnCostChar.Value := CostChar;
spnCostDBChar.Value := CostDBChar;
- spnCostWhiteSpace.Value := CostWhiteSpace;
- spnCostDBWhiteSpace.Value := CostDBWhiteSpace;
spnCostQuickChar.Value := CostQuickChar;
+ lvwCostSpecials.Items.Clear;
end;
FSpinUpdateFlag := false;
end;
-procedure TfrmSetting.ControlToPlayTimeParams(Params: TSsPlayTimeParams);
+procedure TfrmSetting.SpinControlToPlayTimeParams(Params: TSsPlayTimeParams);
begin
with Params do
begin
CostSurface := spnCostSurface.Value;
CostChar := spnCostChar.Value;
CostDBChar := spnCostDBChar.Value;
- CostWhiteSpace := spnCostWhiteSpace.Value;
- CostDBWhiteSpace := spnCostDBWhiteSpace.Value;
CostQuickChar := spnCostQuickChar.Value;
end;
end;
Strs.LoadFromFile(Path + ProName + '.txt');
Params := StringToComponent(Strs.Text) as TSsPlayTimeParams;
try
- PlayTimeParamsToControl(Params);
+ PlayTimeParamsToSpinControl(Params);
+ Pref.PlayTimeParams.Assign(Params);
+ UpdateSpecialChars;
finally
Params.Free;
end;
var
ProfileName, Path, FileName: String;
Strs: TStringList;
- TmpParams: TSsPlayTimeParams;
begin
ProfileName := cbxPlayTimeProfile.Text;
if InputQuery('\83v\83\8d\83t\83@\83C\83\8b\96¼', '\95Û\91¶\82·\82é\83v\83\8d\83t\83@\83C\83\8b\96¼', ProfileName) then
Exit;
Strs := TStringList.Create;
try
- TmpParams := TSsPlayTimeParams.Create(nil);
- try
- ControlToPlayTimeParams(TmpParams);
- TmpParams.ProfileName := ProfileName;
- Strs.Text := ComponentToString(TmpParams);
- Strs.SaveToFile(FileName);
- finally
- TmpParams.Free;
- end;
+ SpinControlToPlayTimeParams(Pref.PlayTimeParams);
+ Pref.PlayTimeParams.ProfileName := ProfileName;
+ Strs.Text := ComponentToString(Pref.PlayTimeParams);
+ Strs.SaveToFile(FileName);
finally
Strs.Free;
end;
end;
end;
+procedure TfrmSetting.btnPlaySpecialAddClick(Sender: TObject);
+var
+ Item: TListItem;
+ SPChar: TSsPlayTimeSpecialChar;
+begin
+ Application.CreateForm(TfrmSpecialCharEditor, frmSpecialCharEditor);
+ try
+ with frmSpecialCharEditor do
+ begin
+ SpecialChar := '';
+ Cost := 50;
+ if Execute then
+ begin
+ SPChar := Pref.PlayTimeParams.SpecialChars.Add as TSsPlayTimeSpecialChar;
+ SPChar.Char := SpecialChar;
+ SPChar.Wait := Cost;
+ Item := lvwCostSpecials.Items.Add;
+ Item.Caption := SPChar.DisplayChar;
+ Item.SubItems.Add(IntToStr(Cost));
+ spnCostWaitChange(Self);
+ end;
+ end;
+ finally
+ frmSpecialCharEditor.Release;
+ end;
+end;
+
+procedure TfrmSetting.btnPlaySpecialDeleteClick(Sender: TObject);
+begin
+ with lvwCostSpecials do
+ if Selected <> nil then
+ begin
+ Pref.PlayTimeParams.SpecialChars.Delete(Selected.Index);
+ Selected.Delete;
+ spnCostWaitChange(Self);
+ end;
+end;
+
+procedure TfrmSetting.lvwCostSpecialsDblClick(Sender: TObject);
+var
+ Item: TListItem;
+ SPChar: TSsPlayTimeSpecialChar;
+begin
+ with lvwCostSpecials do
+ begin
+ Item := Selected;
+ if Item <> nil then
+ begin
+ Application.CreateForm(TfrmSpecialCharEditor, frmSpecialCharEditor);
+ try
+ with frmSpecialCharEditor do
+ begin
+ SPChar := Pref.PlayTimeParams.SpecialChars.Items[Item.Index] as TSsPlayTimeSpecialChar;
+ SpecialChar := SPChar.Char;
+ Cost := SPChar.Wait;
+ if Execute then
+ begin
+ SPChar.Char := SpecialChar;
+ SPChar.Wait := Cost;
+ Item.Caption := SPChar.DisplayChar;
+ Item.SubItems[0] := IntToStr(Cost);
+ spnCostWaitChange(Self);
+ end;
+ end;
+ finally
+ frmSpecialCharEditor.Release;
+ end;
+ end;
+ end;
+end;
+
+procedure TfrmSetting.UpdateSpecialChars;
+var
+ i: integer;
+ Item: TListItem;
+ SPChar: TSsPlayTimeSpecialChar;
+begin
+ with lvwCostSpecials do
+ begin
+ Items.Clear;
+ for i := 0 to Pref.PlayTimeParams.SpecialChars.Count-1 do
+ begin
+ SPChar := Pref.PlayTimeParams.SpecialChars.Items[i] as TSsPlayTimeSpecialChar;
+ Item := Items.Add;
+ Item.Caption := SPChar.DisplayChar;
+ Item.SubItems.Add(IntToStr(SPChar.Wait));
+ end;
+ end;
+end;
+
end.