あなたはgoEditingオプションセットとセルとのTStringGridを持って、それに数行のテキストを持って、カーソルがそのテキストの最後になります。どのようにカーソルを別の位置に移動できますか?私の特に問題は、テキストの末尾に改行がある場合、ユーザーはセルが空であると考えます。キャリッジが戻る前にカーソルを移動したいと思います。DelphiのStringGridセルでカーソル位置を移動する方法は?あなたがそれをクリックすることで、そのセルを編集するために行くとき
答えて
VCLを使用しているとしますと、InplaceEditor
はTCustomGrid
のプロパティです。タイプTInplaceEdit
で、TCustomEdit
から降下しています。あなたはその中にカーソルを移動することができますTEdit
ちょうどのように。
あなたは、セルの内容を編集する自動的な方法を使用している場合は、カーソルを移動するには、次の方法を使用することができます。私はそれを試して、それは私のために働く。
unit Main;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids;
const
WM_MY_MESSAGE = WM_USER + 1;
type
TStringGridEx = class helper for TStringGrid
public
function GetInplaceEditor(): TInplaceEdit;
end;
TForm1 = class(TForm)
aGrid: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure aGridGetEditText(Sender: TObject; ACol, ARow: Integer; var Value: string);
private
procedure OnMyMessage(var Msg: TMessage); message WM_MY_MESSAGE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.aGridGetEditText(Sender: TObject; ACol, ARow: Integer; var Value: string);
begin
PostMessage(Handle, WM_MY_MESSAGE, 0, 0);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
y: Integer;
x: Integer;
begin
for y := 0 to aGrid.RowCount do
begin
for x := 0 to aGrid.ColCount do // fill the grid
aGrid.Cells[x, y] := Format('Col %d, Row %d'#13#10, [x, y]);
end;
end;
procedure TForm1.OnMyMessage(var Msg: TMessage);
var
pInplaceEdit: TInplaceEdit;
begin
pInplaceEdit := aGrid.GetInplaceEditor();
if Assigned(pInplaceEdit) then
begin
pInplaceEdit.SelStart := pInplaceEdit.EditText.TrimRight.Length;
pInplaceEdit.SelLength := 0;
end;
end;
{ TStringGridEx }
function TStringGridEx.GetInplaceEditor: TInplaceEdit;
begin
Result := InplaceEditor; // get access to InplaceEditor
end;
end.
サム
? TStringGridには、私が見ることのできるSelStartのようなものはありません。 – fullerm
OKしかし、どこでSelStartを設定しますか? GetEditTextまたはSetEditTextに設定することは機能していないようです。 – fullerm
@ fulllermエディタをどのように表示するかわからない。 'ShowEditor'関数を使って編集を開始した場合は、その直後に' SelStart'を設定します。それが自動であれば、より多くの作業をする必要があります。あなたのコードと状況に応じて。 1つの方法は、 'OnGetEditText'の中からメインフォームにカスタムメッセージを投稿し、後で' SelStart'を設定することができます。 – Sam
- 1. 編集可能なコンボでキーを押したときにカーソルが最初の位置に移動するWPF
- 2. テキストとそのカーソル位置を編集しますか?
- 3. InvalidOperationException - セルの編集を終了し、別のセルに移動するとき
- 4. そのセルをクリックしたときにセルの値を取得する方法は?
- 5. 選択したセルと編集したセルを区別する
- 6. JTableで編集中のセルの位置
- 7. 編集可能なセルにカーソルがあるのはなぜですか?
- 8. VBA参照し、私はそれは私がそれがする必要があるセルに追加するために取得することができた
- 9. ボタンで各セルを編集する方法jqueryデータテーブルをクリック
- 10. Excelで、セルをクリックすると、フォーカスが別のセルに移動します
- 11. 空のときにセルの位置をアクティブにする方法
- 12. cellForRowAtIndexPathは、編集のために表のセルがクリックされたときに呼び出されます。
- 13. セルをタップすると、tableviewセル編集ビューを表示する方法は?
- 14. Wordpress:アップロードしたファイルを移動できませんでした - オーナーやそれに類する編集方法?
- 15. openpyxlで位置(行、列)にあるセルの値を取得する方法は?
- 16. ユーザーがクリックしないでJTableセルを編集する
- 17. 動的にセルの位置をUITableViewで設定する方法
- 18. javafxのTableviewでセルの位置を変更してsr.noを並べ替えることはできますか?セルの位置が変更された場合は、私たちのためにそれが可能position.isを変化させながら、セル位置を変えながら
- 19. jqGridで選択したセルを編集する方法
- 20. DataGridViewのセルを編集するときにDateTimepickerを追加する方法
- 21. QTableWidgetコードから編集するためのセルの選択方法および/または1回のクリックで
- 22. セルを編集した後にJTableを編集/更新する
- 23. Intellijは、編集のためにファイルを開くことができます。最後の編集位置ではありません。
- 24. ユーザーがクリックしてクリックしたときにカーソルを移動するJavaScriptなし
- 25. JTableで行を削除した後にセルを編集するのをやめる方法
- 26. Excel;セル内でリターンを押すと、同じ位置にカーソルが残る
- 27. ラファエロ要素上にカーソルを置くと、カーソルが移動する
- 28. Excelで開いたときにXMLセルをロック(編集を無効にする)
- 29. 新しいセルまたは次のセルを選択するときに編集モードにする
- 30. UITableViewでの編集が完了したときにセル幅が拡大するのを防ぐ方法
あなた可能性(メイングリッドではない)場所エディタでの、エディタコントロールのホールドを取得し、クリックした後のSelectAllをやってみてください –