掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridの日本語入力について (ID:48140)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
また教えて頂きたいことが出てきました。 StringGridで日本語入力する時に、以下のソースのようなやり方で行っているのですが.. 最初のセルで日本語を入力するときには問題ないのですが 文字確定後エンターで次のセルに移動してそのまま日本語入力を行いますと セルの中ではなく小さな編集ポップアップが出て来てそこで文字入力をする事になってしまいます。 これは操作する側としては好ましくないのでセルでの入力に戻したいのですが いろいろと調べたりしましたが方法が分かりません。 どなたかご存知の方がいらっしゃいましたらお願いします。 尚環境は、Windows8.1+Delphi6です。 //------------------------------------------------------- // StringGrid1をForm1に貼って //------------------------------------------------------- // Gridで次のセル(右)へ移動 //------------------------------------------------------- procedure SGrid_NextCt(var gridp:TStringGrid;sc:integer=1;ec:integer=0); begin if (ec=0) then ec := gridp.Colcount-1; if (gridp.Col>=ec) then begin gridp.Col := sc; if (gridp.Row<gridp.Rowcount-1) then begin gridp.Row := gridp.Row+1; end; end else begin gridp.Col := gridp.Col+1; end; end; //------------------------------------------------------- procedure TForm1.FormShow(Sender: TObject); begin with StringGrid1 do begin Options := Options - [goRowSelect] + [goEditing] - [goRangeSelect]; end; end; procedure TForm1.StringGrid1Click(Sender: TObject); var Rect1: TRect; begin Rect1 := TStringGrid(sender).CellRect(TStringGrid(sender).Col,TStringGrid(sender).Row); SetIMEMode(Handle, imHira); SetImeCompositionWindow(TStringGrid(sender).Font,Rect1.Left,Rect1.Top); end; procedure TForm1.StringGrid1Enter(Sender: TObject); begin StringGrid1Click(Sender); end; procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_RETURN) then begin SGrid_NextCt(TStringGrid(sender)); // 次のセルへ移動 TStringGrid(sender).EditorMode := true; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.