Delphi XE2 で、グリッドが別の非モーダル フォームにフォーカスを失ったときに InPlaceEditor のハイライトを StringGrid に保持する方法はありますか?
私の現在の StringGrid オプションは次のとおりです。
そうでない場合は、以下のコードを使用して、フォーカスを失った後に現在のセルの強調表示を保持することを望んでいましたが、現在のセルではなくなったときにセルを強調表示したままにすることに問題があります。
選択されていないセルの色を元に戻すには、以下のコードに「else」を追加する必要がありますか? 注意事項はありますか?
procedure TForm1.sgMultiDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if (ACol = sgMulti.Col) and (ARow = sgMulti.Row) then
begin
sgMulti.Canvas.Brush.Color := clYellow;
sgMulti.Canvas.FillRect(Rect);
sgMulti.Canvas.TextRect(Rect, Rect.Left, Rect.Top, sgMulti.Cells[ACol, ARow]);
if gdFocused in State then
sgMulti.Canvas.DrawFocusRect(Rect); user
end;
end; { sgMultiDrawCell}
編集: 以下のスクリーン キャプチャは、現在の動作を明確に示しています。フォーカスを失ったときに現在のセルを下の画面キャプチャよりも明確にしたい