Ver Mensaje Individual
  #9  
Antiguo 15-07-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por FideRosado Ver Mensaje
si eso es, el recorre buscando los controles y les cambia laAlign,pero la verdad es que no entiend lo que me pones, es que necesito seguir un codigo ya echo para entender esa cmplegidad. si puedes adjuntame el proy enviamelo a ...
Hola FideRosado.

Soy respetuoso de las normas de nuestro sitio y si lees la norma 11 de la guía de estilo, entenderás por que no respondo de forma privada.
Además de ir contra nuestras normas, publicar tu correo te deja expuesto a recibir spam, motivo por el cuál modifico ese punto de tu mensaje.

Sin embargo, con muchísimo gusto te agrego un ejemplo simplificado, pero totalmente funcional, que implementa mi sugerencia anterior.
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    ScrollBox1: TScrollBox;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

uses Contnrs;

var
  PnlList: TObjectList;
  MsgCount: Integer = 1;

procedure TForm1.FormCreate(Sender: TObject);
begin
  PnlList:= TObjectList.Create; // Crear lista
  Timer1.Interval:= 500;
  Timer1.Enabled:= True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
const
  PNL_HEIGHT = 60;
var
  pnl: TPanel;
  j: Integer;
begin
  // Creación de un panel
  pnl:= TPanel.Create(Self);
  pnl.Parent:= ScrollBox1;
  pnl.Width:= ScrollBox1.Width-10;
  pnl.Height:= PNL_HEIGHT;
  pnl.Name:= Format('PanelChat%d',[MsgCount]);
  pnl.Caption:= Format('Mensaje: %d',[MsgCount]);

  // Agregarlo a la lista;
  PnlList.Add(pnl);

  // Reorganizar paneles
  for j:= PnlList.Count-1 downto 0 do
  begin
    (PnlList[j] as TPanel).Align:= alTop;
    (PnlList[j] as TPanel).Align:= alBottom;
  end;

  Inc(MsgCount);
  if MsgCount = 7 then Timer1.Enabled:= False; // límite 7 msgs
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  PnlList.Free; // Liberar lista
end;

end.
El TTimer, la variable MsgCount y algun otro detalle están a fin de simular el arribo de los mensajes.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 15-07-2014 a las 08:15:50.
Responder Con Cita