用C看得懂吧!Pascal我不会啊.int sign=0;void Button1_Click(...){
 if(sign==0){
  OpenDialog1->Filter="*.EXE|*.exe";
  OpenDialog1->Execute();
  Edit1->Text=OpenDialog->FileName;
  sign++;
 }else{
  OpenDialog1->Filter="*.htm|*.htm;*.html";
  OpenDialog1->Execute();
  Edit2->Text=OpenDialog->FileName;
  sign--;
 }
}OK啦!!!

解决方案 »

  1.   

    加一个标志进行判断就行了嘛!
    比如说:加一个变量:bFirstClickFlag:Boolean;
    或者判断Edit1.Text是否为空,空则打开一个文件路径,否则打开一个网页文件。
    真不知你的意思。
      

  2.   

    你可以定义一个全局变量来作为状态标识,例如iState:procedure TForm1.Button1Click(Sender: TObject);
    begin
      Case iState of
        0:
        begin
          iState:=1;
          //Do something
        end;
        1:
        begin
          iState:=2;
          //Do something
        end;
        2:
        begin
          iState:=0;
          //Do something
        end;
      end;
    end;
      

  3.   

    var
      sign:integer;procedure TForm1.Button1Click(Sender:TObject);
    begin
    if(sign=0) begin
      OpenDialog1.Filter:="*.EXE¦*.exe";
      OpenDialog1.Execute;
      Edit1.Text:=OpenDialog.FileName;
      inc(sign);
    end else begin
      OpenDialog1.Filter:="*.htm¦*.htm;*.html";
      OpenDialog1.Execute;
      Edit2.Text:=OpenDialog.FileName;
      dec(sign);
    end;
    end;
      

  4.   

    可以用software1999的办法,但改用私有变量更清楚:procedure TForm1.Button1Click(Sender:TObject);
    const
      sign:boolean=true;        // 定义一个私有变量
    begin
      if sign begin
        OpenDialog1.Filter:="*.EXE¦*.exe";
        OpenDialog1.Execute;
        Edit1.Text:=OpenDialog.FileName;
      end else begin
        OpenDialog1.Filter:="*.htm¦*.htm;*.html";
        OpenDialog1.Execute;
        Edit2.Text:=OpenDialog.FileName;
      end;
      sign:=not sign;
    end;
      
      

  5.   

    TechnoFantasy(www.applevb.com) 
    你的方法不错啊,呵呵,一个按键可以搞定很多,多谢多谢!!!
    呆会我试完其它兄弟的方法就给分啊!:P