Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2004
Avatar de Repelus
Repelus Repelus is offline
Miembro
 
Registrado: feb 2004
Posts: 27
Poder: 0
Repelus Va por buen camino
Perdón por las negritas y los signos de exclamación. Desconocía el significado de eso. Lo de la prisa si que es cierto pero no quería ofender a nadie, pido disculpas una vez más.

Pero respecto a tu explicacion te diré que el formulario mdi padre si que está creado y es el formulario del menu principal, pues tiene asignada en la propiedad FormStyle el valor fsMDIForm y por lo tanto cuando en este formulario creo el formulario hijo no entiendo el porqué del mensaje de error.

Saludos.


Cita:
Empezado por jachguate
Hola Repelus.

quiero recomendarte en primer lugar la lectura de la guía de estilo de los foros (link en mi firma). No comprendo porque escribis todo el texto en negrita, pero para mi es igual que si escribieras todo en MAYUSCULAS, pues da la sensación que estas GRITANDO, ENOJADO o ALTERADO de alguna forma.

También el uso de palabras como AYUDAAAAAAAAA (con unos cuantos signos de admiración en el título) da una sensación de urgencia y exigencia que no es bien recibida por estos lares.

por último, lo que ocurre (el error es bien específico) es que cuando creas el formulario MDIChild no hay un MDIForm activo. Lo que debes hacer es crear el formulario MDIForm antes que cualquier MDIChild. (Windows no permite que estos sean huerfanos, pues siempre están contenidos en el espacio del padre...).

Hasta luego.

Responder Con Cita
  #2  
Antiguo 21-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Acabo de hacer una prueba, y he descubierto que Delphi se basa en el estilo del form principal para crear los formularios MDIChild. Si el form principal (Application.MainForm) no es MDIForm, no hay forma de crear MDIChild.

Código:
// de la unit Forms.pas

procedure TCustomForm.CreateWindowHandle(const Params: TCreateParams);
var
  CreateStruct: TMDICreateStruct;
begin
  if (FormStyle = fsMDIChild) and not (csDesigning in ComponentState) then
  begin
    if (Application.MainForm = nil) or
      (Application.MainForm.ClientHandle = 0) then
      raise EInvalidOperation.Create(SNoMDIForm);
       !!! no se puede crear si el MainForm no es MDIForm... 
        (solo para estos se crea un client handle)

Resulta que la propiedad MainForm es de solo lectura... por lo que tampoco es posible reasignarla en tiempo de ejecución.

De esta cuenta, que el form principal de tu aplicación debe ser la ventana MDIForm. Si queres validar el acceso al sistema, podes hacer una ventana normal, crearla y llamarla (con showModal) en el onShow del form principal (por ejemplo) y actuar dependiendo del resultado (mrOK=>el usuario es válido, otro valor, cerrar aplicación).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 21-02-2004
Avatar de Repelus
Repelus Repelus is offline
Miembro
 
Registrado: feb 2004
Posts: 27
Poder: 0
Repelus Va por buen camino
Gracias por tu ayuda amigo, lo intentaré de la otra forma, un saludo.
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


La franja horaria es GMT +2. Ahora son las 07:04:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi