打印本文 打印本文 关闭窗口 关闭窗口
Delphi组件与属性编辑器
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4753  更新时间:2009/4/23 18:38:00  文章录入:mintao  责任编辑:mintao
p;  begin
      FormUpdate;
      if assigned(FDlgForm) then DoShow;
    end;

    function TdsWaitDialogEx.setLableHeight(sCaption:string):integer;
    var i,iMax:integer;
    begin
      result:=0;
      if FaviPosition = aviLeft then iMax:=48 else iMax:=56;
      i:=length(sCaption)-iMax; //56;  // > 1 行    48
      if i<=0 then exit;
      if (i mod 56)>0 then
        result:=(i div 56 +1) * 13
      else
        result:=(i div 56) * 13;
    end;

    procedure TdsWaitDialogEx.DrawForm;
    var H,aH:integer;
    begin
      if not assigned(FDlgForm) then exit;
      case FaviPosition of
      aviTop:
        begin
          FDlgForm.Label1.Height:=13+setLableHeight(FDlgForm.Label1.Caption);
          FDlgForm.Label2.Height:=13+setLableHeight(FDlgForm.Label2.Caption);                     
          FDlgForm.Width := 356 ;       FDlgForm.Animate1.Top := 3;    
          FDlgForm.Gauge1.Left  :=14;   FDlgForm.Gauge1.Width :=320;
          FDlgForm.Label1.Left  := 9;   FDlgForm.Label1.Width :=340;
          FDlgForm.Label2.Left  := 9;   FDlgForm.Label2.Width :=340;
          FDlgForm.Animate1.Left:=(FDlgForm.Width div 2)-(FDlgForm.Animate1.Width div 2); // Animate1 居中
          FDlgForm.Label1.Top   := 3 + FDlgForm.Animate1.Height + 8 ;
          FDlgForm.Label2.Top   := FDlgForm.Label1.Top + FDlgForm.Label1.Height + 4;
          FDlgForm.Gauge1.Top   := FDlgForm.Label2.Top + FDlgForm.Label2.Height + 6;
          FDlgForm.Height:= 27 + 3 + FDlgForm.Animate1.Height
                          + 8 + FDlgForm.Label1.Height
                          + 4 + FDlgForm.Label2.Height
                          + 6 + FDlgForm.Gauge1.Height + 6;
          if not FshowAVI then
          begin
            FDlgForm.Label1.Top := FDlgForm.Label1.Top - FDlgForm.Animate1.Height ;
            FDlgForm.Label2.Top := FDlgForm.Label2.Top - FDlgForm.Animate1.Height ;
            FDlgForm.Gauge1.Top := FDlgForm.Gauge1.Top - FDlgForm.Animate1.Height;
            FDlgForm.Height := FDlgForm.Height -  FDlgForm.Animate1.Height;
          end;
          if not FShowMessage1 then
          begin
            FDlgForm.Label2.Top := FDlgForm.Label2.Top - FDlgForm.Label1.Height - 4;
            FDlgForm.Gauge1.Top := FDlgForm.Gauge1.Top - FDlgForm.Label1.Height - 4;
            FDlgForm.Height := FDlgForm.Height - FDlgForm.Label1.Height - 4;
          end;
          if not FShowMessage2 then
          begin
            FDlgForm.Gauge1.Top := FDlgForm.Gauge1.Top - FDlgForm.Label2.Height - 4;
            FDlgForm.Height := FDlgForm.Height - FDlgForm.Label2.Height - 4;
          end;
          if not FShowProgress then
          begin
            FDlgForm.Height := FDlgForm.Height -  FDlgForm.Gauge1.Height-6;
          end;
        end;

      aviLeft:
        begin
          FDlgForm.Label1.Height:=13+setLableHeight(FDlgForm.Label1.Caption);
          FDlgForm.Label2.Height:=13+setLableHeight(FDlgForm.Label2.Caption);
          FDlgForm.Label1.Width :=288; FDlgForm.Label2.Width :=288;
          FDlgForm.Label1.Left  := 12+FDlgForm.Animate1.Width;
          FDlgForm.Label2.Left  := FDlgForm.Label1.Left;
          FDlgForm.Label1.Top   :=11;
          FDlgForm.Label2.Top   :=11+FDlgForm.Label1.Height+4;
          FDlgForm.Gauge1.Left  :=16;
          FDlgForm.Animate1.Left :=6;
          FDlgForm.Animate1.Top :=11 ;
          FDlgForm.Width := FDlgForm.Animate1.Width+306;

          aH:=FDlgForm.Animate1.Height;
          if not FshowAVI then
          begin
            FDlgForm.Gauge1.Width :=291;   FDlgForm.Width :=329;
            FDlgForm.Label1.Left  := 16;
            FDlgForm.Label2.Left  := 16;
            aH:=0;
          end;
          if not FShowProgress then
          begin
            FDlgForm.Height := FDlgForm.Height-26;
          end;
          H:=FDlgForm.Label1.Height+4+FDlgForm.Label1.Height;
          if not FShowMessage1 then
          begin
            H:=H-FDlgForm.Label1.Height;
            FDlgForm.Label2.Top := 11 ;
          end;
          if not FShowMessage2 then
          begin
            H:=H-FDlgForm.Label2.Height;
          end;

          if H<aH then H:=aH;
          FDlgForm.Gauge1.Top   :=11+H+12;
          FDlgForm.Gauge1.Width :=FDlgForm.Width-33;
          FDlgForm.Height:=FDlgForm.Gauge1.Top+53;
        end;

      aviBottom:
        begin
          FDlgForm.Label1.Height:=13+setLableHeight(FDlgForm.Label1.Caption);
          FDlgForm.Label2.Height:=13+setLableHeight(FDlgForm.Label2.Caption);   
          FDlgForm.Width := 356 ;   FDlgForm.Label1.Top   := 8 ;
          FDlgForm.Label2.Top   := FDlgForm.Label1.Top + FDlgForm.Label1.Height + 4;
          FDlgForm.A

上一页  [1] [2] [3] [4] [5] [6]  下一页

打印本文 打印本文 关闭窗口 关闭窗口