AdvStringGrid1.Options:=[goEditing]; //設置單元格是否可編輯
AdvStringGrid1.MouseActions.DirectEdit:=True; //設置點擊單元格即進入編輯狀態
procedure TForm1.AdvStringGrid1CanEditCell(Sender: TObject; ARow, ACol: Integer; var CanEdit: Boolean);
var
i: Integer;
begin
for i := 0 to AdvStringGrid1.ColCount do
begin
CanEdit := False;
end;
if ACol = 1 then
CanEdit := True;
if ACol = 7 then
CanEdit := True;
end;
//設置單元格對齊方式
procedure TForm1.AdvStringGrid1GetAlignment(Sender: TObject; ARow, ACol: Integer; var HAlign: TAlignment; var VAlign: TVAlignment);
begin
if ACol = 1 then
begin
HAlign := taCenter; //TAlignment = (taLeftJustify, taRightJustify, taCenter);
VAlign := vtaCenter; //TVAlignment = (vtaTop,vtaCenter,vtaBottom);
end;
end;
//添加CheckBox
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
flag: Boolean;
begin
//添加CheckBox
for i := 1 to AdvStringGrid1.RowCount - 1 do
begin
AdvStringGrid1.AddCheckBox(1, i, False, false);
end;
//判斷CheckBox是否選中
for i := 1 to AdvStringGrid1.RowCount - 1 do
begin
AdvStringGrid1.GetCheckBoxState(1, i, flag);
if flag then
begin
//如果選中CheckBox進行操作
end;
end;
end;
//AdvStringGrid1.Options:=[goEditing]; //設置單元格是否可編輯
//AdvStringGrid1.MouseActions.DirectEdit := True; //設置點擊單元格即進入編輯狀態
//為 AdvStringGrid1增加下拉列表選擇框
procedure TForm1.AdvStringGrid1GetEditorType(Sender: TObject; ACol, ARow: Integer; var AEditor: TEditorType);
var
sqlStr: string;
begin
if ACol = 2 then //設置特定列為下拉列表框類型
begin
sqlstr := 'select * from dictfeeitem';
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(sqlStr);
Open;
end;
if ADOQuery1.RecordCount > 0 then
begin
ADOQuery1.First;
aEditor := edComboList; //設置編輯框為下拉列表
AdvStringGrid1.ClearComboString; //清空下拉列表內容
while not ADOQuery1.Eof do
begin
AdvStringGrid1.AddComboString(ADOQuery1.FieldByName('feeitem').AsString); //增加下拉列表框內容
ADOQuery1.Next;
end;
end;
end;
end;
//滾動條到最后一條記錄
SendMessage(AdvStringGrid1.Handle,WM_VSCROLL,SB_BOTTOM,0);
//根據內容改變單元格的顏色
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
AdvStringGrid1.RowCount := 7;
AdvStringGrid1.Cells[1, 1] := '-11';
AdvStringGrid1.Cells[1, 2] := '1';
AdvStringGrid1.Cells[1, 3] := '19';
AdvStringGrid1.Cells[1, 4] := '-8';
AdvStringGrid1.Cells[1, 5] := '0';
AdvStringGrid1.Cells[1, 6] := '11';
for i := 1 to AdvStringGrid1.RowCount - 1 do
begin
if StrToInt(AdvStringGrid1.Cells[1, i]) <= 0 then
AdvStringGrid1.FontColors[1, i] := clRed
else
AdvStringGrid1.FontColors[1, i] := clBlack;
end;
end;