Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Como pasar un parametro?

Buenas... les cuento q este es un problema q lo tengo resuelto parcialmente con una solucion muy poco efectiva, por lo q queria saber si a alguien se le ocurre alguna manera mejor de hacerlo...

Esto es lo q tengo... una aplicacion MDI:

Formulario Principal: Contiene una tabla q se conecta a una base paradox...

Dicha tabla contiene: Apellido, Nombre y Edad de una persona. Al hacer doble clic en un registro de ella, esta tiene q abrir el form hijo y pasarle como parametro la cadena: "apellido+nombre+edad".

Formulario Hijo: Abre el archivo con el nombre: "apellido+nombre+edad", y muestra su info, lo hace desde el evento "oncreate". Contiene ademas un Label quien conservara el valor del nombre del archivo, ya q se pueden abrir varias personas al mismo tiempo.

El problema: Cuando abro este formulario, lo q quiero hacer es cargar el valor al label, para luego poder usar este valor en otros botones, sin necesidad de estar creando una variable global, q es como lo estoy haciendo... ya q por ejemplo puedo abrir varias personas al mismo tiempo, y si abro dos personas al mismo tiempo esta variable global tomara el valor del ultimo abierto...

Mi solucion:

Código Delphi [-]
    
   with tfcontactos.Create(application) do
    begin
      name := apellido+nombre+edad;
      top := 0;
      left := 0;
      label1.Caption := table1.FieldValues['Apellido'] + ' ' + table1.FieldValues['Nombre'] + ' ' + inttostr(table1.FieldValues['Edad']);
      show;
    end;
 
//Doy un valor a una variable global
varglobal:= apellido+nombre+edad;

Y en el oncreate del Formulario Hijo:

Código Delphi [-]
   AssignFile(archivo, 'Ruta\' + varglobal);

Y luego cada vez q quiero volver a trabajar sobre el archivo uso el valor del label y solo una vez, en su creacion utilizo el valor de la variable global, ya q luego si abro otra ventana esta pierde su valor y toma el del ultimo contacto seleccionado.

Mi pregunta: Existe alguna forma mejor de hacerlo sin estar usando una variable global? es decir alguna forma de hacer q el oncrete me tome directamente este valor?

Desde ya muchisimas gracias!

{Saludos}
Responder Con Cita
  #2  
Antiguo 18-08-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 17
Khronos Va por buen camino
Usar variables globales no es malo, de hecho ayudan mucho. Como no das muchos mas datos yo usaria esto:

Código Delphi [-]
 
//en el oncreate metes esto...
 
AssignFile(archivo, 'Ruta\' + FormPrincipal.Label1.caption);

espero que te sirva, si no puedes seguir con las variables globales porque a veces no hay mas remedio.

Salu2
Responder Con Cita
  #3  
Antiguo 18-08-2007
Avatar de The_Duke
The_Duke The_Duke is offline
Miembro
 
Registrado: abr 2006
Ubicación: Republica Dominicana
Posts: 48
Poder: 0
The_Duke Va por buen camino
QUe tal seria si la varible global las manejas como un array ose asi

Código Delphi [-]
//Doy un valor a una variable global
varglobal[x]:= apellido+nombre+edad;
inc(x);

mas omeno algo asi para no perder la informacion
Responder Con Cita
  #4  
Antiguo 18-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Gracias a los dos por contestar... y veamos... le explico... no pienso q usar variables globales sea malo... el problema es q puedo abrir varios formularios y por ejemplo si con el primero q abrí decido trabajar con un archivo, automaticamente la variable global tomaria el nombre del ultimo formulario abierto... se entiende?

En cuanto a la solucion del label es lo mismo q usar una variable global, y es esa la solucion q estoy usando en este momento...

Si habia pensado en hacer un arreglo de strings, y digamos q es una buena solucion, pero me gustaria saber si hay alguna forma de asignarle por ejemplo, el valor apellido+nombre+edad a un label dentro del formulario hijo antes de q se ejecute el evento oncreate...

Muchas Gracias por contestar!

{Saludos}
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
pasar como parámetro nombre de un componente joanajj Varios 3 04-07-2007 23:25:49
Pasar SQL como parametro veloki Impresión 7 16-04-2007 16:28:37
Pasar como parametro un objeto 'calculado' gluglu Varios 2 20-07-2006 11:26:30
pasar como parametro arrayq nenufer Varios 3 27-04-2006 17:43:13
Pasar como parametro el where en una funcion cso2000 MS SQL Server 2 15-02-2005 03:49:47


La franja horaria es GMT +2. Ahora son las 06:36:58.


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