在我的Delphi应用程序中,我有两个网格。当用户从顶部网格中选择记录时,将在下部网格中过滤记录。
我试图在下部网格中实现下拉控件,该控件枚举TStringList中的项目。我设置它的位置OnDrawDataCell:
procedure TfrmPieces.grdPiecedtlDrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if (gdFocused in State) then
begin
if (Field.FieldName = 'Vendors') then
with cboVendors do
begin
Left := Rect.Left + grdPiecedtl.Left + 1;
Top := Rect.Top + grdPiecedtl.Top + 1;
Width := Rect.Right - Rect.Left + 2;
Width := Rect.Right - Rect.Left + 2;
Height := Rect.Bottom - Rect.Top + 2;
end;
端 端;
我还实现了将控件隐藏在col退出并显示和隐藏控件更改单元格。
问题是:如果我在顶部网格中选择有3行的记录,并选择第3行中的列,则保持组合框的位置。我在上部网格的行更改时隐藏了组合框(目前),但是当我点击新刷新的下部网格的第1列时,它会显示旧位置的下拉列表。如果我单击该字段并在第1行中返回它,那么重新定位正常,但该初始行更改导致问题。我尝试在行更改时重绘网格,但这没有效果。
我感谢任何建议。谢谢!