AdvStringGrid使用小結


結合最近自己做的一些工作,用到了第三方控件AdvStringGrid,這里就常用的一些技巧做個小小的總結

    (1)如何設置表格固定的列數,如下圖所示:

              AdvStringGrid使用小結
這里固定的列數為3列,通過設置下面屬性來改變固定的列數:

              AdvStringGrid.FixedCols:=n;(n為要固定的列數值)
    (2)如何從AdvStringGrid中讀取和向AdvStringGrid中導入值:

       AdvStringGrid.Cells[j,i]:=str;(向其單元格賦值)這里需要注意的是,j為列數,i為行數。

    (3)如何在運行界面中手動調整列寬與行寬,效果圖如下所示:

              AdvStringGrid使用小結
這只如下屬性即可以在運行界面中手動的調整行寬與列寬:

     Options ->  goColsizing:=true 列寬

     Options ->  goRowsizing:=true 行寬
    (4)如何使文字換行,並垂直居中,效果圖如下:

             AdvStringGrid使用小結

    把goRowsizing設置為true后,將WordWrap也設置為true;
    (5)如何使列寬根據單元格內容與列標題內容自動調整列寬

     AdvStringGrid2.AutoSizeColumns(true,4);4代表前后留出的字節數。

    (6)如何下AdvStringGrid中添加CheckBox,並判斷其是否被選中的狀態,效果圖如下:

            AdvStringGrid使用小結

在窗體創建單元添加如下代碼:

     for i:=1 to AdvStringGrid3.rowcount-1  do
     begin
       AdvStringGrid3.AddCheckBox(2,i,false,false);
     end;

那么如何判斷其是否被選取,並讀取其中的值,參考代碼如下:

    var

      flag:boolean;

    for j:=1 to m do (m為表格的行數)
    begin
      AdvStringGrid3.GetCheckBoxState(2,j,flag);
      if flag then
      begin

      …………

      end;

    (7)如何調整單元格總字體的顏色,比如對於一些異常數據希望顯示為紅色,效果圖如下:

            AdvStringGrid使用小結
編輯代碼如下:
     AdvStringGrid2.FontColors[21,j]:=clred;

    (8)如何合並單元格:

這里我所采用的方法是,把所有數據采集完了以后再合並單元格,合並后的效果圖如下:

          AdvStringGrid使用小結
合並的具體思路是這樣的,先定義一個數組類型,把每列中值不一樣的初始位置記錄下來,然后再進行合並,參考代碼如下:

    i:=0;
    setlength(ipos,100);
    for j:=1 to m do
    begin
      if AdvStringGrid2.Cells[0,j]<>AdvStringGrid2.Cells[0,j+1] then
      begin
        ipos[i]:=j;
        i:=i+1;
      end;
    end;
    AdvStringGrid2.MergeCells(0,1,1,ipos[0]);
    AdvStringGrid2.MergeCells(23,1,1,ipos[0]);
    AdvStringGrid2.MergeCells(24,1,1,ipos[0]);
    if i>1 then
    begin
      for j:=0 to i-2 do
      begin
        AdvStringGrid2.MergeCells(0,ipos[j]+1,1,ipos[j+1]-ipos[j]);
        AdvStringGrid2.MergeCells(23,ipos[j]+1,1,ipos[j+1]-ipos[j]);
        AdvStringGrid2.MergeCells(24,ipos[j]+1,1,ipos[j+1]-ipos[j]);
      end;
    end;
    (9)如何清空表格

    使用Clear過程

    AdvStringGrid2.Clear;

    (10)如何使單元格的所有內容居中顯示

    AdvStringGrid2.VAlignment:=vtacenter;

    for j:=0 to m do//TabSheet2所有單元格顯示居中
    begin
      for i:=0 to AdvStringGrid2.ColCount-1 do
      begin
        AdvStringGrid2.Alignments[i,j]:=TaCenter;
      end;
    end; 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM