procedure TForm1.Button2Click(Sender: TObject);
begin
case (Sender as TToolButton).Index of //这行当我点击工具栏上的按钮时总是报Invalid class typecast 错误
2:begin
showMessage('客户管理');
end;
3:begin
showMessage('日程管理');
end;
4:begin
showMessage('图表分析');
end;
end;
end;
哪位大哥帮帮忙?

解决方案 »

  1.   

    showmessage(Sender.ClassName);
    你就知道为什么了!
    Delphi已经为你准备好了Action了,你为什么不用呢?
      

  2.   

    不对哦,改为TButton会报错,编译不通过,我用的工具栏是ToolBar控件
      

  3.   

    大哥,不好意思,我最近才学delphi
      

  4.   

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      if Sender is TToolButton then begin
    case (Sender as TToolButton).Index of //这行当我点击工具栏上的按钮时总是报Invalid class typecast 错误
    2:begin
    showMessage('客户管理');
    end;
    3:begin
    showMessage('日程管理');
    end;
    4:begin
    showMessage('图表分析');
    end;
    end;
    end;
    end;
    不过最好先用火龙的方法看下你的类吧.
      

  5.   

    你改成TButton当然不通过了,因为TButton根本没有Index 属性
      

  6.   


    procedure TForm1.Button2Click(Sender: TObject);
    begin
    showMessage(Sender.ClassName);//弹出TButton
    case (Sender as TToolButton).Index of //这里如果改为Sender as TButton编译报错。不通过
    2:begin
    showMessage('客户管理');
    end;
    3:begin
    showMessage('日程管理');
    end;
    4:begin
    showMessage('图表分析');
    end;
    end;
    end;
      

  7.   

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      if Sender is TButton then begin
    case (Sender as TButton).tag  of //这行当我点击工具栏上的按钮时总是报Invalid class typecast 错误
    2:begin
    showMessage('客户管理');
    end;
    3:begin
    showMessage('日程管理');
    end;
    4:begin
    showMessage('图表分析');
    end;
    end;
    end;
    end;
    用BUTTON的tag