procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin if dbgrid1.Columns[1].Field.value=1 then
begin
if column.Index =1 then
begin
(sender as Tdbgrid).Canvas.TextRect(rect,0,0,'男'); (sender as Tdbgrid).Canvas.TextOut(rect.Left+2,rect.top+2,'男');
end;
end
else if dbgrid1.Columns[1].Field.value=2 then
begin
if column.Index =1 then
begin
dbgrid1.Canvas.TextRect(rect,0 ,0 ,'女');
dbgrid1.Canvas.TextOut(rect.Left,rect.Top,'女');
end;
end;end ;
为什么在dbgride显示的男,女双击的时候出现1,2,如何改成男女后双击不显示原来的1,2,这样双击时看来就只显示男女。而不显示对用户来说莫名其妙的1,2
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin if dbgrid1.Columns[1].Field.value=1 then
begin
if column.Index =1 then
begin
(sender as Tdbgrid).Canvas.TextRect(rect,0,0,'男'); (sender as Tdbgrid).Canvas.TextOut(rect.Left+2,rect.top+2,'男');
end;
end
else if dbgrid1.Columns[1].Field.value=2 then
begin
if column.Index =1 then
begin
dbgrid1.Canvas.TextRect(rect,0 ,0 ,'女');
dbgrid1.Canvas.TextOut(rect.Left,rect.Top,'女');
end;
end;end ;
为什么在dbgride显示的男,女双击的时候出现1,2,如何改成男女后双击不显示原来的1,2,这样双击时看来就只显示男女。而不显示对用户来说莫名其妙的1,2
DisPlayValue(男;女);
(我还是认为直接存“男”“女”比较好)
在sql中:
sex = case sex when 1 then '男' else '女' end
tadoquery添加所有字段,sex字段的ongettext事件里
如下写
procedure TForm1.ADOQuery1sexGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
case sender.Value of
1: text:='男';
2:text:='女';
end;
end;
DisplayText: Boolean);
begin
if sender.value<>null then
case sender.Value of
1: text:='男';
2:text:='女';
end;
end;
如下写
procedure TForm1.ADOQuery1sexGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
case sender.Value of
1: text:='男';
2:text:='女';
end;
end;