要达到这个功能,似乎只有重写控件,想应对因得Updown的OnChangingEX和Edit的OnChange消息了

解决方案 »

  1.   

    如果你的代码是
    for i:=1 to 10 do (每次加0.5的话)可以改成
    for i:=1*2 to 10+2 do
    begin
      循环里面的i都要除2
    end;
      

  2.   


    procedure TForm1.UpDown1ChangingEx(Sender: TObject;
      var AllowChange: Boolean; NewValue: Smallint;
      Direction: TUpDownDirection);
    begin
    AllowChange := false;
    //再加上对direction的判断就更完美了
    Edit1.Text := FloatToStr(StrToFloat(edit1.Text) +0.5);
    end;
      

  3.   

    procedure TForm1.UpDown1ChangingEx(Sender: TObject;
      var AllowChange: Boolean; NewValue: Smallint;
      Direction: TUpDownDirection);
    begin
    AllowChange := false;
      if(Direction = updUp) then
      begin
       Edit1.Text := FloatToStr(StrToFloat(Edit1.Text)+0.5)
      end
      else if(Direction = updDown) then
      begin
       Edit1.Text := FloatToStr(StrToFloat(Edit1.Text)-0.5)
      end
    end;Perfect!!!!!!!!!!!!!
      

  4.   

    procedure TForm1.UpDown1ChangingEx(Sender: TObject;
      var AllowChange: Boolean; NewValue: Smallint;
      Direction: TUpDownDirection);
    begin
        AllowChange := false;
      if(Direction = updUp) then
      begin
          Edit1.Text := FloatToStr(StrToFloat(Edit1.Text)+0.5)
      end
      else if(Direction = updDown) then
      begin
          Edit1.Text := FloatToStr(StrToFloat(Edit1.Text)-0.5)
      end
    end;Perfect!!!!!!!!!!!!!