请看下面一段代码procedure TAnalog.CalculateHalfData;
{ 计算半满数据 }
var
  i, j: Integer;
  wave_i: Int64;
  r, f, p: Double;
begin
  if FRange = 0.0 then
    Exit;   
  wave_i := WaveHalfCount * 8192;
  for i := 0 to 8191 do
  begin
    WaveValue[i] := Round(Sin((wave_i * FFrequency / FIFOFrequency + FPhase /
      360) * 2 * PI) * 32767 * FRange / 10) + 32768;
    Inc(wave_i);
  end;
  { 叠加谐波 }
  if Length(Harmonics) <> 0 then
  begin
    for j := 0 to Length(Harmonics) do
    begin
      wave_i := WaveHalfCount * 8192;
      if Harmonics[j].ValueType = vtPercent then
        r := FRange * Harmonics[j].Value
      else if Harmonics[j].ValueType = vtRange then
        r := Harmonics[j].Value
      else
        r := 0; // not gonna be easy
      p := Harmonics[j].Phase;
      f := FFrequency * Harmonics[j].SequenceNumber;
      for i := 0 to 8191 do
      begin
        WaveValue[i] := DataRegion(WaveValue[i] + Round(Sin((wave_i * f /
          FIFOFrequency + p / 360) * 2 * PI) * 32767 * r / 10) + 32768, 0,
          65535);
        Inc(wave_i);
      end;
    end;
  end; 
end;在编一时没有发生任何问题,但是当我向这个类添加新的属性时,当使用Ctrl + Shift + C 进行代码完整时报告了一个奇怪的问题,如下:Cannot complete a class with incomplete methods implementations;并将焦点指向该方法的开头!难道我这个过程没有实现完毕吗?但为什么编译能够通过?

解决方案 »

  1.   

    代码是没有任何问题,我觉得可能是编译器的问题,在自动完成代码时出了问题,但并没有影响程序的编译,我只是觉得这个问题很怪异!另外还有一个问题如下,也觉得很怪!
    我在编译程序时有时候在编译的时候出现一个 Internal Error LA33;
    但是我在重新编译后这个错误便消失了,不知道什么原因!
      

  2.   

    尝试把函数内的东西用简单语句换了,
    如:Showmessage('aa');
    再用 ctrl+shift+c 试试,
    应该函数没问题。
    检查函数定义的前后语句。
      

  3.   

    不是每个Unit都支持ctrl+alt+c的
      

  4.   

    这样的问题我也碰到过,delphi 集成开发环境的问题,你把这么大的一个函数分解成几个小的函数就行了。pass 过去。