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!