Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   El mismo nombre de objeto por medio de índices (https://www.clubdelphi.com/foros/showthread.php?t=7173)

Isaac 06-02-2004 12:01:29

El mismo nombre de objeto por medio de índices
 
¿Es posible poner a varios objetos del mismo tipo el mismo nombre a través de índices, como en Visual Basic? En Delphi no sé si se puede. Es que aún no tengo mucha experiencia y lo preciso para un programa

__cadetill 06-02-2004 12:22:18

Exactamente igual que VB no se puede (que yo sepa), pero lo que sí puedes hacer es poner los nombre estilo MiComponente1, MiComponente2,.... y luego con FindComponent('MiComponente' + IntToStr(Indice)) acceder a él haciendo un casteo al tipo de componente.

Un ejemplo:

Suponemos que tenemos 4 TEdits llamados MiEdit1, MiEdit2, MiEdit3 y MiEdit4

podemos hacer un bucle para ponerlos a blanco estilo.....

Código:

for i := 1 to 4 do
  TEdit(FindComponent('MiEdit' + IntToStr(i))).Text := '';

Espero te sirva

Gydba 06-02-2004 12:37:19

De hecho yo que vengo también de VB me resulta más comodo como delphi maneja los controles y la forma de referenciar eventos.

delphi.com.ar 06-02-2004 14:45:19

Cita:

Empezado por Isaac
¿Es posible poner a varios objetos del mismo tipo el mismo nombre a través de índices, como en Visual Basic? En Delphi no sé si se puede. Es que aún no tengo mucha experiencia y lo preciso para un programa

Seguramente te refieres a un Array de controles, Delphi te lo permite lo que no te lo permite es el IDE, digamos que solo puedes hacerlo desde código:

Código:

var
  ABotones: array[0..10] of TButton;
  i: Integer;
begin
  for i := 0 to 10 do
  begin
    ABotones[i] := TButton.Create(Self);
    ABotones[i].Parent := Self;
    ABotones[i].Top := (ABotones[i].Height + 2) * i;
  end;

El tema es que VB cambia el comportamiento cuando se trata de un array de controles, y todos los eventos pasan a tener el parámetro INDEX, esto no le puede agradar a ningún purista de la programación.

Saludos!

Isaac 06-02-2004 19:38:57

Gracias, me sirve de mucho

Isaac 09-02-2004 11:54:04

Bueno, ya tengo mi programa casi acabado. Tan sólo tengo que aplicar estas cosas que me comentasteis. Gracias.


La franja horaria es GMT +2. Ahora son las 13:48:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi