![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
creo que no me explique muy bien,
tengo una aplicacion, donde el usuario selecciona un producto el cual tiene de una a n cavidades, lo que hace el programa es darle la obcion al usuario de representar esas cavidades en una fotografia, para despues usar esa informacion en una ayuda visual. para no tener que crear 200(por decir una cantidad) quiero saber como puedo crear un label en tiempo de ejecucion sin haverlo declarado antes, con un array como mensionaste se solucionaria pero al ponerle Código:
var i : Integer;
a,b:array of tlabel;
lstemp :string;
begin
for i := 1 to N do begin
lstemp:='Label'+inttostr(i)
a[i]:= a[i].Create(lstemp);{marca error de incompatibilidad}
b[i]:=tlabel.Create(b[i]); {marca violacion de acceso}
lstemp := lstemp +'.caption';
lstemp := 'lo que sea' {me iguala lstemp a 'lo que sea' en lugar de
asignarselo al labeln}
end;
en este momento lo solucione creando 126 label y con un case segun el valor de i trabajo con el label pero estoy limitado a 126 cavidades. |
|
#2
|
|||
|
|||
|
Puedes usar la estructura TList o TObjectList para lograr lo que deseas.
Sobre el error de incompatibilidad, este se da por la forma como quieres crear el objeto TLabel, lo correcto sería:
Aquí tienes un pequeño ejemplo usando un TList:
Espero que con esto te des una idea de como puedes lograr lo que necesitas... Saludos... |
|
#3
|
|||
|
|||
|
Gracias a todos.
en el foro encontre algo que me soluciono el problema, solo tuve que agregarle, para que me los borrara Código:
procedure poscavidades.ocultalabels;
var
i : integer;
begin
i:= 26; {los componentes anteriores son del formulario}
while i < poscavidades.componentcount do begin
if uppercase(leftstr(components[i].Name,5))='LABEL' then begin
poscavidades.Components[i].Destroy;
end else begin
inc(i);
end;
end
end;
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| el valor de una variable como nombre de un boton | carlosmoralesm | OOP | 5 | 26-05-2004 06:57:53 |
| Como puede estar accesible a todos los procedimientos el valor de una variable? | Ricsato | OOP | 3 | 16-10-2003 00:37:07 |
| Cómo usar una variable de systema en sql? | dazpiroz | Firebird e Interbase | 3 | 23-06-2003 09:13:43 |
| como asignar un valor a una variable | juan | Varios | 6 | 18-06-2003 01:26:19 |
|