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 16-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Seoane: ¿Cual es la teoría de ese código?

Se supone que todos los paneles tendrán el parent asignado (el mismo padre), significa que al cambiar su ZOrder, se cambia de sitio en el array Controls??

Según he visto en la VCL, BringtoFront, asigna la propiedad ZOrder a True, por aquí si vería sentido deducir cual está al principio, pero por Controls..... me he perdido.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 16-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
La teoria Lepe es la siguiente:

BringToFront llama a la funcion SetZOrder
Código Delphi [-]
procedure TControl.BringToFront;
begin
  SetZOrder(True);
end;

La función SetZOrder llama a SetZOrderPosition
Código Delphi [-]
procedure TControl.SetZOrder(TopMost: Boolean);
begin
  if FParent <> nil then
    if TopMost then
      SetZOrderPosition(FParent.FControls.Count - 1) else
      SetZOrderPosition(0);
end;

Y SetZOrderPosition cambia la posicion del control dentro de la lista de controles:
Código Delphi [-]
procedure TControl.SetZOrderPosition(Position: Integer);
var
  I, Count: Integer;
  ParentForm: TCustomForm;
begin
  if FParent <> nil then
  begin
    I := FParent.FControls.IndexOf(Self);
    if I >= 0 then
    begin
      Count := FParent.FControls.Count;
      if Position < 0 then Position := 0;
      if Position >= Count then Position := Count - 1;
      if Position <> I then
      begin
        FParent.FControls.Delete(I);
        FParent.FControls.Insert(Position, Self);
        InvalidateControl(Visible, True);
        if not (csLoading in ComponentState) then
        begin
          ParentForm := ValidParentForm(Self);
          if csPalette in ParentForm.ControlState then
            TControl(ParentForm).PaletteChanged(True);
        end;
      end;
    end;
  end;
end;

¿Lo ves ahora?
Responder Con Cita
  #3  
Antiguo 16-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Pues sip, el caso es que tuve un problema con el JetEdit (editor rápido que uso para ver un .pas). Solo pude llegar al primer paso de SetZOrder(True), de ahí que me extrañase mucho.

Asias y perdone usted por hacerle perder tiempo

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 17-12-2006
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 23
tarco35 Va por buen camino
Thumbs up Gracias...

Gracias por su colaboracion... me ha sido muy util.... reciban un cordial 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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber unidad de disco donde estoy marceloalegre Varios 4 12-07-2005 16:47:27
estoy desconcertada.... Alejandra Internet 2 21-10-2003 05:08:19
Saber donde estoy en un Rich Tonio Varios 2 16-09-2003 10:06:36


La franja horaria es GMT +2. Ahora son las 13:46:50.


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