Ver Mensaje Individual
  #1  
Antiguo 27-08-2008
cslbcn cslbcn is offline
Miembro
 
Registrado: jul 2008
Posts: 60
Reputación: 18
cslbcn Va por buen camino
Modificar el tamaño y posicion de un TreeView

Hola. Os explico lo que quiero hacer.

Primero, mediante una estructura repetitiva se crean tantas casillas como dias del mes hay (las variables estan bien definidas):

Código Delphi [-]
for i:=1 to DiasDelMes do
begin
   Form1.findcomponent('TreeView'+ inttostr(i)).destroy;

   with TTreeView.Create(Form1) do
   begin
      Parent := Form1;
      Top    := Coordenadas[cajactual].CoordTop;
      Left   := Coordenadas[cajactual].coordLeft;
      Height := 89;
      Color  := Color1;
      Width  := Ancho;
      Name   := 'TreeView' + IntToStr(i);
      OnClick      := TreeViewAmpliar;
    end;
end;

Cuando hacemos click en un Treeview ejecuta este código:
Código Delphi [-]
procedure TForm1.TreeViewAmpliar(Sender: TObject);
begin
   DiaCal2 := StrToInt(Copy(TTreeView(Sender).Name,9,2));
   Form1.findcomponent('TreeView'+ Inttostr(DiaCal2)).destroy;
   
   with TTreeView.Create(Form1) do
   begin
      Parent := Form1;
      Top    := 100;
      Left   := 100;
      Height := 500;
      Width  := 500;
      Name   := 'TreeView' + IntToStr(DiaCal2);
  end;
end;

De este modo, cuando clickamos en el Treeview1, correspondiente al día 1 del mes, borra el TreeView1 y crea uno más grande y en una posición exacta y lo llama de la misma manera.

Hasta aquí todo bien. Cuando lo ejecuto, depende de en que día pulso me falla, o si pulso mas de 4 Treeview acaba fallando.

Alguien sabe porque pasa esto?
Sabéis si hay alguna manera de decirle que cuando hacemos OnClick, en lugar de borrar TreeView y volverlo a crear, sólo modifique el ancho, alto, top y left?

Gracias!
Responder Con Cita