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 12-06-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Variable en Atributo [Edit(Variable).Text]

Saludos Amigos, donde quiera que se encuentren.

En esta ocasion les traigo una duda que tengo desde hace dias
pero que hasta ahora no he podido dar con una buena conclusion.

Esto es posible? o alguna semejanza, la cuestion
es que quiero almacenar en 1000 Edit's un valor en especial
digamos que el 0, Entonces la pregunta seria,
se puede colocar una variable en un atributo?

Ejemplo:
Llenamos 1000 Objetos Edit, con una secuencia 1,2,3..1000

Saludos,
Best,
Martin

Código Delphi [-]
Procedure LlenarEdits();
Var
  I:Integer;
begin
  for I:=1 to 1000 do
    begin
      Form1.Edit+IntToStr(I)+.Text:=I;//Aqui mi duda, Obviamente esto no es posible asi tal cual como esta escrito
    end;
end;
Responder Con Cita
  #2  
Antiguo 12-06-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Prueba con algo como "FindComponent", que, te permite buscar y obtener referencias de componentes por su nombre.
Responder Con Cita
  #3  
Antiguo 12-06-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Gracias!
A ver dejame revisar
Responder Con Cita
  #4  
Antiguo 12-06-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por dec Ver Mensaje
Hola,
Prueba con algo como "FindComponent", que, te permite buscar y obtener referencias de componentes por su nombre.
Código Delphi [-]
var
  i :Integer;
  comp: TComponent;
begin
  for i := 1 to 3 do begin // aqui se pone la cantidad de edits, en este caso 3
  comp := FindComponent('Edit' + IntToStr(i));
  TEdit(comp).Text:= IntToStr(i);
  end;
Busca los edits y les coloca un numero en su texto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 13-06-2012
Pedro-Juan Pedro-Juan is offline
Miembro
 
Registrado: ago 2006
Ubicación: Barcelona - España
Posts: 315
Poder: 18
Pedro-Juan Va por buen camino
Hola,

No puedo resistirme a la curiosidad, ¿1000 Edits?

Un saludo.
__________________
Este mundo es el camino para el otro, que es morada sin cesar. Mas cumple tener buen tino para andar esta jornada sin errar. (J. Manrique)
Responder Con Cita
  #6  
Antiguo 13-06-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Cita:
Empezado por Pedro-Juan Ver Mensaje
Hola,

No puedo resistirme a la curiosidad, ¿1000 Edits?

Un saludo.
iba a poner un millon...
Haha, siempre que quiero automatizar algo pienso
y si tengo 1 millon de (algo) en este caso edits,
acaso debo llenarlos uno por uno? entonces alli viene
el planteamiento del problema, y digo, no creo,
debe haber algo que lo pueda hacer
Responder Con Cita
  #7  
Antiguo 13-06-2012
Pedro-Juan Pedro-Juan is offline
Miembro
 
Registrado: ago 2006
Ubicación: Barcelona - España
Posts: 315
Poder: 18
Pedro-Juan Va por buen camino
Entendido Martin

Pero como dices:

Cita:
Empezado por martini002 Ver Mensaje
es que quiero almacenar en 1000 Edit's un valor en especial
digamos que el 0, Entonces la pregunta seria,
se puede colocar una variable en un atributo?
No lo entendía.

Un saludo.
__________________
Este mundo es el camino para el otro, que es morada sin cesar. Mas cumple tener buen tino para andar esta jornada sin errar. (J. Manrique)
Responder Con Cita
  #8  
Antiguo 20-06-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Hola Caral,
Tenia dias sin sentarme a programar esto
porque surgieron un par de cosas
pero he vuelto!

sabes que el FindComponent no me funciona correctamente
realmente quiero usar esa funcion para lo siguiente:

Código Delphi [-]
procedure ActualizarCartasMesa();
var
  I:Integer;
  Componente:TComponent;
begin
  For I:=1 to 10 do
    Begin
      Componente:=FindComponent('CartaMesa' + IntToStr(I));
      TImage(Componente).Picture.LoadFromFile(Getcurrentdir()+'\Imagenes\Cartas\'+IntToStr(VCartasMesa[i])+'.png');
    End
end;

pero me arroja un error:
"undeclared identifier FindComponent..."

agregue

Uses
System

pero sigue sin funcionar, que crees que esta pasando con eso?
gracias
Responder Con Cita
  #9  
Antiguo 20-06-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola martini002.


El método FindComponent no puede ser llamado igual que una función común, como todo método está ligado a un objeto.

Por otro lado, primero tendrías que buscar el componente y luego, si existe, realizar las acciones. Ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  I:Integer;
  Componente:TComponent;
begin
  for i:= 1 to 10 do
  begin
    Componente:= FindComponent('CartaMesa' + IntToStr(i)); // Aquí es:  Self.FindComponent (Self = Form1)
    if Componente <> nil then  // ¿ Existe el componente ?
      //...
  end
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 21-06-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Realmente, debería prohibirse el uso de FindComponent .

Este método lo que hace es recorrer todos los componentes del formulario hasta encontrar el que tenga el nombre dado. Si tienes 10 objetos a buscar, entonces recorres 10 veces todos los componentes, y no digamos si tienes mil. Para eso, mejor los recorres una sóla vez:

Código Delphi [-]
for I := 0 to ComponentCount - 1 do
begin
  if SameText(Components[i].Name, 'CartaMesa' + IntToStr(I)) then
    TImage(Componente).Picture.LoadFromFile(...);
end;

Aún así, esto debería usarse sólo para algo ocasional. Si, por ejemplo, estás diseñando un juego de cartas, es de suponer que vas a tener que referirte a los componentes TImage que las representan múltiples veces. Entonces es mejor declarar un arreglo de objetos TImage:

Código Delphi [-]
Cartas: array[1..10] of TImage;

e inicializarlos, por ejemplo, en el constructor del formulario:

Código Delphi [-]
Cartas[1] := CartaMesa1;
Cartas[2] := CartaMesa2;
...
Cartas[10] := CartaMesa10;

Es una larga asignación, pero en el resto de la aplicación puedes ya usar las cartas directamente:

Código Delphi [-]
for I := 1 to 10 do
begin
  Carta[i].Picture.LoadFromFile(...);
end;

Incluso, si la asignación inicial es demasiado larga, quizá podrías colocar todas las cartas en un contenedor como un TPanel e inicializar así:

Código Delphi [-]
for I := 0 to Panel.ControlCount - 1 do
  TImage(Panel.Control[i]).LoadFromFile(...);

// 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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SUM a edit o variable Chuma87 Varios 3 30-09-2010 16:46:11
sumar campo tipo money y guardar en un edit o variable gonza_619 Varios 1 14-09-2010 19:26:18
Mostrar en un edit una variable de tipo real Petolansa Varios 4 31-10-2007 03:56:47
Buscar una palabra en un variable text La__X SQL 2 10-06-2007 11:09:02
variable dentro de una variable molinero1 Varios 3 23-04-2007 12:44:48


La franja horaria es GMT +2. Ahora son las 05:37:18.


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