procedure TFormControl.SetInputStatus(Status: boolean);  
var
  i: integer; 
begin
  for i := 0 to FManagerAct.ActionCount - 1 do
  begin
    if FManagerAct.Actions[i].Name = 'Act_New' then TAction(FManagerAct.Actions[i]).Enabled := not Status;
    if FManagerAct.Actions[i].Name = 'Act_del' then TAction(FManagerAct.Actions[i]).Enabled := not Status;
    if FManagerAct.Actions[i].Name = 'Act_Modify' then TAction(FManagerAct.Actions[i]).Enabled := not Status;
    if FManagerAct.Actions[i].Name = 'Act_Save' then TAction(FManagerAct.Actions[i]).Enabled := Status;
    if FManagerAct.Actions[i].Name = 'Act_Cancel' then TAction(FManagerAct.Actions[i]).Enabled := Status;
  end;
给我说说他们要实现一个什么功能,FManagerAct.Actions[i].Name = 'Act_New' 的具体意思又是什么

解决方案 »

  1.   

    这是设置操作的状态,是否允许进行某些操作,
    你指的这一句是判断那个Actions[i]是否为新增操作,这是从字面是理解,从语句上说是指Action[i]的名称是否为Act_New,
    其它的估计是删除、修改、保存、和取消
    如果估计不错的话,他应该是操作数据了,不过没有必要这么做的。Action有个OnUpdate属性,在那可以写些代码来控制,而且只是一句话的问题,
    比如if FManagerAct.Actions[i].Name = 'Act_New' then TAction(FManagerAct.Actions[i]).Enabled := not Status;
    只要在那写上(Sender As TAction).enable := not Status;就好了