Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Conseguir la posición gobal del cursor en la pantalla. (https://www.clubdelphi.com/foros/showthread.php?t=7799)

islu 26-02-2004 17:14:46

Conseguir la posición gobal del cursor en la pantalla.
 
Hola foro.

Mi duda es la siguiente, como puedo saber la posición del cursor en la pantalla ( no en el form ).

Mi idea es que al pulsar una tecla, aparezca junto a la celda actual de un grid, un pequeño form.

Muchas gracias.

roman 26-02-2004 17:19:14

Usa el objeto global Mouse:

Mouse.CursorPos

// Saludos

islu 26-02-2004 17:37:37

Muchas gracias, pero con eso consigo la posición del ratón, yo quiero saber la posición del cursor, ya que en el grid me muevo con el teclado.

Gracias de nuevo.

roman 26-02-2004 18:01:03

¡Uy! Disculpa, leí mal.

Entonces podrías usar GetCaretPos para obtener la posición relativa a la ventana y luego usar ClientToScreen para convertir a coordenadas globales. Sin embargo la ventana donde está el caret (cursor) será la del cuadro de edición de la celda que está dado por la propiedad protegida InPaceEditor del grid. Puedes tratar de acceder a él usando el viejo truco:

Código:

type
  THackGrid = class(TDBGrid);

y haciendo el "casting":

Código:

THackGrid(DBGrid1).InPlaceEditor
Claro que ya accediendo al InPlaceEditor-- que es un descendiente de TCustomMaskEdit) --puedes directamente encontar su posición y colocar tu formulario acordemente.

// Saludos

islu 01-03-2004 12:49:37

Muchas gracias, pero ahora tengo un problema, InPlaceEditor me apunta a nil. Por qué puede ser?. Utilizo un TwwDBGrid.

Muchas gracias de nuevo.

roman 01-03-2004 15:54:22

No conozco la componente que mencionas pero suponiendo que funciona de forma similar a otras el problema es que InPlaceEditor sólo estará asignado cuando estés editando una celda, no si sólo estás colocado en ella.

// Saludos

islu 08-03-2004 13:17:28

Muchas gracias, Roman, perdona por la tardanza en agradecertelo, pero es que he estado fuera.

Gracias.

Oxa78 27-09-2005 19:38:00

Busque y busque, pero no puedo
 
Saludos : Sobre la pregunta : ¿Como obtener la posición global en la pantalla de una celda selccionada?

Parece q no tengo la suficiente experiencia para obtener el resultado, no puedo obtener la posición...

Si alguien puede ayudarme seria genial

Mil gracias por adelantado

Oxa78 27-09-2005 23:14:18

Parece q finalmente encontre algo...
 
Este es el Link : http://cc.borland.com/Item.aspx?id=4

http://cc.borland.com/Item.aspx?id=4

Yo utilizo los COmponentes wwDBGrid y tiene un evento : DBGrid1DrawDataCel
me imagino q es parecido al ColumnCell, la teoria es interesante, se obtnedra la posción del mouse al dibujar la celda activa

Código:

procedure TMainForm.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
  if gdFocused in State then begin
    CurrentLeft := Rect.Left;
    CurrentTop := Rect.Top;
 end;
end;



La franja horaria es GMT +2. Ahora son las 10:09:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi