Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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 23-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo no estaría tan seguro de que ese sea el problema, pues yo hice la prueba y no pude reproducir el error. Pero por otra parte, el error se produce cuando se hace una operación que requiere que la ventana del padre ya esté creada. Por ello el método más adecuado sería CreateWnd y no Loaded.

// Saludos
Responder Con Cita
  #2  
Antiguo 24-01-2007
SyncReuter SyncReuter is offline
Miembro
 
Registrado: ene 2007
Posts: 26
Poder: 0
SyncReuter Va por buen camino
Hola nuevamente,

Gracias por responder tan pronto, les cuento lo siguiente: De lo que realmente estamos seguro aca es que el error sale unicamente en tiempo de diseño. Por que? El componente que estoy creando se llama TPrcMonthCalendar y tengo otro componente que se llama TPrcDateEdit que es un TEdit con un boton insertado en el interior del control. Cuando el usuario hace clic en el botón la clase PrcMonthCalendar se visualiza sin problemas. El drama esta unicamente al momento de insertar el calendario dentro de la Form. ¿Se entiende?

Hare las pruebas pertinente con CreateWnd y Loaded. Es importante señalar que el drama es unicamente con los componentes TLabel NO asi con los botones de navegacion (PriorMonth, PriorYear.....etc) y los botones de control del calendario (BtnOK, BtnCancel) y por supuesto los botones correspondientes a los dias del mes.

Ahora me pondre manos a la obra y colocar la llamada CreateObjects en CreateWnd o Loaded.

Muchas gracias por su tiempo, saludos
Responder Con Cita
  #3  
Antiguo 24-01-2007
SyncReuter SyncReuter is offline
Miembro
 
Registrado: ene 2007
Posts: 26
Poder: 0
SyncReuter Va por buen camino
Bueno aqui estamos de nuevo. Les cuesto. Agrege el siguiente procedimiento a la clase en la sección protected

Código Delphi [-]
Procedure CreateWnd; Override;

con el siguiente codigo:

Código Delphi [-]
procedure TPrcMonthCalendar.CreateWnd;
begin
  inherited;
  AjustWH;
  CreateObjects;
end;

...Las etiquetas se crearon de la siguiente forma:

Código Delphi [-]
x:=5;
  y:=21;

  for i:=1 to 7 do
    begin
      FLabD[i]:=TLabel.Create(Self);
      with FLabD[i] do
        begin
          Name:='Lab'+IntToStr(i);
          FLabD[i].Parent:=Self;
          Caption:=CA_D[i];
          AutoSize:=True;
          Alignment:=taCenter;
          Transparent:=True;
          Left:=x;
          Top:=y;
          Width:=21;
          Height:=13;
          inc(x, Width + 2);
        end;
    end;

Ahora todo funciona a la perfección . Para terminar debo señalar lo siguiente. Al momento de alterar las propiedades de las etiquetas y botones internos del componente se producia un error grave en delphi, observando la clase completamente me doy cuenta que tenia un procedimiento dentro de Paint que alteraba las propiedades de las etiquetas y botones la cual es necesario para el cambio de estilo del calendario, entonces...para alterar las propiedades (utilizando For... para recorrer el array) coloque una bifurcación if..then preguntando si el elemento contenido en el array era <> a nil... como lo indico en la fracción de codigo:

Código Delphi [-]
for i:=1 to 42 do
    if FBtnD[i]<>nil then
      with FBtnD[i] do
        begin
          GetBtnStateData(TD_MONTHCALENDAR_DM_NORMAL_BSTATE, StateNormal);
          GetBtnStateData(TD_MONTHCALENDAR_DM_FOCUS_BSTATE, StateFocus);
          GetBtnStateData(TD_MONTHCALENDAR_DM_DISABLED_BSTATE, StateDisabled);
          GetBtnStateData(TD_MONTHCALENDAR_DM_DOWN_BSTATE, StateDown);
        end;

...con ello ahora el control se puede colocar dentro de la form sin causar problema alguno...al = que al momento de quitarlo.

La destrucción de los controles internos se genero justo antes de ejecutar el inherited Destroy;



Bueno no me queda mas que AGRADECER a cada uno de ustedes por sus lineas. Desde Chile reciban un gran abrazo.

GRACIAS!!!
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
error con el parent window antonio peña Varios 1 04-10-2006 10:18:50
QReport has no parent window david duarte Impresión 1 19-01-2006 15:06:07
Ayuda: Control Has No Parent Window pelaorb68 Varios 10 20-12-2005 20:36:26
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51
Opciones de Parent pepelu1975 OOP 7 26-05-2004 18:35:36


La franja horaria es GMT +2. Ahora son las 17:09:25.


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