結合最近自己做的一些工作,用到了第三方控制項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...