Sid*_*ang 5 delphi row highlighting tdbgrid
我得到:ADOTable1(codepeople作为整数,namepeople作为字符串)DataSource1(DateSet是ADOTable1)DBGrid1(连接到DataSource1,Options-dgRowSelect为true)
我使用以下代码在 ADOTable1 上找到一行
ADOTable1.Locate(ADOTable11codepeople.FieldName, 1, []);
Run Code Online (Sandbox Code Playgroud)
DBGrid1 正在选择正确的行。但不是亮点。
如何使 DBGrid 自动突出显示我从 ADOTable1 找到的行?
我阅读了以下链接,但没有找到答案:
简单的源码请...
PS:我用的是Delphi 2010。
以下代码将使网格中选定的行突出显示
type
THackDBGrid = class (TDBGrid);
...
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (THackDBGrid(dbGrid1).DataLink.ActiveRecord + 1 = THackDBGrid(dbGrid1).Row)
or (gdFocused in State) or (gdSelected in State) then
dbGrid1.canvas.Brush.Color:= clMoneyGreen;
dbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
Run Code Online (Sandbox Code Playgroud)
好的,我自己尝试后,发现下面的代码可以完成代码:
DBGrid1.setfocus;
Run Code Online (Sandbox Code Playgroud)
由于已经正确选择了行,因此 setfocus 有助于突出显示。
不管怎样,谢谢你的回复:)