Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #16  
Antiguo 04-10-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Pues entonces estás haciendo uso de un dataset, ya decía yo y parece ser que no me entendiste sobre el uso del evento OnGetText,
Todo sabemos que en Delphi se puede asignar un evento tanto en tiempo de diseño como en tiempo de Ejecucion, en éste caso podrías asignar el evento OnGetText en tiempo de Ejecucion de la siguiente manera:
Primeramente debo implementar un Procedimiento o funcion, segun sea el caso,con cualquier nombre, pero que tenga los mismo parámetros que tiene nuestro evento que queremos asignarle: Por ejemplo el evento OnGetText tiene como declaracion y parametro en mi caso:
Código Delphi [-]
procedure ZTable1CampoXGetText(Sender: TField; var Text: String;DisplayText: Boolean);
Entonces como todo evento en delphi es un Puntero a un Procedimiento o funcion,segun sea el caso; lo que se puede hacer es declarar nuestro propio Manejador de evento en este caso puedo creame un Procedimiento de ésta forma:
Código Delphi [-]
 Procedure Cambiar_Vista_de_Columna(Objeto: TField; var Texto: String; MostrarTexto: Boolean);
Si observamos la declaracion del procedimeinto "Cambiar_Vista_de_Columna" tiene la misma cantidad de parámetros y los mismos parametros que el evento OnGetText y tiene que ser así:
Ahora vamos a su implementacion:
Código Delphi [-]
procedure TForm1.Cambiar_Vista_de_Columna(Objeto: TField; var Texto: String; MostrarTexto: Boolean);
begin
   Texto:=Encryptar(Texto);//Aquí cambio el valor de mi varible texto por el valor cifrado 
end;
Ahora para asignarlo en tiempo de ejecucion sencillamente podemos hacerlo de la siguiente manera:

Código Delphi [-]
DBGrid1.DataSource.DataSet.Fields[3].OnGetText:=Cambiar_Vista_de_Columna;
Lo que estamos haciendo en la anterior linea de código es hacer que el puntero del evento OnGetText del cuarto campo de nuestro DataSet, apunte a la primer direccion de memoria del nuestro procedure "Cambiar_Vista_de_Columna", de esa manera tiene una direccion de memoria válida con lo cual Delphi ejecutará las lineas de código de nuestro procedimiento; es lo que comunmente se llama "Asignacion dinámica de Eventos", ésta linea la puedes poner justo antes de ejecutar el Script o sentencia SQL o simplemnete usar el evento OnCreate del formulario; por supuesto que tambien puedo anular la ejecucion del evento(en éste caso OnGetText) en el momento que yo quiera,con tan solo hacer:
Código Delphi [-]
DBGrid1.DataSource.DataSet.Fields[3].OnGetText:=Nil;// 
No sé si me he dejado entender, pero creo que con solo hacer eso puedes solucionar tu problema, sin estar recorriendo tu dataset, así como lo haces, cosa que lo veo no muy práctica ni óptima en éste caso.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 04-10-2010 a las 23:57:13.
Responder Con Cita
 



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
Error de Edicion con DBGrid chipcrazy Varios 1 06-11-2008 12:40:51
Edición de un DBGRID luxus Conexión con bases de datos 1 13-02-2007 11:34:26
DBGrid. Contenido de celda en edicion ManelC Varios 2 06-07-2006 23:01:18
Edicion DBGrid Caro Conexión con bases de datos 2 09-06-2006 18:02:26
DBGRID detectar fin de edicion de campo andrestsas Tablas planas 2 12-08-2003 17:11:02


La franja horaria es GMT +2. Ahora son las 10:47:39.


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
Copyright 1996-2007 Club Delphi