Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2006
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Me Da este error y no se como quitarlo

Hace poco puse un metodo para que los formularios queden en la barra de tareas, sacado de trucomania y desde hace poco me da el siguiente hint, y el formulario principal cuando le doy a un combox se oculta, como si hubiera echo un click de minimizar y luego se vuelve a maximizar el formulario.

Esta es la llamda que tengo

procedure CreateParams(var Params: TCreateParams); override;


mas abajo tengo el formulario con el metodo:

procedure TFPass.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent := GetDesktopWindow;
end;


Y en el hint me da el siguiente error desde entonces no va bien ...

verriding virtual method 'TFPass.CreateParams' has lower visibility(private) than base class 'TForm'(protected)
Responder Con Cita
  #2  
Antiguo 05-07-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Me encontré una vez con un error similar, y había sido un despiste al declarar la función en la sección inadecuada, ¿dónde tienes la declaración del procedimiento?
Responder Con Cita
  #3  
Antiguo 05-07-2006
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Ese mensaje de compilación no es un error, sino un comentario (hint). Una advertencia de menor importancia que te indica que el método redefinido CreateParams fue declarado en una sección de menor nivel de acceso (Private) de TFPass, que el método CreateParams heredado de la clase padre TForm (el cual está declarado en la sección protegida —Protected—).

Cuando se redefine un método o propiedad no es posible forzarlo a que pierda visibilidad respecto al nivel de acceso que tiene en la clase padre. Es decir, si declaras un miembro de clase como protegido, redeclararlo en una clase descendiente como privado no lo vuelve privado (sigue siendo protegido).

Lo correcto es incluir una sección Protected en la clase TFPass, con la redefinición del método en cuestión.

Un abrazo público.

Al González.
Responder Con Cita
  #4  
Antiguo 07-07-2006
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Vale ya he quitado el aviso de HINT cambiando poniendolo en la zona privada como protegido. Pero sigue haciendo cosas raras, hago click en un combox y el Form donde esta desaparece, quito el metodo Create Params del form y ya funciona correctamente el combox es de las TMS, antes me funcionaba perfectamente puede ser que el compilador ahora se me ralle.
Hago click en el combox de tipo dato, aparece un calendario pero desaparece el form, selecciono la fecha y ya vuelve a aparecer, algo pasa con el Create Params y mi manera de implementarlo.

Código Delphi [-]
 
private
    protected
     procedure CreateParams(var Params: TCreateParams); override;
 
procedure TFFicha.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  Params.WndParent := GetDesktopWindow;
end;

Alguien tiene alguna sugerencia porque con el Create Params se ralla la visualización. Gracias.
Responder Con Cita
  #5  
Antiguo 07-07-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Lo que estas haciendo es modificando la forma de crear la ventana, quizás lo que necesitas es modificar la creación del ComboBox o de la lista desplegable de ese combo.

No conozco los TMS, pero casi seguro que estas usando clases interpuestas ¿no?

Convendría que pusieras el código completo de la declaración del Form y del Combo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 07-07-2006
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
A ver lepe yo con el combox no hago nada, es un combox de tipo fecha que añadi de las Tms, entonces queria que mi formulario se minimizara en la barra de tareas, añadi lo de Create Params a cada formulario y nada todo iba bien, ahora añadi simplemente un nuevo campo y me pasa lo siguiente en ese tipo de datos. Se me oculta el formulario cuando abro el combox y una vez selecciono la fecha, el formulario vuelve a ser visible. Las unicas declaraciones echas son esas que ves. Alguna idea al respecto?. No incluyo el codigo porque lo unico importante es eso, he aislado el error, pero no se como arreglarlo.

La declaracion del combox es

EFI: TPlannerDatePicker;

Declaracion del Formulario:

TFFicha = class(TForm)

Saludos y gracias Lepe.

Última edición por serhasae fecha: 07-07-2006 a las 13:53:55.
Responder Con Cita
  #7  
Antiguo 07-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Vale ya he quitado el aviso de HINT cambiando poniendolo en la zona privada como protegido.
No; lo que has hecho es situar la declaración del procedimiento dentro del bloque "protected". No es que este esté dentro del bloque "private": son bloques distintos y que no se "anidan".

Por lo demás, no sé si tendrá que ver o no, pero, esto es lo que se encuentra en la ayuda de Delphi acerca del método "CreateParams" en el contexto de la clase "TCustomForm":

Cita:
The CreateWnd method calls CreateParams to initialize the parameters it passes to CreateWindowHandle. TCustomForm overrides CreateParams to customize the way the form creates its Windows representation after calling the inherited method. You should never need to override this method in the context of a form class.

The fields of the Params parameter become the parameters to a call to the CreateWindowEx OS function.
Sé que no te digo mucho con esto, pero, tal vez alguien que entienda más pueda referir porqué en la propia ayuda de Delphi se indica que nunca sería necesario sobreescribir dicho método en el contexto de una clase "TForm".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 07-07-2006
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Si esta claro que Private y Protected no estan anidados, pero sino redefines el medoto CreateParams con el override, entonces no se minimizaria el formulario en la barra de tareas, esto lo saque de un Post de Roman, lo que no entiendo es porque se ralla la aplicacion, a ver si MarcosZorrilla, Dephiar o Roman me pueden explicar que demonios esa pasando. Gracias dec por tus observaciones.
Responder Con Cita
  #9  
Antiguo 09-07-2006
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Estoy mirando y no veo nada incorrecto en la declaracion. Podria declarar el combox calendario en otro lado para evitar ese comportamiento raro. A ver si alguien me echa un cable. Saludos.
Responder Con Cita
  #10  
Antiguo 15-07-2006
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Joo nadie me puede dar alguna idea, voy perdido y no se que ha pasado. Gracias.
Responder Con Cita
  #11  
Antiguo 15-07-2006
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Poder: 20
serhasae Va por buen camino
Solucion

Mala implementacion de Create Params lo vi en un post que discutia Roman con otro usuario y decian que era mejor añadir una segunda linea al create params, la quite y ya quite el error.

Debe de quedar asi el create params

Código SQL [-]
inherited;
  Params.ExStyle := WS_EX_APPWINDOW;
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
Como resuelvo este error "Temporary table resource limit" fredy_boots Conexión con bases de datos 3 29-10-2014 12:53:01
Como saber el origen de este error.. n3mohack Varios 2 10-02-2006 21:05:28
Error 10093 al ver un informe - Que error es este? URBANO Impresión 1 03-02-2006 18:44:39
¿Por qué me da este error?Error creating cursor manejador nuri SQL 2 01-08-2005 17:30:28
como resuelvo este error? Ryu Internet 3 18-04-2005 19:10:39


La franja horaria es GMT +2. Ahora son las 04:20:42.


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