Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2003
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Pregunta de principiante

Hola, quería preguntaros si en delphi existe una opción, que no encuentro por ningún lado y se que en VB por ejemplo si que la hay.

La cuestión es darle a varios controles el mismo nombre para luego poder llamarlos mediante una variable de esta forma o alguna parecida:

for contador:=1 to 4 do
etiqueta1[contador]:=

Espero haberme explicado bien, gracias.
Responder Con Cita
  #2  
Antiguo 18-10-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
Hola.

eso creo que lo llaman arreglo de componentes, en delphi eso no existe, o por lo menos nunca lo he visto. por otro lado si te es necesario lo puedes hacer con arreglos dinamicos.

ArregloEtiquetas : array of TLabel;
ArregloEdit : array of TEdit:
.
.
.
lo unico es que tienes que cargarlos tú, tal vez en el OnCreate.
for i:=0 to componetcount-1 do
if component[i] is tlabel then
{lo metes en el arreglo}

eso es lo que se me ocurre de momento, tal vez pudieras hasta crear una forma base y añadirle esos arreglos de componentes como propiedad para facilitar y limpiar el codigo haciendo que desciendan de ella, no se, eso seria cosa tuya.

espero que te sirva.
Responder Con Cita
  #3  
Antiguo 18-10-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
Hola otra vez.

hice una pequeña prueba y esto funciona:
Código:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TArregloEtiquetas=Array of TLabel;
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    FArregloEtiquetas: Tarregloetiquetas;
//    procedure SetArregloEtiquetas(const Value: array of TLabel);
    { Private declarations }
  public
    property ArregloEtiquetas:TArregloetiquetas read FArregloEtiquetas;{ Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

{procedure TForm1.SetArregloEtiquetas(const Value: array of TLabel);
begin
  FArregloEtiquetas := Value;
end;}

procedure TForm1.FormCreate(Sender: TObject);
Var i: integer;
  Procedure AgregaEtiqueta(J : Integer);
  Begin
    SetLength(FArregloEtiquetas,high(FArregloEtiquetas)+2);
    FArregloEtiquetas[High(FArregloetiquetas)] := components[J] as TLabel;
  End;
begin
for i := 0  to ComponentCount-1 do
  if Components[i] is TLabel then
    AgregaEtiqueta(i);
end;

procedure TForm1.Button1Click(Sender: TObject);
Var I : Integer;
begin
  Edit1.Text := inttostr(high(Farregloetiquetas)+1);
  for I := low (Farregloetiquetas) to high(farregloetiquetas) do
    farregloetiquetas[i].Caption := farregloetiquetas[i].Caption +' '+ inttostr(i);
end;

end.
El boton lo que hace es colocar el indice del arreglo junto al nombre de la etiqueta y colocar en un edit la cantidad de etiquetas. lo unico que faltaría seria limpiar y liberar el arreglo en el ondestroy pero cerré delphi así que te lo dejo a tí.

lo que haces es heredar de esta forma y asi cada una de tus formas tendran un arreglo de componentes propio y sin mas código, puedes añadir el tipo de componente que necesites.

suerte.-
Responder Con Cita
  #4  
Antiguo 18-10-2003
voci voci is offline
Miembro
 
Registrado: oct 2003
Posts: 97
Poder: 21
voci Va por buen camino
Gracias Rudi, pensé que durante el proceso de creación de los formularios, tal vez los controles tuvieran alguna propiedad donde al darles el mismo nombre pudieras ir dandoles valores consecutivos para luego poder llamarlos mediante esa variable.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:59:40.


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
Copyright 1996-2007 Club Delphi