Delphi - Vectores Objeto ("Matrices de objetos") ViB vs Del

 
Vista:

Vectores Objeto ("Matrices de objetos") ViB vs Del

Publicado por ArkDark RL (11 intervenciones) el 13/05/2003 11:47:00
Holas a todos...
Tengo una problema en delphi 5 ... os explico.
En Visual Basic para crear un vector o "matriz" de objetos basta con copiar el objeto y al pegarlo te pregunta si kieres k sea una matriz "label1(x)" o un objeto nuevo.

Mi problema es que en delphi no hace eso, o no se como hacerlo, la unica manera que encontre para manejar varios objetos como si fueran matriz es....
----------------------------------------
var comp:tcomponent;
cont:=componentcount -2;
for i:=cont downto 0 do
begin
comp:=components[i];
if (comp is TQRlabel) then
(comp as TQRLabel).caption:='XXXXX';
end;
---------------------------------------------

Por eso keria saber si se pueden crear objetos matriz como en visual Basic o no se puede, y en caso afirmativo ... ¿como?. Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Vectores Objeto (

Publicado por Diego Romero (636 intervenciones) el 13/05/2003 21:11:51
No, no se puede, al menos no de la forma que lo hace VB.
En Delphi puedes simular ese comportamiento creando por código un Array de TComponents, pero opino que la forma en que lo has escrito tú es la más adecuada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Vectores Objeto (

Publicado por mamcx (533 intervenciones) el 13/05/2003 21:22:52
Claro que se puede. En VB hacen eso porque tiene tanatas limitaciones que es necesario para "truquear" un acceso de objetos en matrices.

En Delphi, se hace a la "OO way"

1- Recorriendo el contenido de controls es una
2- Con FindControl() es otra (para uno en especial)
3- Armando una matriz type aControls: array(0..10) of TQrLabel
4- Con Colleciones
5- Con Collecciones tipadas

Hay MUCHOS ejemplos de delphi usando colleciones o matrices de controles. El DBGrid es uno. El DataSet (los fields) son otro. Los Coolbar, el menu, etc...

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por ArkDark RL (11 intervenciones) el 14/05/2003 10:15:15
Muchas Gracias a todos. Voy a pegar este codigo de creacion de edits por si alguien tiene la misma duda o parecida que le sirva de ayuda.

procedure TForm1.FormCreate(Sender: TObject);
Var
ArrayEdit:Array [1..5] of TEdit;
X:Integer;
begin
For X:=1 To 5 Do
begin
ArrayEdit[X]:=TEdit.Create(Self);
ArrayEdit[X].Parent:=Self;
ArrayEdit[X].Top:=X*25;
ArrayEdit[X].Name:='Edit'+IntToStr(X);
end;
end;

Crea una matriz de Edits

Saludos
ArkDark RL
Vigo, España
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar