FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema la crear un nuevo Form
Hola a todos. Tengo una duda, cuando creo un nuevo form no me sale los objetos que contiene(un webbrowser). Solo me sale el form sin nada. Lo que quiero es crear el form con webbrowser y hacer que navege hacia una dirección. gracias a todos
|
#2
|
|||
|
|||
En principio suena a que no estás creando un form del tipo que toca... sino que creas un TForm sin más.
¿Por qué no pons un ejemplo de como lo haces? |
#3
|
|||
|
|||
Lo hago así:
Pagina:= TPagina.Create(self); Pagina.BorderStyle:= bsToolWinSize; Pagina.show; Ahora lo que quiero es cargar el WebBrowser que esta en el form pagina hice esto, pero no funciona: pagina.w.create(self); pagina.w.show; |
#4
|
||||
|
||||
Incluye por ejemplo en el evento OnCreate de tu form, a donde tiene que ir:
Código:
webbrowser1.Navigate('http://www.yahoo.fr'); Un Saludo. |
#5
|
||||
|
||||
si w es ya un WebBrowser, la llamada a w.create está de mas.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#6
|
|||
|
|||
¿Por que sobra w.create?. No lo entiendo. Mi problema es que el webbrowser no sale en form. No se por que?
|
#7
|
||||
|
||||
si has puesto un WebBrowser sobre tu form en tiempo de diseño, y le has llamado w, cuando creas una instancia de ese form se creará también w.
Por eso sobra la llamada a w.Create, y no solo sobra, sino convierte a tu aplicación en un Hoyo Negro de recursos. Además, si lo creas por código y el WebBrowser deriva de TControl (cosa que no se), lo que te falta es asignarle el parent. Digamos Código:
w := TWinControl.Create(Forma1); w.Parent := Forma1;
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
|||
|
|||
Gracias por el codigo, pero no me lee el parametro "formal".Que significa?
|
#9
|
||||
|
||||
Es una suposición.
Veo que debieras utilizar pagina. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#10
|
|||
|
|||
sigue igual
Utilizo delphi 7.0, pero me dice con el parent el siguiente error en el editor de codigo: (Cannot assign to read-only propertory). Y con la otra linea salta un error de compilación el tipico: (No se puede compilar unit1....). Gracias por vuestro tiempo
|
#11
|
||||
|
||||
Te dije que nunca he trabajado con TWebBrowser?
Creo que debes buscar un poco en la ayuda también. Si te sirve, mirá si tiene un constructor Llamado CreateParented o alguna otra forma de asignar el parent. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#12
|
||||
|
||||
Hola,
lo que te dice de que no puede asignar el parent es porqué el control TWebBrowser tiene una propiedad Parent que tiene un significado diferente. Para poder asignar la propiedad Parent de toda la vida necesitas hacer un cast. Código:
TWinControl(MiWebBrowser).Parent:= Objeto; Saludos. |
#13
|
|||
|
|||
Lo que hago es lo siguiente:
procedure Tpagina.WNewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool); begin If (publicidad = True) then Cancel:= true; Pb.EstPublicidad.Caption:= 'Publicidad desactivada, activela con el botón' ; NuevaVentana:= True; If (publicidad = false) then Cancel:= false; Pb.EstPublicidad.Caption:= 'Publicidad activada, desactivela con el botón'; end; procedure Tpagina.WBeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin PubDireccion:= URL; If (NuevaVentana = True) Then Begin {Parametros Pagina Nueva} Pagina:= TPagina.CreateNew(self); Pagina.BorderStyle:= bsSizeToolWin; Pagina.Show; Pagina.W.Show; {Hasta aqui funciona, Ahora con el webbrowser} TWincontrol(w).Create(pagina); TWinControl(w).Parent:= pagina; end; end; procedure Tpagina.FormCreate(Sender: TObject); begin If (NuevaVentana = true) Then W.Navigate(PubDireccion); end; Este el codigo que tengo escrito. pero me sigue igual he seguido vuestros consejos pero sigue igual.No se que puedo hacer Gracias por vuestro y por ser tan pesado, es que estoy tan cerca P.D: Lo que quiero es que mi aplicación habra las ventanas de publicidad que abre en el internet explorer, que me las habra en la ventana de navegador que tengo en mi aplicación |
#14
|
||||
|
||||
Veo que aún llamas a create?
Porque?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#15
|
|||
|
|||
entonces como creo el nuevo form?
si no es con el metodo create, con que lo puedo crear? siento no contestarte antes pero estaba trabajando |
#16
|
||||
|
||||
Me contestaste con otra pregunta. Creo que te hará bien profundizar un poco en la programación orientada a objetos y específicamente en el punto de vista de Object Pascal.
Create regularmente se llama directamente con la clase y se asigna a una variable o a un miembro de otra clase. Me parece que vos lo llamás directamente sobre un miembro que seguramente ya está creado. Es mi duda. Quien deberia saber que quiere hacer y cual es la idea sobre la que lo está haciendo sos vos. Hasta luego,
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#17
|
|||
|
|||
Si el form lo tienes creado en tiempo de diseño, con el webbrowser incluido, y no es "Auto-Create" (es decir no esta incluido en los forms "Auto-Create" de Project/Options/Forms), y está incluido en el uses del form principal, puedes crearlo desde el form principal en tiempo de ejecución y pasar el control hacia él asi:
Código:
Application.CreateForm(tMiForm, MiForm); MiForm.Show; Código:
procedure tMiForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; Salu2. |
|
|
|