亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qiplottable.pas

?? Iocomp Ultra Pack v3.0.2 Sources.For.Delphi 數據顯示編程插件,可用于工業控制
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
function TiPlotTable.GetColumn(Index: Integer): TiPlotTableColumn;
begin
  Result := FColumnList.Objects[Index] as TiPlotTableColumn;
end;
//****************************************************************************************************************************************************
function TiPlotTable.GetColumnCount: Integer;
begin
  Result := FColumnList.Count;
end;
//****************************************************************************************************************************************************
function TiPlotTable.AddColumn(Title: String): Integer;
var
  iPlotTableColumnObject : TiPlotTableColumn;
begin
  iPlotTableColumnObject                      := TiPlotTableColumn.Create;
  iPlotTableColumnObject.Visible              := True;
  iPlotTableColumnObject.AutoSize             := True;
  iPlotTableColumnObject.Title                := Title;
  iPlotTableColumnObject.TitleAlignment       := iahCenter;
  iPlotTableColumnObject.TitleAlignmentMargin := 1;
  iPlotTableColumnObject.TitleFontColor       := ColumnTitlesFont.Color;
  iPlotTableColumnObject.DataAlignment        := iahCenter;
  iPlotTableColumnObject.DataAlignmentMargin  := 1;
  iPlotTableColumnObject.DataFontColor        := DataFont.Color;
  iPlotTableColumnObject.Width                := 10;
  Result := FColumnList.AddObject('', iPlotTableColumnObject);
end;
//****************************************************************************************************************************************************
procedure TiPlotTable.DeleteColumn(Index: Integer);
begin
  FColumnList.Objects[Index].Free;
  FColumnList.Delete(Index);
end;
//****************************************************************************************************************************************************
procedure TiPlotTable.RemoveAllColumns;
begin
  while FColumnList.Count <> 0 do
    DeleteColumn(0);
end;
//****************************************************************************************************************************************************
procedure TiPlotTable.CalcRects(Canvas: TCanvas);
var
  Col                : Integer;
  Row                : Integer;
  ACharWidth         : Integer;
  ACharHeight        : Integer;
  MarginTopPixels    : Integer;
  MarginBottomPixels : Integer;
  MarginLeftPixels   : Integer;
  MarginRightPixels  : Integer;
  NewMax             : Integer;
  AText              : String;
  ColSpacingPixels   : Integer;
  RowSpacingPixels   : Integer;
  FirstRowCenterY    : Integer;
  LastRowCenterY     : Integer;
  ActualRows         : Integer;
begin
  if (RowCount = 0) or (ColumnCount = 0) then
    begin
      FRequiredHeight := 0;
      FRequiredWidth  := 0;
      Exit;
    end;

  with Canvas, DrawRect do
    begin
      Font.Assign(FColumnTitlesFont);

      ACharWidth         := TextWidth ('0');
      ACharHeight        := TextHeight('0');

      MarginTopPixels    := Round(FMarginTop   *ACharHeight);
      MarginBottomPixels := Round(FMarginBottom*ACharHeight);
      MarginLeftPixels   := Round(FMarginLeft  *ACharWidth);
      MarginRightPixels  := Round(FMarginRight *ACharWidth);

      FGridRect.Left   := Left  + MarginLeftPixels;
      FGridRect.Right  := Right - MarginRightPixels;
      FGridRect.Top    := Top   + MarginTopPixels;
      FGridRect.Bottom := Bottom - MarginBottomPixels;

      if FColumnTitlesVisible then FTitleRect := Rect(FGridRect.Left, FGridRect.Top, FGridRect.Right, FGridRect.Top + ACharHeight)
      else                         FTitleRect := Rect(FGridRect.Left, FGridRect.Top, FGridRect.Right, FGridRect.Top);

      Font.Assign(FDataFont);
      ACharWidth  := TextWidth ('0');
      ACharHeight := TextHeight('0');

      RowSpacingPixels := Round(ACharHeight*FRowSpacing);
      FRowHeight       := RowSpacingPixels + ACharHeight;

      FRequiredHeight := MarginTopPixels  + MarginBottomPixels + FTitleRect.Bottom - FTitleRect.Top;

      if (FRowsMax <> 0) and (RowCount > FRowsMax) then
        begin
          ActualRows := FRowsMax;
          FGridRect.Bottom := FTitleRect.Bottom + (RowsMax)*FRowHeight;
          FRequiredHeight  := FRequiredHeight + (RowsMax)*FRowHeight;
        end
      else
        begin
          ActualRows := RowCount;
          FGridRect.Bottom := FTitleRect.Bottom + (RowCount)*FRowHeight;
          FRequiredHeight  := FRequiredHeight + (RowCount)*FRowHeight;
        end;

      FRequiredWidth  := MarginLeftPixels + MarginRightPixels;

      for Col := 0 to ColumnCount-1 do
        begin
          if not Column[Col].Visible then Continue;
          if Column[Col].AutoSize then
            begin
              NewMax := 0;
              Font.Assign(FColumnTitlesFont);
              ACharWidth  := TextWidth ('0');
              ColSpacingPixels := Round(ACharWidth*FColumnSpacing);
              if (TextWidth(Column[Col].Title) + ColSpacingPixels + ACharWidth) > NewMax then NewMax := TextWidth(Column[Col].Title) + ColSpacingPixels + ACharWidth;

              Font.Assign(FDataFont);
              ACharWidth  := TextWidth ('0');
              ColSpacingPixels := Round(ACharWidth*FColumnSpacing);
              for Row := 0 to FRowDataList.Count-1 do
                begin
                  AText := Data[Col, Row];
                  if (TextWidth(AText) + ColSpacingPixels + ACharWidth) > NewMax then NewMax := TextWidth(AText) + ColSpacingPixels + ACharWidth;
                end;
              Column[Col].WidthPixels := NewMax;
            end
          else
            begin
              Column[Col].WidthPixels := Round(ACharWidth * Column[Col].Width);
            end;

          FRequiredWidth := FRequiredWidth + Column[Col].WidthPixels;
        end;

      FGridRect.Right := FGridRect.Left + FRequiredWidth - MarginRightPixels - MarginLeftPixels;
      
      if FGridRect.Bottom > (Bottom - MarginBottomPixels) then
        begin
          ActualRows       := (Bottom - MarginBottomPixels - FTitleRect.Bottom) div FRowHeight;

          FGridRect.Bottom := FTitleRect.Bottom + ActualRows * FRowHeight;
        end;

      if RowCount > ActualRows then
        begin
          FirstRowCenterY := FTitleRect.Bottom + FRowHeight div 2;
          LastRowCenterY  := FTitleRect.Bottom + ActualRows * FRowHeight - FRowHeight div 2;

          FUpButton.DrawRect   := Rect(FGridRect.Right + 5, FirstRowCenterY - 8, FGridRect.Right + 5 + 17, FirstRowCenterY + 9);
          FDownButton.DrawRect := Rect(FGridRect.Right + 5, LastRowCenterY  - 8, FGridRect.Right + 5 + 17, LastRowCenterY  + 9);

          FUpButton.Visible   := True;
          FDownButton.Visible := True;

          FRequiredWidth  := FRequiredWidth + FUpButton.Width + 5;

          FItemViewStopIndex  := FItemViewStartIndex + ActualRows -1;

          if FItemViewStopIndex > (RowCount-1) then
            begin
              FItemViewStopIndex  := RowCount-1;
              FItemViewStartIndex := FItemViewStopIndex - (ActualRows-1);
            end;

          if FItemViewStartIndex < 0 then
            begin
              FItemViewStartIndex := 0;
              FItemViewStopIndex  := ActualRows-1;
            end;
        end
      else
        begin
          FUpButton.Visible   := False;
          FDownButton.Visible := False;

          FItemViewStartIndex := 0;
          FItemViewStopIndex  := ActualRows-1;
        end;


      FUpButton.Enabled   := FItemViewStartIndex <> 0;
      FDownButton.Enabled := FItemViewStopIndex <> (RowCount -1);
    end;
end;
//****************************************************************************************************************************************************
procedure TiPlotTable.Draw(const Canvas: TCanvas; const BackGroundColor: TColor);
begin
  if not Visible                         then Exit;
  if (RowCount = 0) or (ColumnCount = 0) then Exit;

  CalcRects(Canvas);

  with Canvas, DrawRect do
    begin
      Brush.Style := bsSolid;
      Pen.Style   := psSolid;

      if not FGridBackGroundTransparent then
        begin
          Brush.Color := FGridBackGroundColor;
          FillRect(FGridRect);
        end;

      DrawGrid        (Canvas);
      DrawColumnTitles(Canvas);
      DrawData        (Canvas);

      Font.Color := $FFEEDD; //Borland Bug Hack.
      Font.Assign(FDataFont);
      Brush.Style := bsClear;
    end;

  DrawUpButton  (Canvas);
  DrawDownButton(Canvas);

  if UserSelected then
    begin
      Canvas.Brush.Style := bsClear;
      Canvas.Font.Color := clWhite;
      if Horizontal then iDrawFocusRect2(Canvas, Rect(DrawRect.Left,   DrawRect.Top+2, DrawRect.Right,   DrawRect.Bottom-2))
        else             iDrawFocusRect2(Canvas, Rect(DrawRect.Left, DrawRect.Top,   DrawRect.Right, DrawRect.Bottom  ))
    end;
end;
//****************************************************************************************************************************************************
procedure TiPlotTable.DrawGrid(const Canvas: TCanvas);
var
  x          : Integer;
  CurrentPos : Integer;
begin
  if not FGridLinesShow then Exit;

  with Canvas do
    begin
      Pen.Style := psSolid;
      Pen.Width := 1;
      Pen.Color := FGridLinesColor;

      //Vertical Lines
      CurrentPos := FGridRect.Left;
      for x := 0 to ColumnCount-1 do
        begin
          if not Column[x].Visible then Continue;
          Polyline([Point(CurrentPos, FGridRect.Top), Point(CurrentPos, FGridRect.Bottom)]);
          CurrentPos := CurrentPos + Column[x].WidthPixels;
        end;

      Polyline([Point(CurrentPos, FGridRect.Top), Point(CurrentPos, FGridRect.Bottom)]);

      //Horizontal Lines
      CurrentPos := FGridRect.Top;
      Polyline([Point(FGridRect.Left, CurrentPos), Point(FGridRect.Right+1, CurrentPos)]);

      CurrentPos := FTitleRect.Bottom;
      for x := FItemViewStartIndex to FItemViewStopIndex do
        begin
          Polyline([Point(FGridRect.Left, CurrentPos), Point(FGridRect.Right+1, CurrentPos)]);
          CurrentPos := CurrentPos + FRowHeight;
        end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
三级久久三级久久久| 大胆亚洲人体视频| 一区二区三区加勒比av| 久久色视频免费观看| 日韩视频免费观看高清完整版在线观看 | 99精品偷自拍| 懂色av一区二区三区免费观看 | 在线观看一区二区视频| 成人激情免费电影网址| 国产激情一区二区三区| 成人白浆超碰人人人人| 国产成人啪免费观看软件| 国内一区二区视频| 国产成人aaa| 国产成a人无v码亚洲福利| 国产一区在线精品| 麻豆国产91在线播放| 青青草原综合久久大伊人精品优势| 亚洲一区二区三区不卡国产欧美| 亚洲欧美视频在线观看视频| 中文字幕视频一区| 综合久久一区二区三区| 欧美日韩国产高清一区二区 | 中文字幕在线不卡一区| 18成人在线视频| 《视频一区视频二区| 亚洲精品videosex极品| 午夜国产精品影院在线观看| 丝袜美腿高跟呻吟高潮一区| 日韩不卡一区二区| 午夜亚洲福利老司机| 老色鬼精品视频在线观看播放| 久久激五月天综合精品| 久久97超碰色| 99久久久国产精品| 在线日韩一区二区| 91麻豆精品国产91久久久使用方法| 精品国产sm最大网站免费看| 久久久亚洲高清| 中文子幕无线码一区tr| 亚洲影院免费观看| 日本视频中文字幕一区二区三区| 久久精品72免费观看| 91小视频免费看| 欧美日本免费一区二区三区| 精品国偷自产国产一区| 中文字幕中文字幕一区二区| 尤物视频一区二区| 日韩电影在线观看一区| 高清不卡在线观看| 欧洲精品在线观看| 日韩免费在线观看| 亚洲日本va在线观看| 亚洲高清免费视频| 国产在线视频不卡二| 色吊一区二区三区 | 亚洲精品网站在线观看| 日本亚洲最大的色成网站www| 国产一区二区精品久久99| 成人精品视频一区二区三区尤物| 91在线高清观看| 日韩精品一区在线| 亚洲欧美激情一区二区| 日本亚洲一区二区| 色婷婷久久99综合精品jk白丝| 日韩一区二区三区视频| 国产精品久久久久影院亚瑟| 手机精品视频在线观看| 成人动漫精品一区二区| 69久久99精品久久久久婷婷| 亚洲视频免费在线观看| 精品午夜久久福利影院| 99在线精品一区二区三区| 日韩欧美www| 亚洲影院在线观看| 国产盗摄一区二区| 日韩女优毛片在线| 亚洲一区二区三区免费视频| 国产成人免费视频| 日韩三级在线免费观看| 国产精品九色蝌蚪自拍| 免费成人美女在线观看| 91女神在线视频| 久久综合九色综合欧美亚洲| 麻豆精品视频在线| 在线免费不卡视频| 国产精品乱人伦中文| 国产精品中文字幕欧美| 欧美精品免费视频| 亚洲免费视频中文字幕| 不卡的av中国片| 国产亚洲短视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 91视视频在线观看入口直接观看www | 丝袜亚洲另类丝袜在线| 91免费版在线| 亚洲视频狠狠干| 成人av集中营| 国产欧美一区二区精品秋霞影院 | 亚洲午夜私人影院| 成人做爰69片免费看网站| 日韩欧美高清一区| 天天色综合成人网| 欧美中文字幕一区二区三区亚洲| 国产色综合一区| 卡一卡二国产精品| 欧美一区二区免费观在线| 亚洲电影视频在线| 97久久久精品综合88久久| 国产欧美日韩亚州综合 | 99精品欧美一区二区蜜桃免费| 国产亚洲短视频| 国产精品亚洲一区二区三区妖精 | 4hu四虎永久在线影院成人| 亚洲制服丝袜av| 欧洲亚洲国产日韩| 一区二区视频免费在线观看| 国产成人午夜精品5599| 欧美一区二区三区爱爱| 麻豆成人久久精品二区三区小说| 欧美精选在线播放| 亚洲资源在线观看| 欧美一级高清大全免费观看| 欧美在线不卡视频| 亚洲精品国久久99热| 在线观看亚洲一区| 亚洲人成7777| 色拍拍在线精品视频8848| 亚洲愉拍自拍另类高清精品| 91麻豆国产精品久久| 一区二区三区四区亚洲| 一本一本大道香蕉久在线精品| 亚洲伦在线观看| 92精品国产成人观看免费| 中文字幕精品三区| jizzjizzjizz欧美| 一区二区三区四区高清精品免费观看 | 欧美大片一区二区| 国产成人在线观看免费网站| 国产精品丝袜黑色高跟| 成人av免费网站| 一区二区在线观看免费视频播放 | 日本久久一区二区| 婷婷开心激情综合| 精品久久一二三区| 成人激情图片网| 亚洲一区二区在线免费观看视频 | 91福利在线播放| 日韩av不卡在线观看| 2欧美一区二区三区在线观看视频| 成人精品视频网站| 亚洲精品第1页| 日韩免费电影一区| 91免费观看国产| 蜜桃视频一区二区三区| 久久精品在这里| 国产精品一区二区久久精品爱涩| 国产精品天美传媒| 99re成人精品视频| 亚洲第一搞黄网站| 国产女同互慰高潮91漫画| 欧美人妇做爰xxxⅹ性高电影| 激情成人综合网| 亚洲精品日日夜夜| 久久夜色精品国产欧美乱极品| 欧美午夜精品一区二区三区| 国内精品国产成人| 亚洲精品五月天| 久久亚洲一区二区三区明星换脸| 国产麻豆精品95视频| 日本欧美一区二区三区| 国产欧美va欧美不卡在线| 欧美日韩亚洲综合在线| 国产69精品久久久久毛片| 一区二区三区日韩精品视频| 国产亚洲欧美日韩日本| 欧美日韩日日骚| 岛国av在线一区| 欧美aaa在线| 一区二区三区四区精品在线视频 | 国产午夜亚洲精品理论片色戒| 91精品国产综合久久久久久| va亚洲va日韩不卡在线观看| 久久精品国产色蜜蜜麻豆| 亚洲一区二区中文在线| 日韩毛片精品高清免费| 国产精品伦理一区二区| 精品国产一区二区三区四区四 | 99国产精品久久久久久久久久久| 日日摸夜夜添夜夜添国产精品| 国产日产欧美一区| ww亚洲ww在线观看国产| 欧美日韩国产精品自在自线| 99久久久无码国产精品| 黄页视频在线91| 美腿丝袜一区二区三区| 亚洲欧美日本在线| 国产精品久久一级| 国产精品日日摸夜夜摸av| 精品欧美一区二区久久|