TDBGridの一部のセルをマウスでクリックすると、どのようにシミュレーションできますか?TDBGridのセルをマウスでクリックするとシミュレートする
1
A
答えて
2
更新:
このコードは、あなたが望むように見える何をすべき:
type
TMyDBGrid = class(TDBGrid);
function TForm1.GetCellRect(ACol, ARow : Integer) : TRect;
begin
Result := TmyDBGrid(DBGrid1).CellRect(ACol, ARow);
end;
procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift:
TShiftState; X, Y: Integer);
var
Coords : TGridCoord;
begin
Coords := DBGrid1.MouseCoord(X, Y);
Caption := Format('Col: %d, Row: %d', [Coords.X, Coords.Y]);
end;
procedure TForm1.SimulateClick(ACol, ARow : Integer);
type
TCoords = packed record
XPos : SmallInt;
YPos : SmallInt;
end;
var
ARect : TRect;
Coords : TCoords;
begin
ARect := GetCellRect(ACol, ARow);
Coords.XPos := ARect.Left;
Coords.YPos := ARect.Top;
DBGrid1.Perform(WM_LButtonUp, 0, Integer(Coords));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SimulateClick(StrToInt(edX.Text), StrToInt(edY.Text));
end;
のTDBGridのMouseCoord
機能は、列番号(TGridCoordに座標(X、Y)のペアに変換します.X)とRow番号((TGridCoord.Y)。
OnMouseUp
イベントは、X & Y入力のargumにDBGrid1.MouseCoordを呼び出した結果を表示しますents。
SimulateClick
は、グリッドのセルのクリックをシミュレートします。 GetCellRectを使用して、指定されたセルの頂点の座標(DBGrid内)を取得し、DBGridでPerform(WM_LButtonUp、...)を呼び出し、LParam引数に座標を渡します。
最後にButton1Click
はTEditのペアからCol値とRow値を使用してSimulateClickを呼び出します。 OnMouseUpイベントが発生し、ColとRowの番号が表示されるため、対応するセルをマウスでクリックするのと同じ効果を得ることができます。
関連する問題
- 1. クロムエクステンションのリンクをマウスでクリックしてシミュレート
- 2. 最小化されたウィンドウでマウスのクリックをシミュレートする
- 3. ブルートゥース+シミュレートするマウス
- 4. マウスの上下のイベントを使ってマウスのクリックをシミュレートできますか?
- 5. JavaScriptでマウスでスワイプをシミュレートする
- 6. マウスのクリックでセルの色を変更する
- 7. マウスをシミュレートするキーが押されたときにクリックします。
- 8. Python上でXlibを使ってマウスのクリックをシミュレートする方法
- 9. 実際のマウス移動をシミュレートし、WatiNでクリック
- 10. GearVRのクリックをシミュレートする
- 11. C++でマウスとキーボードの入力をシミュレートする
- 12. Macのアプリケーションから他のアプリケーションへのマウスのクリックをシミュレートする方法
- 13. IE8は、表のセル内のテキストをマウスでクリックするだけです。
- 14. クリックをシミュレートするAjax
- 15. ターゲット上でマウスの左クリックをシミュレートし、C#で前の位置にマウスを移動します。
- 16. Windowsフォームでキーボードのクリックをシミュレートする
- 17. JavaScriptでリンクをクリックしてシミュレートする
- 18. イベントをマウスの右ボタンでクリックする
- 19. Googleマップマーカーのクリックを「シミュレートする」方法
- 20. Googleマップのクリックをシミュレートする
- 21. bxsliderデスクトップブラウザでマウスをスワイプ(クリック+ドラッグ)する
- 22. ゲームオブジェクトをマウスでクリックする - Unity3d
- 23. Winformsボタンをシミュレートするアニメーションをクリック
- 24. TDbGridのガター(左余白)のクリックを検出しますか?
- 25. 私のwebviewでクリックをシミュレート
- 26. IEとFirefoxでの左右マウスのクリックを区別する
- 27. リストをマウスでクリックするとリストを展開します
- 28. C++ BuilderでTDBGridを更新する
- 29. valums Ajax Uploaderをクリックしてシミュレートする
- 30. 「ホームボタン」をクリックしてシミュレートする
@RBA:OPの特定の点には答えられないようですね。 – MartynA
なぜセル内をクリックしてシミュレートする必要がありますか?操作する行と列がわかっている場合は、コードを記述してください。次に、セルが実際にクリックされたときに同じことが起こるようにするには、そのコードをOnCellClickハンドラで呼び出します。あるいは、あなたはそれをどうやって行うのか不明ですか? – MartynA
@MartynA時には、私はレコードを削除しようとすると問題があります。しかし、私は現在の行のいくつかのセルを選択すると、削除が実行されます! .. – userPro