Estoy ejecutando Lazarus 0.9.30.¿Cómo puede obtener pistas para que las celdas en una TStringGrid aparezcan de forma más fluida?
Tengo un estándar TStringGrid
en un formulario y quiero mostrar una pista diferente cuando muevo el puntero del mouse sobre el título de una columna. Estoy usando este código para hacer esto y funciona, pero a menudo tiene que hacer clic en la celda para cambiar la sugerencia, cuando realmente quiero que cambie a medida que el puntero del mouse se mueve sobre ella. Tengo todas las sugerencias almacenadas en una colección que busco usando el índice de la columna como la clave. ¿Hay alguna manera de obtener una presentación más suave de sugerencias?
procedure TTmMainForm.SgScoutLinkMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
R, C: Integer;
begin
R := 0;
C := 0;
SgScoutLink.MouseToCell(X, Y, C, R);
with SgScoutLink do
begin
if (R = 0) then
if ((C >= 3) and (C <= 20)) then
begin
SgScoutLink.Hint := FManager.ScoutLinkColumnTitles.stGetColumnTitleHint(C-3);
SgScoutLink.ShowHint:= True;
end; {if}
end; {with}
end;
I Creo que la llamada SgScoutLink.MouseToCell no funcionará como se esperaba. Espera coordenadas relativas al control TGrid, pero las de CursorPos son coordenadas de pantalla absolutas. Por lo tanto, debe llamarse primero a SgScoutLink.ScreenToClient. – dummzeuch
@dummzeuch 'THintInfo.CursorPos' contiene las coordenadas relativas del cliente dentro de' THintInfo.CursorRect', no las coordenadas de pantalla –