for i:=0 to 100 do
        for j:=0 to 100 do
        begin
         if Image1.Canvas.Pixels[i,j]=RGB(100,100,100) then
            begin
            showmessage(IntToStr(i)+','+IntToStr(j));
            end;
         end;
这样一个循环语句,由于RGB值是100,100,100的有很多点,所以会不停的弹提示,我只想要找到第一个就行了,应该怎么写?谢谢!

解决方案 »

  1.   

    for i:=0 to 100 do
      for j:=0 to 100 do
      begin
      if Image1.Canvas.Pixels[i,j]=RGB(100,100,100) then
      begin
      showmessage(IntToStr(i)+','+IntToStr(j));
    exit;  end;
      end;
      

  2.   

    for i:=0 to 100 do
      for j:=0 to 100 do
      begin
      if Image1.Canvas.Pixels[i,j]=RGB(100,100,100) then
      begin
      showmessage(IntToStr(i)+','+IntToStr(j));
    exit;  end;
      end;
      

  3.   

    哎呀,看错题目意思喽
    Break;//退出循环
    exit;//退出过程
      

  4.   

    exit;
    也可以用
    tryfaillyend;
    -------------------------
    try
    exceptend;
      

  5.   

    我表示误人子弟了,按LZ的意思1,2楼才是正解,不过EXIT,ABORT都能让循环停下来。但却都退出了过程
      

  6.   

    case5166
    其实所谓的“退出”
    就是不“执行”下面的代码,“跳出”过程的,我的那里不对了
    难道必须是exit才行的吗
      

  7.   

    var
      i,j: Integer;
    label
      _next;

    begin
    for i:=0 to 100 do
      for j:=0 to 100 do
      begin
      if Image1.Canvas.Pixels[i,j]=RGB(100,100,100) then
      begin
      showmessage(IntToStr(i)+','+IntToStr(j));
      goto _next
      end;
      end;_next:
      showmessage('next')
    end;
      

  8.   

    for i:=0 to 100 do
      for j:=0 to 100 do
      begin
        if Image1.Canvas.Pixels[i,j]=RGB(100,100,100) then
        begin
          showmessage(IntToStr(i)+','+IntToStr(j));
          break;
        end;
      end;
      

  9.   

    大哥们,你们真的试过了吗,可以建立一个程序试下,100,100,100的颜色可能不好找,用空白颜色也行,就是255,255,255,不论怎么break,仍然弹个不停,是不是showmessage有优先权?抢在break之前?
      

  10.   

    晕,原来Exit才是正解,可以中止,但不明白为什么break不行,不过问题解决了,先结贴吧。
      

  11.   

    两轮循环,Break 要用两次
    比如这样:
    k:=0;
    for i:=0 to 100 do
     begin
      for j:=0 to 100 do
      begin
      if Image1.Canvas.Pixels[i,j]= RGB(100,100,100) then
        begin
         showmessage(IntToStr(i)+','+IntToStr(j));
         inc(k);
         break;
        end;  end;
        if k>0 then
        break;
      end;
     
      

  12.   

    使用exit注意,后面需要释放内存的地方会被忽略,