procedure TForm1.TreeView1Click(Sender: TObject);
begin
  if TreeView1.Selected <> nil then
  begin
    if TreeView1.Selected.Text = '停止' then
      begin
        TreeView1.Items.Item[0].Text:='开始';
        TreeView1.Items[0].ImageIndex:=1;
        TreeView1.items[0].SelectedIndex:=1;
      end;
    if TreeView1.Selected.Text = '开始' then
      begin
        TreeView1.Items.Item[0].Text:='停止';
        TreeView1.Items[0].ImageIndex:=0;
        TreeView1.items[0].SelectedIndex:=0;
      end;
   end;
end;为什么这样什么反应也没有?如果不要第二个if语句第一个if的效果就可以出现请问,我想实现代码里要求的效果该如何修改 ?谢谢

解决方案 »

  1.   

    procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if TreeView1.Selected <> nil then
      begin
        if TreeView1.Selected.Text = '停止' then
          begin
            TreeView1.Items.Item[0].Text:='开始';
            TreeView1.Items[0].ImageIndex:=1;
            TreeView1.items[0].SelectedIndex:=1;
          end
        else //**if TreeView1.Selected.Text = '开始' then//你的程序相当与双置开关,第二个判断不要,直接else
          begin
            TreeView1.Items.Item[0].Text:='停止';
            TreeView1.Items[0].ImageIndex:=0;
            TreeView1.items[0].SelectedIndex:=0;
          end;
       end;
    end;
      

  2.   

    也可以如下试试:
    procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if TreeView1.Selected <> nil then
      begin
        if TreeView1.Selected.Text = '停止' then
          begin
            TreeView1.Items.Item[0].Text:='开始';//
            TreeView1.Items[0].ImageIndex:=1;
            TreeView1.items[0].SelectedIndex:=1;
            Exit;//跳出当前过程,不然下面“TreeView1.Selected.Text = '开始'”可能又为真
          end;
        if TreeView1.Selected.Text = '开始' then
          begin
            TreeView1.Items.Item[0].Text:='停止';
            TreeView1.Items[0].ImageIndex:=0;
            TreeView1.items[0].SelectedIndex:=0;
          end;
       end;
    end;