gpt4 book ai didi

delphi - 如何获取 TDbGrid 中光标下的文本

转载 作者:行者123 更新时间:2023-12-02 11:25:38 24 4
gpt4 key购买 nike

屏幕宽度不足以显示某些文本字段。我不知道如何自动包装它们,并且我怀疑这是否可以轻松完成。

所以,我想我会做类似的事情

procedure TForm1.FormMouseMove(Sender: TObject;
Shift: TShiftState; X,Y: Integer);

var column, row : Integer;
begin
myDbGrid.MouseToCell(X, Y, column, row);
myDbGrid.Hinst := myDbGrid.Cells(column, row); // <==== ooops
end;

或者,也许可以在 OnShowHint 中执行此操作并获取鼠标坐标并将其转换为列和行(更高效)

但是,TDbGrid 当然没有Cells。知道当用户将鼠标移动到网格的“单元格”上时如何设置控件的提示吗?

最佳答案

使用此代码:

type
THackGrid = class(TDBGrid);

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Cell: TGridCoord;
ActRec: Integer;
begin
Cell := DBGrid1.MouseCoord(X, Y);
if dgIndicator in DBGrid1.Options then
Dec(Cell.X);
if dgTitles in DBGrid1.Options then
Dec(Cell.Y);
if THackGrid(DBGrid1).DataLink.Active and (Cell.X >= 0) and
(Cell.Y >= 0) then
begin
ActRec := THackGrid(DBGrid1).DataLink.ActiveRecord;
try
THackGrid(DBGrid1).DataLink.ActiveRecord := Cell.Y;
Caption := DBGrid1.Columns[Cell.X].Field.AsString;
finally
THackGrid(DBGrid1).DataLink.ActiveRecord := ActRec;
end;
end;
end;

关于delphi - 如何获取 TDbGrid 中光标下的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com