Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2014
principiodual principiodual is offline
Miembro
NULL
 
Registrado: ago 2014
Posts: 26
Poder: 0
principiodual Va por buen camino
Capturar valor dependiendo del mouse

Hola, he estado visitando varios temas, pero veo que este se acerca más a lo que busco pero salvo una diferencia que es la misma que siempre veo en este tipo de temas...

Yo necesito tomar el valor de no un campo previamente definido sino de cualquier campo donde haga clic, por ejemplo.

tengo una tabla con cuatro campos uno es CODMONEDA, FECHAINICIAL, FECHAFINAL, TASACAMBIO y si deseo colocar el mouse en la casilla de datos por ejemplo de FECHAFINAL me tome ese valor, y si después lo deseo poner en CODMONEDA me tome ese valor...

Es decir no me sirve como lo explican aquí ya que se basa siempe en tomar por ejemplo el mismo valor (CODMONEDA) pero de la fila donde se de el clic.
No se si me explico, si alguién me puede ayudar muchas gracias, sigo investigando mas acerca de los eventos de GRID. Saludos.

Última edición por principiodual fecha: 10-10-2014 a las 16:42:14.
Responder Con Cita
  #2  
Antiguo 10-10-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que es lo mismo que estás pidiendo, ¿por qué no te sirve?
Responder Con Cita
  #3  
Antiguo 10-10-2014
principiodual principiodual is offline
Miembro
NULL
 
Registrado: ago 2014
Posts: 26
Poder: 0
principiodual Va por buen camino
por ejemplo este código...

Código Delphi [-]
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;   Field: TField; State: TGridDrawState);
 begin   if gdSelected in State then     
Label1.Caption:= DBGrid1.DataSource.DataSet.FieldByName('NombreCampo').AsString; 
end;

el va a tomar solo el valor del NombreCampo en la fila donde de clic, en mi caso no es un campo fijo, sino el mismo
campo sobre el que se de clic, es decir solo tomará el valor del dato NombreCampo si se le da click encima de ese campo.
por eso no me sirve me imagino debo trabajar con alguna propiedad que use el Field pero trabaje directamente con el
valor de la celda.

Código Delphi [-]
//THackDBGrid = class(TDBGrid) //refresh datagrid data - preserve row position

 var
 rowDelta: Integer; row: integer;
 recNo: integer; ds : TDataSet;
  begin ds := THackDBGrid(DBGrid1).DataSource.DataSet;
  rowDelta := -1 + THackDBGrid(DBGrid1).Row;
  row := ds.RecNo; ds.Refresh;
  with ds do begin DisableControls;
  RecNo := row; MoveBy(-rowDelta) ;
  MoveBy(rowDelta) ;
  EnableControls;

  ShowMessage(IntToStr(rowDelta));
  ShowMessage(IntToStr(row));
  ShowMessage(IntToStr(recNo));

Este código lo encontre en otra página, pero el chico lo usa para el caso de calcular posiciones, lo he
intentado llevar a lo que quiero pero no lo entiendo del todo lamentablemente.

Última edición por principiodual fecha: 10-10-2014 a las 17:22:19.
Responder Con Cita
  #4  
Antiguo 10-10-2014
principiodual principiodual is offline
Miembro
NULL
 
Registrado: ago 2014
Posts: 26
Poder: 0
principiodual Va por buen camino
Si alguién me pudiera ayudar, la unica forma que se me ocurre después de probar métodos y formas que no funcionan por lo menos para mi caso, tengo una idea de hacerlo y se que va a funcionar, pero necesitaría capturar la posición...

como puedo a través del posicionamiento o un clic en una celda del DBGRID capturar el número de columna, ya que no encuentro un método efectivo para obtener el valor de dicha celda, pienso que quizás sea mucho más fácil capturar el número de la columna en la que se hace clic y así por lo menos yo desarrollar mediante un if, que dato de los cuatro campos para mi tabla voy a traerme.

algo así como; doy clic aquí y obtengo el valor 4, entonces estoy dando clic en la columna de NATURALEZACUENTA que es el campo... y hago mis if...

if posición_campo = 4 then
valorcelda:=Form5.DBGRID1.Datasource.Dataset.Fieldbyname('NATURALEZACUENTA').aSsTRING
ELSE
if posición_campo = 3 then
valorcelda:=Form5.DBGRID1.Datasource.Dataset.Fieldbyname('FECHAFINAL').aSsTRING
ELSE
.... ETC, ETC.

Algo así, se que me funcionaría ya que no puedo obtener el valor directo dando clic en el campo que sea, solo me faltaría la sintaxis para uno poder obtener no el valor de la celda sino la posición de la misma...


espero haberme podido expicar bien y alguién me pueda ayuda, de todas maneras sigo investigando, muchas gracias.
Responder Con Cita
  #5  
Antiguo 10-10-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No olvides poner las etiquetas al código para que se vea correctamente, gracias

Lo mejor que puedes hacer es crear un hilo nuevo haciendo la pregunta lo más clara posible.
Así lo verán todos, ya que ten en cuenta ahora has contestado en un hilo existente desde hace años y nadie recibe mensajes de lo que has escrito, salvo los que participan en este hilo.

Y no olvides nuestra guía de estilo, gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Capturar Dato en un Prompt Gaim2205 Varios 1 13-09-2007 20:31:20
Capturar un dato de un dbgrid SaLvaGe Conexión con bases de datos 5 15-09-2005 19:26:17
Codigo para ingresar un dato a una celda de un DBGRID Memphis Conexión con bases de datos 2 25-01-2005 02:11:46
Como saber el Dato Capturado en Celda de un dbGrid. AGAG4 Varios 3 21-01-2005 23:11:44
Como Pintar Solo la Celda y No Toda la Columna de la Celda de un dbGrid?? AGAG4 Varios 11 15-11-2004 20:53:28


La franja horaria es GMT +2. Ahora son las 14:01:21.


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