掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridにコンボボックスを配置し、上下キーでセル移動するには? (ID:11454)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
モスッラ〜や!さん ありがとうございます。 参考にして、あれもダメ、これもダメなどと いろいろ工夫しながらやってみた所、どうにか完成しました。 ソースはこんな感じになりました。 public FGridCtrl:TControl; //========================================================== procedure TForm1.GridGetEditText(Sender: TObject; ACol, ARow: Integer; var Value: String); begin if (ACol = 2) then begin FGridCtrl := Grid.Controls[0]; if FGridCtrl is TInplaceEdit then begin ShowCombo; end; end; end; //========================================================== procedure TForm1.ComboExit(Sender: TObject); begin Grid.Cells[Grid.Col,Grid.Row] := Combo.Text; Combo.Visible := False; ActiveControl := Grid; end; //========================================================== procedure TForm1.ComboKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_RETURN) then begin ComboExit(Sender); end; end; //========================================================== procedure TForm1.ShowCombo; var ARect:TRect; begin ARect := Grid.CellRect(Grid.Col, Grid.Row); Combo.Top := ARect.Top + Grid.Top + 2; Combo.Left := ARect.Left + Grid.Left + 2; Combo.Width := ARect.Right - ARect.Left+2; Combo.Text := Grid.Cells[Grid.Col,Grid.Row]; Combo.Visible := True; ActiveControl := Combo; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.