PopUpMenu: TPopupMenu;
mnNewGroup: TMenuItem;
mnAddConst: TMenuItem;
- mnEditConst: TMenuItem;
- mnDelete: TMenuItem;
mnUp: TMenuItem;
mnDown: TMenuItem;
- mnInsert: TMenuItem;
- N5: TMenuItem;
pnlConstText: TPanel;
pageConstText: TPageControl;
tstMenu: TTabSheet;
pnlConstFile: TPanel;
Label6: TLabel;
cbxConstFile: TComboBox;
- Button1: TButton;
+ mnDeleteConst: TMenuItem;
procedure actDeleteExecute(Sender: TObject);
- procedure actNewGroupExecute(Sender: TObject);
procedure actMoveUpExecute(Sender: TObject);
procedure actMoveDownExecute(Sender: TObject);
procedure tvwConstChange(Sender: TObject; Node: TTreeNode);
procedure btnCloseClick(Sender: TObject);
procedure tvwConstChanging(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
- procedure Button1Click(Sender: TObject);
procedure cbxConstFileChange(Sender: TObject);
+ procedure actNewGroupExecute(Sender: TObject);
+ procedure actNewConstExecute(Sender: TObject);
+ procedure edtExit(Sender: TObject);
private
{ Private \90é\8c¾ }
FTargetConstFile: TScriptConstFile;
FTargetItemID: integer;
procedure UpdateList;
function GetNodeByID(ID: integer): TTreeNode;
+ procedure ChangeActionStatus;
public
{ Public \90é\8c¾ }
function Execute: boolean;
implementation
+const
+ IcoGroup = 0;
+ IcoConst = 1;
+ IcoIfGhostGroup = 7;
+
+
{$R *.DFM}
{ TfrmConstEditor }
cbxConstFile.Text := '';
end;
UpdateList;
+ ChangeActionStatus;
ShowModal;
Result := true;
end;
tvwConst.OnChanging := nil;
tvwConst.Items.Delete(Node);
tvwConst.OnChanging := tvwConstChanging;
-end;
-
-procedure TfrmConstEditor.actNewGroupExecute(Sender: TObject);
-begin
- //
+ ChangeActionStatus;
end;
procedure TfrmConstEditor.actMoveUpExecute(Sender: TObject);
var Node, DestNode: TTreeNode;
begin
Node := tvwConst.Selected;
+ if Node = nil then
+ Exit;
+ FTargetConstFile.MoveUp(integer(Node.Data));
if Node.getPrevSibling <> nil then begin
DestNode := Node.getPrevSibling;
Node.MoveTo(DestNode, naInsert);
var Node, DestNode, NextNode: TTreeNode;
begin
Node := tvwConst.Selected;
+ if Node = nil then
+ Exit;
+ FTargetConstFile.MoveDown(integer(Node.Data));
if Node.getNextSibling <> nil then begin
NextNode := Node.getNextSibling;
NextNode.MoveTo(Node, naInsert);
MenuData: TScriptConstMenu;
ID: integer;
begin
- if Node = nil then begin
- pageConstText.Enabled := false;
- end else begin
+ ChangeActionStatus;
+ if Node <> nil then
+ begin
pageConstText.Enabled := true;
ID := integer(Node.Data); // \96{\93\96\82Í\82â\82è\82½\82\82È\82¢\83L\83\83\83X\83g
if Node.Level = 0 then begin
end;
procedure TfrmConstEditor.FormCreate(Sender: TObject);
-var c: char;
- i: integer;
begin
if Application.Terminated then Exit;
//\83\81\83j\83\85\81[\8dì\90¬
- for c := 'A' to 'Z' do begin
- cbxConstShortCut.Items.Add('Ctrl+' + c);
- end;
- for c := 'A' to 'Z' do begin
- cbxConstShortCut.Items.Add('Shift+Ctrl+' + c);
- end;
- for c := 'A' to 'Z' do begin
- cbxConstShortCut.Items.Add('Alt+Ctrl+' + c);
- end;
- for i := 1 to 12 do begin
- cbxConstShortCut.Items.Add('F' + IntToStr(i));
- end;
- for i := 1 to 12 do begin
- cbxConstShortCut.Items.Add('Shift+F' + IntToStr(i));
- end;
+ BuildShortCutList(cbxConstShortCut.Items);
tvwConst.DoubleBuffered := true;
end;
procedure TfrmConstEditor.PopUpMenuPopup(Sender: TObject);
begin
- tvwConst.Selected.Selected := true;
+ ChangeActionStatus;
+ // \88È\89º\82Í\89E\83N\83\8a\83b\83N\8e\9e\82É\83G\83\89\81[\82ð\8bN\82±\82³\82È\82¢\82½\82ß\82Ì
+ // \83g\83\8a\83b\83N\93I\82È\83R\81[\83h
+ if tvwConst.Selected <> nil then
+ tvwConst.Selected.Selected := true;
end;
procedure TfrmConstEditor.btnCloseClick(Sender: TObject);
procedure TfrmConstEditor.UpdateList;
var i, j: integer;
- SelOld, MenuNode, ConstNode: TTreeNode;
+ MenuNode, ConstNode: TTreeNode;
begin
tvwConst.OnChanging := nil;
- SelOld := tvwConst.Selected;
tvwConst.Items.BeginUpdate;
for i := tvwConst.Items.Count-1 downto 0 do begin
tvwConst.Items[i].Delete;
MenuNode := nil;
for i := 0 to FTargetConstFile.Count-1 do begin
MenuNode := tvwConst.Items.Add(MenuNode, FTargetConstFile[i].Caption);
- MenuNode.ImageIndex := 0;
- MenuNode.SelectedIndex := 0;
+ if FTargetConstFile[i].IfGhost <> '' then begin
+ MenuNode.ImageIndex := IcoIfGhostGroup;
+ MenuNode.SelectedIndex := IcoIfGhostGroup;
+ end else begin
+ MenuNode.ImageIndex := IcoGroup;
+ MenuNode.SelectedIndex := IcoGroup;
+ end;
MenuNode.Data := Pointer(FTargetConstFile[i].ID);
for j := 0 to FTargetConstFile[i].Count-1 do begin
ConstNode := tvwConst.Items.AddChild(MenuNode, FTargetConstFile[i][j].Caption);
- ConstNode.ImageIndex := 1;
- ConstNode.SelectedIndex := 1;
+ ConstNode.ImageIndex := IcoConst;
+ ConstNode.SelectedIndex := IcoConst;
ConstNode.Data := Pointer(FTargetConstFile[i][j].ID);
end;
+ MenuNode.Expand(false);
end;
end;
tvwConst.Items.EndUpdate;
if CanUpdate then begin
ConstData.Caption := edtConstCaption.Text;
ConstData.ConstText := edtConstScript.Text;
+ try
+ ConstData.ShortCut := TextToShortCut(cbxConstShortCut.Text);
+ except
+ ConstData.ShortCut := 0;
+ end;
GetNodeByID(FTargetItemID).Text := ConstData.Caption;
end;
end else begin
if CanUpdate then begin
MenuData.Caption := edtMenuCaption.Text;
MenuData.IfGhost := edtMenuIfGhost.Text;
- GetNodeByID(FTargetItemID).Text := MenuData.Caption;
+ with GetNodeByID(FTargetItemID) do begin
+ Text := MenuData.Caption;
+ if MenuData.IfGhost <> '' then begin
+ ImageIndex := IcoIfGhostGroup;
+ SelectedIndex := IcoIfGhostGroup;
+ end else begin
+ ImageIndex := IcoGroup;
+ SelectedIndex := IcoGroup;
+ end;
+ end;
end;
end;
end;
-procedure TfrmConstEditor.Button1Click(Sender: TObject);
-begin
- UpdateList;
-end;
-
function TfrmConstEditor.GetNodeByID(ID: integer): TTreeNode;
var i: integer;
begin
procedure TfrmConstEditor.cbxConstFileChange(Sender: TObject);
begin
FTargetConstFile := ScriptConstList[cbxConstFile.ItemIndex];
+ ChangeActionStatus;
UpdateList;
end;
+procedure TfrmConstEditor.actNewGroupExecute(Sender: TObject);
+var MenuData: TScriptConstMenu;
+ Node: TTreeNode;
+begin
+ MenuData := FTargetConstFile.AddMenu;
+ Node := tvwConst.Items.Add(nil, MenuData.Caption);
+ Node.Data := Pointer(MenuData.ID);
+ Node.Selected := true;
+ edtMenuCaption.SetFocus;
+ edtMenuCaption.SelectAll;
+end;
+
+procedure TfrmConstEditor.actNewConstExecute(Sender: TObject);
+var ConstData: TScriptConst;
+ MenuData: TScriptConstMenu;
+ MenuNode, NewNode: TTreeNode;
+ ID: integer;
+begin
+ if tvwConst.Selected = nil then
+ begin
+ ShowMessage('\83O\83\8b\81[\83v\82ð\8dì\90¬\81E\91I\91ð\82µ\82Ä\82\82¾\82³\82¢');
+ Exit;
+ end;
+ if tvwConst.Selected.Level = 0 then
+ MenuNode := tvwConst.Selected
+ else
+ MenuNode := tvwConst.Selected.Parent;
+ ID := integer(MenuNode.Data);
+ MenuData := FTargetConstFile.GetMenuByID(ID);
+ ConstData := MenuData.AddConst;
+ NewNode := tvwConst.Items.AddChild(MenuNode, ConstData.Caption);
+ NewNode.ImageIndex := 1;
+ NewNode.SelectedIndex := 1;
+ NewNode.Data := Pointer(ConstData.ID);
+ NewNode.Selected := true;
+ edtConstCaption.SetFocus;
+ edtConstCaption.SelectAll;
+end;
+
+procedure TfrmConstEditor.edtExit(Sender: TObject);
+var dummy: boolean;
+begin
+ tvwConstChanging(self, nil, dummy);
+end;
+
+procedure TfrmConstEditor.ChangeActionStatus;
+var
+ Selected: TTreeNode;
+begin
+ // \8fó\91Ô\82É\89\9e\82¶\82Ä\83\81\83j\83\85\81[\93\99\82Ì\97L\8cø\81E\96³\8cø\82ð\90Ø\91Ö\82¦\82é
+ Selected := tvwConst.Selected;
+ pageConstText.Enabled := Selected <> nil;
+ actMoveDown.Enabled := Selected <> nil;
+ actNewConst.Enabled := Selected <> nil;
+ actDelete.Enabled := Selected <> nil;
+ actMoveUp.Enabled := Selected <> nil;
+end;
+
end.