OnDrawCell 事件给我一个“Rect”记录,以便我知道实际像素坐标在哪里:
OnDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
另一方面, OnSelectCell 只给我行/列坐标。
OnSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
如何将行/ col转换为像素坐标?
我需要那些因为我需要在运行时创建一个ComboBox来覆盖整个选定的单元格,但只有在选中单元格时才需要。我知道如何做所有事情,但我不知道如何获得坐标(现在,我只是在父tStringGrid的0,0处创建组合)。
我使用的是Delphi7,但我认为这是一个普遍的问题,与Delphi版本无关。
PS:我知道有很多商业和免费软件组件在单元格中实现组合框,但我不能和/或不想使用它们。谢谢
答案 0 :(得分:4)
您可以使用CellRect method
确定单元格屏幕坐标P.S。你有没有试过将控件集成到StringGrid中? 当您遇到控件问题(将网格作为父级)行为时,请查看this topic