![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
TabSheet endemoniado ¿?
Vamos a ver si alguien me puede ayudar. He visto el hilo siguiente, que además es exactamente lo que pretendo hacer:
http://www.clubdelphi.com/foros/show...light=TabSheet Yo pongo todo el siguiente código: Código:
en fMain
private
Contador : Integer;
public
Tab : array[1..5] of TTabSheet;
procedure TfMain.Button2Click(Sender: TObject);
var
CL:TfClientes;
begin
if PageControl1.PageCount<=5 then begin
Contador:=PageControl1.PageCount;
inc(Contador);
Tab[Contador]:=TTabSheet.Create(nil);
with Tab[Contador] do begin
PageControl:=PageControl1;
Name:='tsCL'+IntToStr(Contador);
Caption:='Clientes '+inttostr(pageindex);
end;
CL:=TfClientes.Create(Self);
with CL do begin
Parent:=Tab[Contador];
Numero:=Contador;
Show;
end;
end;
end;
y en fClientes
public
Numero:integer;
procedure TfClientes.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caNone;
fMain.Tab[Numero].Free;
end;
|
|
#2
|
||||
|
||||
|
Has verificado que el valor de número sea correcto?
Te recomiendo que intentes mejor hacer mejor un Self.Parent.Free? No tiene sentido almacenar el contador del tab, si ya tenes un apuntador a él en el parent, no? hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
||||
|
||||
|
Si PageControl1.PageCount es igual a 5 la condición
if PageControl1.PageCount <= 5 se cumple pero al incrementar Contador estás accediendo a Tab[6] que está fuera de rango y al acceder a las propiedades de Tab[6] obtienes la violación de acceso. // Saludos |
|
#4
|
|||
|
|||
|
jachguate dice:
Cita:
A roman he de decirle que he cambiado la condicion a: Código:
if PageControl1.PageCount<4 then begin Un saludo y agradecido por vuestra ayuda. |
|
#5
|
||||
|
||||
|
Precisamente te digo que no es necesario guardarlo, porque podes mandarlo a liberar con el puntero que tenes en la propiedad parent. Mirá mi post anterior.
Hasta luego ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
|
|
|