FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Herencia visual y variables públicas
Amigos, soy novato en Delphi y quisiera hacerles una pregunta, genero dos formularios base donde en cada uno de ellos pongo una programación base que utilizaré.
Luego de uno heredo visualmente los formularios modales y del otro heredo visualmente los formularios no modales. El problema se suscita cuando quiero acceder a por ejemplo un objeto TEdit de un formulario desde otro formularios. Pongo el formulario que deseo acceder en el use de la unidad y luego cuando le asigno un valor al TEdit: Form1.edit.text := valor curiosamente este edit no recibe el valor que asigno, es como si no hubiese asignado nada. Cosa que no me sucede cuando trabajo con formularios no heredados. ¿Alguien me puede decir que estoy haciendo mal? |
#2
|
|||
|
|||
Necesitas dar un poco más de información, por ejemplo, ¿cómo creas los formularios? Si usas Form1 := TForm1.Create(Application) no sé de donde viene el problema pero si usuas TForm1.Create(Application).Show el problema es que Form1 es nil, no puedes referenciarlo mediante la variable pública.
mmmmhhh no sé si me he explicado. |
#3
|
|||
|
|||
Es justamente lo que hago, ¿cómo puedo arreglar ese problema?
|
#4
|
|||
|
|||
Hola...
Pues así como lo explicas, la verdad no se te puede ayudar mucho... Si pones algo de código tal vez podramos ver mejor donde está tu problema... Saludos... |
#5
|
|||
|
|||
Hola...
¿Estás seguro que Form1 es una variable que apunta al formulario que deseas? Ahora, algo que yo hago cuando quiero usar formularios a los que les mando valores para mostrar es crear propiedades públicas que hagan esa función:
Así ya puedo hacer algo como:
Espero te sirva... Saludos... |
#6
|
|||
|
|||
Esta es la forma como creo el formulario:
class procedure Tf_sName.MostrarVentana(ATag : Integer); var i : Integer; f : TForm; begin LockWindowUpdate(Application.MainForm.Handle); try for i := Screen.FormCount - 1 downto 0 do begin f := Screen.Forms[i]; if(f is Self) then begin if(f.WindowState = wsMinimized) then f.WindowState := wsNormal; f.BringToFront; Exit; end; end; f := Create(Application); f.Tag := ATag; f.Show; finally LockWindowUpdate(0); end; end; |
#7
|
|||
|
|||
Hola...
Cita:
Así que si haces algo como Form1.Edit1.Text := Valor, obviamente no va a pasar nada (bueno si, un error de violación de memoria )... Por cierto, cuando pongas código usa las etiquetas [ DELPHI ] [ /DELPHI ] (sin los espacios en blanco) para que este se vea mejor, fijate en la diferencia entre el código en el quote de este mensaje y el que tu pusiste... Saludos... |
#9
|
|||
|
|||
Hola...
Esto que comentas, si bien puede solucionar tu problema, no es muy recomendable hacerlo. Lo mejor sería que el método de clase sea la que devuelva ese valor:
De esta forma puedes hacer algo como:
Saludos... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Conexion Remota (IP PÚBLICAS) | JAI_ME | Varios | 5 | 20-05-2008 23:11:00 |
Problema herencia visual en form | diegofhernando | OOP | 8 | 19-05-2008 16:41:33 |
Herencia visual en formularios... | diegofhernando | OOP | 4 | 18-04-2008 10:54:05 |
Herencia visual con TFrames y otros asuntos | walrus | OOP | 6 | 19-09-2004 02:38:12 |
No se ven controles en herencia visual | Sirkius | OOP | 10 | 07-06-2004 22:25:32 |
|