原来是这样
function IsInStrArray(const S: string): Boolean;
var
I: Integer;
const
cStrArray: array[0..4] of String =('01','02','07','08','12');
begin
Result := False;
for I := Low(cStrArray) to High(cStrArray) do
if S = cStrArray[I] then
begin
Result := True;
Exit;
end;
end;
我是这样写的,但还不行,不知错在哪里,请指教!!!
procedure Tfr_jjfenxi.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Column.Field.DataType= ftstring then
if IsInStrArray(DBGrid1.DataSource.DataSet.FieldByName(Column.FieldName).AsString) then
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.Canvas.Font.Color:=clWhite;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
function IsInStrArray(const S: string): Boolean;
var
I: Integer;
const
cStrArray: array[0..4] of String =('01','02','07','08','12');
begin
Result := False;
for I := Low(cStrArray) to High(cStrArray) do
if S = cStrArray[I] then
begin
Result := True;
Exit;
end;
end;
然后写一函数
function IsInStrArray(const S: string): Boolean;
var
I: Integer;
begin
Result := False;
for I := Low(cStrArray) to High(cStrArray) do
if S = cStrArray[I] then
begin
Result := True;
Exit;
end;
end;
然后
if Column.Field.DataType = ftString then
if IsInStrArray(DBGrid1.DataSource.DataSet.FieldByName(Column.FieldName).AsString) then
...