5

ADOTable1 (整数の codepeople、文字列の namepeople) DataSource1 (DateSet は ADOTable1 ) DBGrid1 (DataSource1 に接続、Options-dgRowSelect は true )

次のコードで ADOTable1 の行を見つけます

  ADOTable1.Locate(ADOTable11codepeople.FieldName, 1, []);

DBGrid1 は正しい行を選択しています。しかし、ハイライトではありません。

DBGrid を作成して、 ADOTable1 から見つけた行を自動的に強調表示するにはどうすればよいですか?

次のリンクを読みましたが、答えが見つかりませんでした:

TDBGridでアクティブセルを設定するには?

Delphi - DBGrid を使用して検索から行を選択する

DelphiでスクロールするときのDBGridの表示位置

簡単なソースコードをお願いします...

PS: Delphi 2010 を使用しています。

4

4 に答える 4

1

27 10月. 132013-10-27 05:44 に回答

IMHO、No'am Newman の回答 (ここにある 2 つ) は、最高の、正しい回答です。

2021 年です。私は Delphi 10.2 (東京) にいます。VCL プログラム。バージョン 3.02 (1986) から Delphi を使用しています。

さらなる説明:

(1) dgAlwaysShowSelection は dgRowSelect では機能しません (また、この応答で言及されているリンクは複雑すぎます - 機能する場合)

(2) DBGrid1.SetFocus はフォーカスを ActiveControl から遠ざけます。

(3) grid.SelectedRows.CurrentRowSelected:= True; 私にはうまくいきません

(4) No'am のハック --> 10 行未満のコードで、色を選択する機能が追加されています。

(4.1) 色を「選択」したくない場合は、clGradientActiveCaption をお勧めします (No'am の clMoneyGreen とは対照的に)。

(*) 私は 98% (99%?)、上記のすべてのポイントが少なくとも 5 以降の Delphi のどのバージョンにも適用される/適用されると確信しています。

<これだけ持ってる>

于 2021-04-05T06:16:15.393 に答える