Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Abrir desde un grid un campo Memo (https://www.clubdelphi.com/foros/showthread.php?t=12117)

ramonibk 06-07-2004 17:11:36

Abrir desde un grid un campo Memo
 
Bueno mi duda es la siguiente.

Tengo un TDBGrid en un form el cual esta ligado a una TB en la cual hay varios campos



ID.

Empresa.

Asunto.

Fecha.

Notas.



En el TDBGrid se muestran los todos los campos salvo el de Notas.

La manera que uso para ver el campo de notas es un Form.

Pero lo estoy llamando a trabes de un botón y poniéndole el código ID para poder localizarlo.



Bueno lo que me gustaría saber es como desde el Grid haciendo un doble toque en una celda puedo abrir el form Notas en el DataSet correspondiente.

roman 06-07-2004 17:36:36

Agrega las columnas al DBGrid con el editor de columnas (doble click sobre el grid) En la columna correspondiente al campo memo pones la propiedad ButtonStyle en cbsEllipsis. Al entrar a la celda aparecerá el botoncito '...' y ya sea dando click ahí o doble click sobre la celda se generará el evento EditButtonClick del DBGrid. En este evento abres tu formulario paa ver las notas.

// Saludos

ramonibk 06-07-2004 17:47:59

Si bueno pero como le paso al DataSet la nota en concreto que deseo visualizar.

De todas maneras soy bastante nuevo en esto y no tengo estudios de programacion. sino que lo estoy haciendo todo por libros y comparaciones.
por eso ruego que se me espliquen las cosas de manera sencilla o con ejemplos
Muchas gracias

roman 06-07-2004 17:56:08

Cita:

Empezado por ramonibk
Si bueno pero como le paso al DataSet la nota en concreto que deseo visualizar.

Es que la nota en concreto ya la tienes "seleccionada". Al entrar a la celda en custión el DataSet ya se coloca él mismo en el registro correspondiente. Por ejemplo, para probar yo puse el siguiente evento OnEditButtonClick:

Código Delphi [-]
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
  ShowMessage(Table1['notas']);
end;


De hecho, si en el formulario donde quieres mostrar las notas pones un DBMemo conectado al mismo dataset, el dbmemo mostrará automáticamente las notas adecuadas.

// Saludos

ramonibk 06-07-2004 18:20:25

Si esto parece que me funciona.
y doy las gracias por la ayuda.
la cual me biene muy bien por que de esta manera hay usuarios que no podran tener acceso mas que a la lectura
de todas maneras mi idea era mas bien poder abrir el fotmulario con el cual se introducen las notas.
en este caso alguin podria decirme como hacerlo.

roman 06-07-2004 18:26:35

Lo de ShowMessage era sólo un ejemplo. En ese mismo evento, en lugar de ShowMessage abres tu formulario:

FormularioDeNotas.Show

Y como ya te dije, si en FormularioDeNotas tienes un DBMemo enlazado al mismo DataSource que el DBGrid entonces ya no tienes que hacer más nada. Al ábrirse FormularioDeNotas el DBMemo automáticamente mostrará las notas.

// Saludos

ramonibk 06-07-2004 18:53:53

Parece que no funciona cuando lo que llamo es um form.
lo que estoy pensando es que si puede ser devido a que cada form tira de sus propias tablas.
me explico: cada uno de los form que tengo en el prollecto esta con tirando de una tabla que se encuentra en el mismo form.
entonces me imajino que lo que tendre que hacer es pasarle los parametros a la DataSource del Form de notas.
o bien hacer que le form de notas tire de la tabla del form princimal.

marcoszorrilla 06-07-2004 19:01:41

Lo que te dice Román tiene que funcionar perfectamente, lo que ocurre es que en este segundo form debieras hacer un "Uses" del form desde el cual llamas para poder vincular el control DbMemo a la Tabla ubicada en dicho formulario.

Incluso sin utilizar un segundo formulario te puede funcioanar, colocas el DbMemo sobre la rejilla y le pones la propiedad visible a falso cuando pulses en el botón de elipsis lo haces visible y arreglado.

Un Saludo.

ramonibk 06-07-2004 19:18:05

Si pero como se genera un User del form ????

marcoszorrilla 06-07-2004 19:28:25

No es un User sino indicarle que vas a utilizar el otro Form para leer datos de él.

File - Use Unit. Esto lo haces desde el formulario en que vas a presentar el campo Memo, para poder vincularlo con la tabla que está en el formulario anterior.

Aunque si haces doble clic en el Ttable que tienes en el formulario anterior y eres capaza de arrastras el campo memo al nuevo formulario esto quedaría hecho automáticamente.

Un Saludo.

ramonibk 07-07-2004 20:59:57

Bueno. Después de muchas pruebas.

Por fin he visto lo que pasaba.

o por lo menos he conseguido que funcione.

lo que sucede es que si en cada form hay una tabla. le tienes que pasar los datos al DataSet que la controla. por eso no me funcionaba.

Pero si ambos están form están tirando de la misma tabla el enlace es automático y no da ningún problema.


La franja horaria es GMT +2. Ahora son las 22:51:41.

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