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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? readgridu.~pas

?? 功能強(qiáng)大和發(fā)俏的表格操作 所需第三方控件:TMS Pack 包中的TADVStringGrid控件! 主要用于統(tǒng)計(jì)數(shù)據(jù)和設(shè)計(jì)比較復(fù)雜的表格! 核心部分:合并單元格的幾個(gè)函數(shù)和過程!
?? ~PAS
字號(hào):
unit ReadGridU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, iniFiles, StdCtrls, Buttons, Grids, BaseGrid, AdvGrid, ExtCtrls,
  ComCtrls,ShellAPI;

type
  TReadGridFrm = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    asg: TAdvStringGrid;
    Panel1: TPanel;
    bbtnRed: TBitBtn;
    bbtnSave: TBitBtn;
    BitBtn: TBitBtn;
    Panel2: TPanel;
    Label9: TLabel;
    lblHomePage: TLabel;
    Label11: TLabel;
    lblEmail: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure bbtnRedClick(Sender: TObject);
    procedure asgGetAlignment(Sender: TObject; ARow, ACol: Integer;
      var HAlign: TAlignment; var VAlign: TVAlignment);
    procedure bbtnSaveClick(Sender: TObject);
    procedure BitBtnClick(Sender: TObject);
    procedure asgGetCellColor(Sender: TObject; ARow, ACol: Integer;
      AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
    procedure asgCanEditCell(Sender: TObject; ARow, ACol: Integer;
      var CanEdit: Boolean);
    procedure lblHomePageClick(Sender: TObject);
    procedure lblEmailClick(Sender: TObject);
  private
    { Private declarations }
  public
    Path:String;
    procedure DoReadIniFile(asg:TAdvStringGrid;FileName:String);
    Procedure Merge();  //手工合并
    Procedure MgeRow(advGrid:TAdvStringGrid;iRow:integer);  //合并一行 iRow:行號(hào)
    Procedure MgeCol(advGrid:TAdvStringGrid;iCol:integer);  //合并一列 iCol:列號(hào)
    Procedure MgeAll(advGrid:TAdvStringGrid); //合并所有

    Procedure MgeRows(advGrid:TAdvStringGrid;RowBegin,RowEnd:integer);  //合并多行 RowBegin:開始行號(hào)  RowEnd:結(jié)束行號(hào)
    Procedure MgeCols(advGrid:TAdvStringGrid;ColBegin,ColEnd:integer);  //合并多列 ColBegin:開始列號(hào)  ColEnd:結(jié)束列號(hào)
  end;

var
  ReadGridFrm: TReadGridFrm;

implementation

{$R *.dfm}

procedure TReadGridFrm.DoReadIniFile(asg: TAdvStringGrid; FileName: String);
begin
  asg.LoadFromCSV(Path+FileName);
end;

procedure TReadGridFrm.FormCreate(Sender: TObject);
begin
  Path:=ExtractFilePath(ParamStr(0));
  bbtnRedClick(nil);
end;

procedure TReadGridFrm.bbtnRedClick(Sender: TObject);
begin
  asg.ClearRows(0,asg.RowCount-1);
  DoReadIniFile(asg,'Test.csv');  //
end;

procedure TReadGridFrm.Merge;
begin
  with asg do
  begin
    MergeCells(0,0,5,1);   //受力鋼筋的混凝土保護(hù)層最小厚度(mm)
    MergeCells(2,1,3,1);   //混凝土強(qiáng)度等級(jí)
    
    MergeCells(0,9,5,1);   //注釋開始

    MergeCells(0,1,1,2);  //環(huán)境條件
    MergeCells(1,1,1,2);  //構(gòu)件類別
    MergeCells(0,3,1,3);  //室內(nèi)正常環(huán)境
    MergeCells(0,6,1,3);  //露天或室內(nèi)高濕度環(huán)  境

    RowHeights[9]:=80;
  end;

end;


procedure TReadGridFrm.asgGetAlignment(Sender: TObject; ARow,
  ACol: Integer; var HAlign: TAlignment; var VAlign: TVAlignment);
begin
  if ARow >8 then
  Else
    HAlign:=taCenter;
end;

procedure TReadGridFrm.bbtnSaveClick(Sender: TObject);
begin
  asg.SaveToCSV(Path+'Test.csv');
end;

procedure TReadGridFrm.MgeRow(advGrid: TAdvStringGrid; iRow: integer);

Type
  TMgeOb = ^TMgeRec;
  TMgeRec = Record
    Start:integer;            //開始合并位置  列開始
    SameCount:integer;       //合并行數(shù)
  end;

Var
  i,iPos,iiPos,iCol,iiCol:integer;
  aList:TList;
  aOb:TMgeOb;
  IsCreate:Boolean;

begin
  if (iRow<0) Or (iRow>advGrid.RowCount-1) then Exit;
  aList:=TList.Create;
  iPos:=-1;
  iiPos:=-1;
  with advGrid do
  begin
    for iCol:=0 to ColCount-1 do
    begin
      IsCreate:=False;
      if iPos>=iCol then Continue;
      For iiCol:=iCol+1 to ColCount-1 do
        begin
          if iiPos>=iiCol then Continue;
          if Cells[iiCol,iRow]=Cells[iCol,iRow] then
          begin
            iPos:=iiCol;
            iiPos:=iiCol;
            if IsCreate = False then
            begin
              New(aOb);
              IsCreate := True;
              aOb.Start:=iCol;
              aOb.SameCount:=2;
              aList.Add(aOb);
            end else
            begin
              Inc(aOb.SameCount); //:=aOb.SameCount+1;
              //IsCreate := True;
            end;
          end else // No Equal
          begin
            iiPos:=iiCol;
            Break;
          end;
      end;
    end;
  end;

  For i:=0 to aList.Count-1 do
  begin
    aOb:=aList.Items[i];
    asg.MergeCells(aOb.Start,iRow,aOb.SameCount,1);
  end;
  For i:=aList.Count-1 Downto 0 do
    aList.Delete(i);
  aList.Free;
end;

procedure TReadGridFrm.MgeCol(advGrid: TAdvStringGrid; iCol: integer);

Type
  TMgeOb = ^TMgeRec;
  TMgeRec = Record
    Start:integer;       //開始合并位置  行開始
    SameCount:integer;  //合并列數(shù)
  end;

Var
  i,iPos,iiPos,iRow,iiRow:integer;
  aList:TList;
  aOb:TMgeOb;
  IsCreate:Boolean;
begin
  if (iCol<0) Or (iCol>advGrid.ColCount-1) then Exit;
  aList:=TList.Create;
  iPos:=-1;
  iiPos:=-1;
  with advGrid do
  begin
    for iRow:=0 to RowCount-1 do
    begin
      IsCreate:=False;
      if iPos>=iRow then Continue;
      For iiRow:=iRow+1 to RowCount-1 do
        begin
          if iiPos>=iiRow then Continue;
          if Cells[iCol,iiRow]=Cells[iCol,iRow] then
          begin
            iPos:=iiRow;
            iiPos:=iiRow;
            if IsCreate = False then
            begin
              New(aOb);
              IsCreate := True;
              aOb.Start:=iRow;
              aOb.SameCount:=2;
              aList.Add(aOb);
            end else
            begin
              Inc(aOb.SameCount);
            end;
          end else // No Equal
          begin
            iiPos:=iiRow;
            Break;
          end;
      end;
    end;
  end;

  For i:=0 to aList.Count-1 do
  begin
    aOb:=aList.Items[i];
    asg.MergeCells(iCol,aOb.Start,1,aOb.SameCount);
  end;
  For i:=aList.Count-1 Downto 0 do
    aList.Delete(i);
  aList.Free;
end;

procedure TReadGridFrm.MgeAll(advGrid: TAdvStringGrid);
Var
  i,iRow,iCol:Integer;
begin
  iRow := advGrid.RowCount;
  iCol := advGrid.ColCount;
  For i:=0 to iRow do
    MgeRow(advGrid,i);
  For i:=0 to iCol do
    MgeCol(advGrid,i);
end;

procedure TReadGridFrm.BitBtnClick(Sender: TObject);
begin
  MgeRows(asg,0,1);
  MgeCols(asg,0,1);
  MgeRows(asg,9,9);
end;

procedure TReadGridFrm.MgeRows(advGrid: TAdvStringGrid; RowBegin,RowEnd: integer);
Var
  i,iRow:Integer;
begin
  iRow := advGrid.RowCount;
  if (RowBegin>iRow) Or (RowEnd>iRow) then Exit;
  For i:=RowBegin to RowEnd do
    MgeRow(advGrid,i);
end;

procedure TReadGridFrm.MgeCols(advGrid: TAdvStringGrid; ColBegin,ColEnd: integer);
Var
  i,iCol:Integer;
begin
  iCol := advGrid.ColCount;
  if (ColBegin>iCol) Or (ColEnd>iCol) then Exit;
  For i:=ColBegin to ColEnd do
    MgeCol(advGrid,i);
end;

procedure TReadGridFrm.asgGetCellColor(Sender: TObject; ARow,
  ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
begin
  if ARow In [0,9] then
  begin
    AFont.Color := clRed;
    AFont.Style := AFont.Style + [fsBold];
  end;
  if ACol=2 then
  begin
    AFont.Color := clBlue;
    AFont.Style := AFont.Style + [fsBold]
  end;
  if ACol In [0,4] then
  begin
    AFont.Color := clRed;
    AFont.Style := AFont.Style + [fsBold]
  end;
  if (arow = 6) And (ACol>0) then
  begin
    AFont.Color := clYellow;
    ABrush.Color := clOlive;
    AFont.Style := AFont.Style + [fsBold];
  end;  
end;

procedure TReadGridFrm.asgCanEditCell(Sender: TObject; ARow, ACol: Integer;
  var CanEdit: Boolean);
begin
  CanEdit := True;
end;

procedure TReadGridFrm.lblHomePageClick(Sender: TObject);
Var
  Url:String;
begin
  Url:='http://www.uu987.com';
  try
    ShellExecute(Handle, nil, PChar(Url), nil, nil, SW_SHOWNORMAL);
  except
    Application.MessageBox('Internet Explorer調(diào)用失敗!', '錯(cuò)誤', MB_ICONWARNING);
  end;
end;

procedure TReadGridFrm.lblEmailClick(Sender: TObject);
Var
  Email:String;
begin
  Email:='0809601@163.com';
  try
    ShellExecute(Handle, nil, PChar('MailTo:' + Email), nil, nil, SW_SHOWNORMAL);
  except
    Application.MessageBox('Outlook Express調(diào)用失敗!', '錯(cuò)誤', MB_ICONWARNING);
  end;
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人中文在线| 国产精品 欧美精品| 91精品国产入口| 国产91精品免费| 肉丝袜脚交视频一区二区| 亚洲国产成人私人影院tom| 欧美猛男男办公室激情| 国产成人精品aa毛片| 国产精品99久| 理论电影国产精品| 亚洲国产精品尤物yw在线观看| 国产视频一区二区三区在线观看 | 国模少妇一区二区三区| 一区二区三区四区蜜桃| 国产欧美日韩综合| 日韩三级伦理片妻子的秘密按摩| 色综合天天性综合| 日韩成人精品在线| 一区二区视频在线| 国产精品免费久久久久| 久久影音资源网| 欧美一区二区免费| 久久综合一区二区| 久久超碰97中文字幕| 全国精品久久少妇| 性久久久久久久久| 麻豆精品国产传媒mv男同| 午夜精品久久一牛影视| 亚洲精品视频自拍| 五月天亚洲精品| 韩国女主播一区二区三区| 国产成人av电影在线播放| kk眼镜猥琐国模调教系列一区二区 | 精品免费一区二区三区| 欧美日韩成人综合| 日韩美女天天操| 日韩欧美国产综合| 久久久久久久免费视频了| 日韩免费福利电影在线观看| 久久久另类综合| 亚洲视频免费在线| 亚洲女子a中天字幕| 亚洲欧洲国产日韩| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 一区二区三区国产精华| 美女精品自拍一二三四| 99久久精品一区二区| 成人亚洲一区二区一| 成人晚上爱看视频| 欧美三级日韩三级| 欧美一区二区免费| 17c精品麻豆一区二区免费| 视频一区二区欧美| 99在线热播精品免费| 亚洲狼人国产精品| 奇米777欧美一区二区| 成人开心网精品视频| 欧美电影在线免费观看| 欧美一级艳片视频免费观看| 国产精品天天看| 日韩激情一区二区| 91老师国产黑色丝袜在线| 欧美探花视频资源| 在线综合亚洲欧美在线视频| 日韩精品一区国产麻豆| 亚洲品质自拍视频| 国产老肥熟一区二区三区| 在线观看日韩一区| 91麻豆精品91久久久久同性| 亚洲欧美中日韩| 黄色日韩网站视频| 欧美日韩视频第一区| 国产精品免费人成网站| 精品亚洲porn| 99re66热这里只有精品3直播 | 一本在线高清不卡dvd| 久久综合狠狠综合久久综合88| 一区二区三区在线观看欧美| 国产69精品久久777的优势| 欧美一区二区三区视频在线观看| 亚洲日韩欧美一区二区在线| 开心九九激情九九欧美日韩精美视频电影| 激情文学综合插| 欧亚洲嫩模精品一区三区| 国产精品私人影院| 国产综合色产在线精品| 7777精品伊人久久久大香线蕉完整版| 自拍偷在线精品自拍偷无码专区| 国产精品伊人色| 精品福利在线导航| 久久人人超碰精品| 午夜影视日本亚洲欧洲精品| 色婷婷综合久久久久中文一区二区| 国产欧美中文在线| 极品美女销魂一区二区三区免费| 69p69国产精品| 五月天亚洲婷婷| 欧美日韩欧美一区二区| 亚洲精品国产精品乱码不99| 99精品在线免费| 欧美激情一区二区三区不卡 | 日本一不卡视频| 欧美日韩国产影片| 狠狠狠色丁香婷婷综合激情 | 久久se这里有精品| 欧美一级日韩一级| 青青草精品视频| 日韩一卡二卡三卡| 狠狠色丁香久久婷婷综合_中| 欧美成人精品3d动漫h| 久久国产夜色精品鲁鲁99| 欧美不卡一区二区三区| 久久成人久久鬼色| 久久久久久亚洲综合| 国产高清成人在线| 国产精品视频一二三| 成人av电影在线播放| 欧美一二三区在线| 激情国产一区二区| 欧美国产精品中文字幕| 99精品桃花视频在线观看| 国产精品不卡在线| 国产经典欧美精品| 中文字幕亚洲视频| 欧美在线一二三四区| 日本中文在线一区| 久久日韩精品一区二区五区| 国产高清精品久久久久| 亚洲欧美日本在线| 欧美精品tushy高清| 国产综合久久久久久久久久久久| 日本一区二区三区在线不卡| 成人app网站| 亚欧色一区w666天堂| 欧美www视频| av中文字幕一区| 丝袜诱惑亚洲看片| 国产亚洲制服色| 欧美视频日韩视频| 国产在线一区观看| 亚洲欧美日本在线| 日韩一区二区三区精品视频| 国产不卡高清在线观看视频| 一区二区三区av电影| 欧美变态口味重另类| 99久久精品免费精品国产| 婷婷中文字幕一区三区| 久久久精品欧美丰满| 在线中文字幕不卡| 午夜在线电影亚洲一区| 久久美女艺术照精彩视频福利播放 | 日本欧美久久久久免费播放网| 久久久国产午夜精品 | 国产精品视频九色porn| 欧美性一二三区| 国产一区91精品张津瑜| 久久亚洲精华国产精华液 | 2023国产精华国产精品| 色婷婷久久一区二区三区麻豆| 免费高清成人在线| 亚洲天堂a在线| 精品国产电影一区二区| 色综合久久88色综合天天 | 色噜噜久久综合| 久久国产欧美日韩精品| 樱桃视频在线观看一区| 久久免费国产精品 | 亚洲制服丝袜一区| 91麻豆精品国产91久久久使用方法 | 欧美日本精品一区二区三区| 国产精品自拍网站| 性久久久久久久久久久久| 中文字幕av一区二区三区高 | 亚洲最大成人综合| 欧美国产欧美综合| 精品久久国产97色综合| 在线观看一区日韩| 99久久国产综合精品色伊| 国产精品中文字幕日韩精品| 日本视频中文字幕一区二区三区| 最新日韩在线视频| 欧美激情一区二区三区| 777色狠狠一区二区三区| 色综合天天综合网天天看片| 国产精品538一区二区在线| 男女男精品视频| 亚洲成人精品一区| 亚洲黄色片在线观看| 国产精品理论在线观看| 久久亚洲欧美国产精品乐播| 欧美一区二区三区免费在线看 | 亚洲国产精品黑人久久久| 欧美一区二区三区在线看| 欧美性生交片4| 色综合 综合色| 91免费观看国产| 99国产欧美另类久久久精品| 国产不卡免费视频| 高清久久久久久| 国产不卡在线播放|