AdvStringGrid使用小結 轉

2022-08-01 17:48:11 字數 2807 閱讀 3530

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

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

這裡固定的列數為3列,通過設定下面屬性來改變固定的列數:

advstringgrid.fixedcols:=n;(n為要固定的列數值)

(2)如何從advstringgrid中讀取和向advstringgrid中匯入值:

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

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

這只如下屬性即可以在執行介面中手動的調整行寬與列寬:

options ->  gocolsizing:=true 列寬

options ->  gorowsizing:=true 行寬

(4)如何使文字換行,並垂直居中,效果圖如下:

把gorowsizing設定為true後,將wordwrap也設定為true;

(5)如何使列寬根據單元格內容與列標題內容自動調整列寬

advstringgrid2.autosizecolumns(true,4);4代表前後留出的位元組數。

(6)如何下advstringgrid中新增checkbox,並判斷其是否被選中的狀態,效果圖如下:

在窗體建立單元新增如下**:

for i:=1 to advstringgrid3.rowcount-1 do

begin

advstringgrid3.addcheckbox(2,i,false,false);

end;

varflag:boolean;

for j:=1 to m do (m為**的行數)

begin

advstringgrid3.getcheckboxstate(2,j,flag);

if flag then

begin

…………

end;

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

(8)如何合併單元格:

這裡我所採用的方法是,把所有資料採集完了以後再合併單元格,合併後的效果圖如下:

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

forj:=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; 

希望大家多多交流………………

首先在設定屬性:options—goediting=true;然後,在caneditcell事件中設定。

procedure

tform50.stgpartlistcaneditcell(sender: tobject; arow, acol:

integer; var canedit: boolean);

vari:integer;

begin

if (stgpartlist.cells[cc1data_flag,arow]='') or

(stgpartlist.cells[cc1data_flag,arow]='c') then begin

canedit:=false;

exit;

end else begin

for i:=0 to ccolqty1 do begin

if acol=i then begin

if stgpartlist.cells[cc1data_flag,arow]='c' then

canedit:=false

else begin

if ccolprop1[i,1]='y' then

canedit:=true; //ccolprop1:列屬性陣列,下同

if ccolprop1[i,1]='n' then canedit:=false;

AdvStringGrid使用小結

結合最近自己做的一些工作,用到了第三方控制項advstringgrid,這裡就常用的一些技巧做個小小的總結 1 如何設定 固定的列數,如下圖所示 advstringgrid使用小結 這裡固定的列數為3列,通過設定下面屬性來改變固定的列數 advstringgrid.fixedcols n n為要固定...

AdvStringGrid常用操作

advstringgrid1.options goediting 設定單元格是否可編輯 advstringgrid1.mouseactions.directedit true 設定點選單元格即進入編輯狀態 procedure tform1.advstringgrid1caneditcell send...

advStringGrid單元格文字垂直居中

1 必須設定advstringgrid屬性wordwrap false,2 在ongetalignment事件中,新增以下 procedure tfrm book input.stringgrid1getalignment sender tobject arow,acol integer var h...