我随便想了一下:
 if a=b then
   if b=c then
     if c=d then
       if d=e then
         if e=f then
              ....
            result:=相等。

解决方案 »

  1.   

    将他们加入string(同时转换成字符串)
    然后用find来看相同的有几个,
    这样总共次数不过你变量的次数
      

  2.   

    一个思路
    将这几个变量存放到一个数组中,然后对处理数组:
    aData: array[a..h] of TSomeType; //存放数据
    for i := low( aData ) to high( aData ) do
      for j := low( aData ) to high( aData ) do
        if ( i <> j ) then
          if aData[i] = aData[j] then
            DoOnEqual( i, j );  
      

  3.   

    补充:
        这个做法有点不好,就是同一对数据相等的话,会触发两次 OnEqual 事件;
        则还需要有个能够存放两个变量是否已经相等过了的地方。
        推荐用 TStringlist, 将 IntToStr(i) + ':'+ IntToStr(j) 存进去,
        每次触发 OnEqual 事件的时候,去检查一下,是否有
        IntToStr(i) + ':'+ IntToStr(j) 或者 IntToStr(j) + ':'+ IntToStr(i) 的字符串
        存在,若不存在,则是第一次相等;
      

  4.   

    aData: array[a..h] of TSomeType; //存放数据
    for i := low( aData ) to high( aData ) do
      for j := i+1 to high( aData ) do
        if aData[i] = aData[j] then
          DoOnEqual( i, j );  
      

  5.   

    SoftWare1999(Programmer),你改的好!
      

  6.   


    还可以用集合的方法:type  TMySet=Set of 0..255;var  i:integer;
      MySet:TMySet;
      MyArray:array[1..10] of 0..255;
    //MainBodybegin
      //Result:=False;
      MySet:=[];
      for i:=1 to 10 do
      begin
        if(MyArray[i] in MySet) then
        begin
          //Result:=True;
          ShowMessage('Equal Exist: '+IntToStr(MyArray[i])+'!');
          Exit;
        end else MySet:=MySet+[MyArray[i]];
      end;
    end;