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 02-03-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Hacer público un método oculto

Estoy intentando derivar de un TrxLookupedit (unidad RXLOOKUP.PAS) para hacer publico un metodo:
ShowPopup(Origin:Tpoint)

Lo que deseo hacer es añadirle la propiedad AutoDropDown, pero como no tengo ni idea, he pensado mejor hacer publico ese método.

El problema que tengo es que la lista se queda indefinidamente abierta. ¿ Por qué ocurre ? o ¿ como se puede subsanar ese desaguisado?

el código que tengo es este: (perdonad si hay "burradas", pero no tengo ni idea de diseño de componentes)
Código:
type
  TRxLookupEditSH = class(TRxLookupEdit)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    procedure ShowPopup();
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure TrxLookupEditSH.ShowPopup();
var p:TPoint;
begin
// seguro que hay una forma mejor....
p := Self.ClientOrigin;
p.Y := p.Y+ Self.ClientHeight;
Dec (p.X, BorderWidth +2);
Inc (p.Y,BorderWidth *2+2);

inherited ShowPopup(p);

end;

procedure Register;
begin
  RegisterComponents('RX DBAware', [TRxLookupEditSH]);
end;

end.
gracias Mil.
Saludos
Responder Con Cita
  #2  
Antiguo 02-03-2004
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
¿ShowPopup es un método de la clase base? En tal caso hace falta la directiva override. Por otro lado, normalmente es conveniente llamar al método heredado antes de nuestro código propio.

// Saludos
Responder Con Cita
  #3  
Antiguo 02-03-2004
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
Me corrijo, ya sé porque intentas poner inherited al final. ¿Por qué no nos dices exactamente lo que deseas hacer? Hablas de hacer público un método pero también lo amplías. ¿Cuál es el efecto que deseas?

// Saludos
Responder Con Cita
  #4  
Antiguo 02-03-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
gracias por el interés, roman, y sobre todo por la rapidez.

lo que deseo es que al escribir en el rxLookup se despliegue la lista automaticamente, pero creo que es muy complicado, por eso intentaba hacerlo publico.

el ShowPopup de la clase base viene como:
Código:
procedure TRxLookupEdit.ShowPopup(Origin: TPoint);
begin
  TPopupDataWindow(FPopup).Show(Origin);
end;

el show que llama es este:

procedure TPopupDataWindow.Show(Origin: TPoint);
begin
  SetWindowPos(Handle, HWND_TOP, Origin.X, Origin.Y, 0, 0,
    SWP_NOACTIVATE or SWP_SHOWWINDOW or SWP_NOSIZE);
  Visible := True;
end;
por tanto necesita saber donde se ha de mostrar la lista desplegable, intento alinearla a la izq del RxLookupEdit.

Saludos
Responder Con Cita
  #5  
Antiguo 03-03-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Pido disculpas por adelantado, estaba espeso, y agradezco vuestra paciencia.

Para unificar criterios, vamos a dividir un Combobox en 3 partes:
- a la parte de un combobox donde se puede escribir, llamésmosle Editor
- a la lista desplegable, simplemente Lista
- al boton para desplegar la lista, boton

En un RxLookupEdit, pulsas con el raton en el boton, y la lista se despliega, a continuacion, escribes letras y las envia al Editor manteniendo la lista desplegada).Esto es lo que busco, pero que al entrar el foco en el editor, lo primero que haga es desplegar la lista.

El RxLookupEdit tiene una propiedad ClickKey (Tshortcut), ¿alguien sabe como enviarsela desde código ?

Antecedentes:
----------------
He pasado por Trucomania, a ver si habia forma de desplegar la lista con un SendMessage, pero el RxLookupEdit se resiste, incluso he visto esto por estos foros:
Código:
TRxDBLookupCombo(Screen.ActiveForm.ActiveControl).DropDown;
pero no sirve con el RxLookupEdit.

El hecho de querer usar un RxlookupEdit, es porque es el único que permite escribir en el Editor y tiene Lookup. El resto de controles Lookup que veo en delphi, no deja poner el cursor dentro del Editor. Es cierto que si tecleamos, las teclas se procesan, pero no se vé las teclas que se pulsan.

Gracias de nuevo.
Responder Con Cita
  #6  
Antiguo 03-03-2004
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
Revisando la componente me parece que el método que buscas es PopupDropDown.

// Saludos
Responder Con Cita
  #7  
Antiguo 03-03-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Hecho, publicado el método y funciona.

Ese método es uno de los que habia mirado, pero la verdad no veía que fuese el que necesitaba

Muchas Gracias, me has sacado de un apuro muy gordo.
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


La franja horaria es GMT +2. Ahora son las 20:47:06.


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