Cita:
Empezado por FideRosado
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; Timer1.Interval:= 500;
Timer1.Enabled:= True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
const
PNL_HEIGHT = 60;
var
pnl: TPanel;
j: Integer;
begin
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]);
PnlList.Add(pnl);
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; end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
PnlList.Free; end;
end.
El
TTimer, la variable
MsgCount y algun otro detalle están a fin de simular el arribo de los mensajes.
Saludos
