Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Acceder a los componentes de ventanas MDIChild

Hola amigos del Club, es un placer saludarles y hacerles una consulta.

Les comento: Soy novatisimo en esto de ventanas MDIChild y ahi creo que esta el problema jeje.

Como puedo acceder a un componente de la ventana hijo desde el padre? este codigo lo encontre en la web pero no me funciona:

Código Delphi [-]
void __fastcall TForm_padre::Button_archivoabrirClick(TObject *Sender)
{

TForm * formularioactivo= static_cast(ActiveMDIChild);
try {
  formularioactivo->ComboBox_hola->Text="HOLA";
} catch (...) {
ShowMessage("ERROR");
}
}

Disculpen si es tan obvia la pregunta pero la ignorancia no discrimina y me golpeó duro porque ya intente mil cosas y no me funciona.

Gracias amigos y un saludo.

Adicional: Lo estoy programando en C++ sin embargo, entiendo mas o menos el Delphi.
Responder Con Cita
  #2  
Antiguo 08-12-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En delphi (a lo novato) ya que yo ni C++ ni C-- con suerte un poquito de delphi:
El boton que llama al form hijo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
   Form2:=TForm2.Create(Self);
   try
    Form2.FormStyle:= fsMDIChild;
    Form2.Edit1.Text:= 'Hola';
    Form2.Top:= 0;
    Form2.Left:= 426;
    form2.Height:= 426;
    Form2.Width:= 426;
    Form2.Show;
    finally
   //
    end;
end;
Lo crea, lo define como mdi, inserta el texto en el edit, define el tamaño y posicion, lo muestra.

En el form MDI en el boton de cerrar:
Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
begin
  Form2.FormStyle:= fsNormal;
  Close;
end;
Lo define como form normal, lo cierra.

Asi se puede volver a crear las veces que se quiera.
Saludos
Edito: Aquí hay buena información de esto.
__________________
Siempre Novato

Última edición por Caral fecha: 08-12-2011 a las 02:34:33.
Responder Con Cita
  #3  
Antiguo 08-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Diego.
Cita:
Como puedo acceder a un componente de la ventana hijo desde el padre?
Respecto a esa pregunta puntualmente, una forma puede ser:
Código:
{
TComboBox *cb = static_cast<TComboBox*>(ActiveMDIChild->FindComponent("ComboBox_hola"));
  cb->Text = "HOLA";
...
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 08-12-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Conocimiento puro :D

Gracias amigos por contestar a mi Batiseñal, excelente aporte a mis conocimientos son los dos comentarios hasta ahora; solamente que:

Imaginen: tengo tres MDIChild ya creadas, y deseo acceder a los componentes de la que este activa (ActiveMDIChild creo que se usa algo así); por lo tanto: muy agradecido estimado Caral ahora tengo algo màs en cuenta sin embargo el método que me enseñas no puedo utilizarlo porque es para ventanas que vas a crear en ese momento. En cuanto pueda pruebo las dos técnicas y posteo para retroalimentar.

Gracias amigos ecfisa y Caral es bueno contar con maestros que les guste enseñar.
Responder Con Cita
  #5  
Antiguo 12-12-2011
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Al formulario Hijo, solo tienes que indicarle quien es el padre por medio de la propiedad "Parent", después cuando quieras usarlo solo tienes que acceder a esta propiedad para obtener el formulario padre.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #6  
Antiguo 12-12-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Cita:
Empezado por PepeLolo Ver Mensaje
Al formulario Hijo, solo tienes que indicarle quien es el padre por medio de la propiedad "Parent", después cuando quieras usarlo solo tienes que acceder a esta propiedad para obtener el formulario padre.
Hola, gracias por responder. No encuentro la propiedad Parent en el Object Inspector; me podrias decir donde localizarla? Gracias por tu ayuda!
Responder Con Cita
  #7  
Antiguo 13-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Diego.

La propiedad Parent del form especifica que control contiene al form. No figura en el Object Inspector, pero podés acceder a ella por código.

A modo de ejemplo MDI crea dos forms (frMDIForm y frMDIChild), quitá el segundo de Project->Options->Forms->Auto-create forms. En la propiedad FormStyle del primero pone fsMDIForm y en la del segundo fsMDIChild y en ambos un TButton.

frMDIForm:
Código:
void __fastcall TfrMDIForm::btnCallChildClick(TObject *Sender)
{
  TfrMDIChild *F = new TfrMDIChild(this);
  F->Parent = this;
}
frMDIChild:
Código:
void __fastcall TfrMDIChild::btnChangeCaptionClick(TObject *Sender)
{
  TForm *F = static_cast<TForm*>(Parent);
  F->Caption = "NUEVO CAPTION EN frMDIForm";
}
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 13-12-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
De una cosa si estoy seguro:
No me gusta C ++ para nada
No lo _
Código:
Void
{ a usar "Nunca"  }

Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 16-12-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Un saludo

Cita:
Empezado por Caral Ver Mensaje
Hola
De una cosa si estoy seguro:
No me gusta C ++ para nada
No lo _
Código:
Void
{ a usar "Nunca"  }

Saludos
Jaja no es cosa de gustos, ojalá fuera así
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
acceder a los controles de otro formulario MDIChild!! _CALI Varios 1 04-12-2009 22:00:30
Menu Ventanas - MDIChild JXJ Varios 4 09-02-2008 13:45:54
Cerrar todas las Ventanas MDIChild gluglu OOP 11 18-04-2007 20:12:56
Ventanas MDIChild y Normal brandolin OOP 2 15-02-2005 04:29:34
Problema con ventanas MDIChild rafadrover Varios 2 07-08-2003 08:39:09


La franja horaria es GMT +2. Ahora son las 08:55:35.


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