16 : begin
      if TEdit(Sender).Text = '' then
      begin
        k := 0;
        if k = 0 then
        begin
          newedt := TEdit.Create(self);
          with newedt do
          begin
            Top := oldedt.Top;
            Left := oldedt.Left;
            Height := 19;
            Width := 13;
            Font.Size := 8;
            Autosize := False;
            Tag := 2;
            parent := Self;
            Show;
            Setfocus;
            oldedt := newedt;
            OnChange := self.EdtCreateChange;
            OnKeyPress := self.EdtCreatePress;
            onkeydown := self.EdtCreateDown;
          end;
          TEdit(Sender).Free;
        end
        以下代码没有起作用(我的思路,当按下“Shift”键 Edit缩小,再按下"Shift" Edit放大(由于无法对Edit本身进行放大缩小,所以才用“Create”的方法:要变小时,创建一个小的,把大的删掉,要变大时,创建一个大的,把小的删掉!)可是还是不行,Else if k = 1 then 以下代码不起作用!)如果有网友能改成对Edit本身进行放大缩小,请帮帮助,也可以指教一下为什么以下代码不起作用!
        else if k = 1 then
        begin
          newedt := TEdit.Create(self);
          with newedt do
          begin
            Top := oldedt.Top;
            Left := oldedt.Left;
            Height := 24;
            Width := 18;
            Font.Size := 11;
            Autosize := False;
            Tag := 2;
            parent := Self;
            Show;
            Setfocus;
            oldedt := newedt;
            OnChange := self.EdtCreateChange;
            OnKeyPress := self.EdtCreatePress;
            onkeydown := self.EdtCreateDown;
          end;
          TEdit(Sender).Free;
        end;
      end;
    end;

解决方案 »

  1.   

    你的k每次都赋值为0,else永远不会执行;把k放到外面去  初始化也不要在这里写TYourForm = Class(TForm)
      ......
      button1: TButton;
      ......
    private
      k: integer;
    end;Procedure TYourForm.Create(Sender: TObject);
    begin
      k := 0;  //k可以放到这里初始化
    end;
      

  2.   

    如果有网友说 在"if k = 0"代码段中加入 K := 1; 在"else if k = 1"代码段中加入 K := 0; ................. 哎, 没用! 而且还有警告 Value assigned to "K" never used所以 还请网友帮我改一下。
      

  3.   

    基本逻辑问题。
    给循环条件赋值还要else,那就只能执行一个条件
    要么在其它地方赋值,要么就更改你的逻辑设计。