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 13-06-2006
cahosoft cahosoft is offline
Miembro
 
Registrado: jul 2003
Posts: 102
Poder: 21
cahosoft Va por buen camino
acceder a una variables

hola como estan....
lo quiero hacer es acceser a una cambiar el valor de una variable pero que el nombre de la variable sea por media de una cadena....
disculpen si ne me explicar...
es algo como asi:
por ejemplo voy cambiar el valor de las
Código Delphi [-]
var
i1,i2,i3:integer
begin
  accedervariable('i1'):=1
end;
Responder Con Cita
  #2  
Antiguo 13-06-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Hola, no estoy 100% seguro, pero me parece que no se puede tratar a la cadena que te pasaron como si fuera una variable (como lo estas haciendo en el codigo que escribiste). Éste metodo sí es posible realizarlo con componentes, o sea, si queres modificar la propiedad de un componente, sí es posible pasar el nombre del mismo como parámetro.
Lo que podés hacer es chequear la cadena con un if y modificar la variable correspondiente de acuerdo a la cadena:

Código Delphi [-]
procedure Sumar2(variable: string);
begin
  if variable = 'i1' then
    i1 := i1 + 2;
  else if variable = 'i2' then
    i2 := i2 + 2;
  else if variable ='i3' then
    i3 := i3 + 2;
end;

Bueno de este modo sería mucho menos cómodo que del modo que planteas vos, pero no creo que sea posible hacerlo de esa forma.

Bytes!!
Responder Con Cita
  #3  
Antiguo 13-06-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo más parecido que se me ocurre es crear propiedades published para las variables y accederlas por RTTI, pero creo que esto es dar muchas vueltas para algo tan simple.

Tal vez exista otra forma de enfocar lo que quieres hacer, para no tener que acceder a las variables de esta forma. ¿Puedes explicarte mejor?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 13-06-2006
cahosoft cahosoft is offline
Miembro
 
Registrado: jul 2003
Posts: 102
Poder: 21
cahosoft Va por buen camino
variables con cadenas

Hola gracias por atender mi incognita...
lo que pasa es que quiero guardar dinamicamente en mas de 100 edit
y quiero acceder a ellos dinamicamente...
mas o menos asi

Código Delphi [-]
procedure tform1.guardar;
 var
  i :integer;
  begin
     for i:=1 to 100 do
      begin
         tabla1.fieldbyname('campo').asstring:=accederavariables('edit'+inttostr(i)+'.text');
      end;   
  end;
Responder Con Cita
  #5  
Antiguo 13-06-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Quizás esta idea con punteros pueda servirte?
Cita:
var
aTops: Array[1..9] of ^TDbedit;


procedure TfrDatRelojes.FormActivate(Sender: TObject);
begin
Reloj_Conectado:=True;
......


aTops[1]:=@DbeTop1;
aTops[2]:=@DbeTop2;
aTops[3]:=@DbeTop3;
aTops[4]:=@DbeTop4;
aTops[5]:=@DbeTop5;
aTops[6]:=@DbeTop6;
aTops[7]:=@DbeTop7;
aTops[8]:=@DbeTop8;
aTops[9]:=@DbeTop9;
end;


Procedure Mostrar(x:Integer);
var
n:Integer;
begin
For n:=1 to 9 do
begin
if n <= x then
begin
aTops[n]^.Visible :=True;
aTopc[n]^.Visible :=True;
alTopc[n]^.Visible:=True;
alTops[n]^.Visible:=True;
end
else
begin
aTops[n]^.Visible :=False;
aTopc[n]^.Visible :=False;
alTopc[n]^.Visible:=False;
alTops[n]^.Visible:=False;
end;
end;

end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 13-06-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por cahosoft
...lo que pasa es que quiero guardar dinamicamente en mas de 100 edit y quiero acceder a ellos dinamicamente...
Eso es diferente; Tú has hablado de variables y eso son Componentes.
Para hacer lo que necesitas (con componentes) puedes usar el FindComponent de Delphi, al que le pasas el nombre del com`ponente a utilizar y listo.

Código Delphi [-]
 var
  i :integer;
  edt:TEdit;
  begin
     for i:=1 to 100 do
      begin
         edt := TEdit(Self.FindComponent('edit'+inttostr(i)));
         tabla1.fieldbyname('campo').asstring := edt.Text
      end;   
  end;
Te lo he puesto de memoria, así que espero que compile, pero salvo algun error esta es la forma de hacerlo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Acceder al Registro kloud C++ Builder 2 31-01-2006 16:46:22
variables variables (manual php) salvica PHP 0 25-09-2005 16:44:52
acceder a DBF (SQL) Demian Conexión con bases de datos 0 25-08-2004 21:47:56
acceder a un fichero nesetru Varios 2 05-01-2004 15:48:33
acceder ficheros web mmperinan Internet 1 01-01-2004 14:07:46


La franja horaria es GMT +2. Ahora son las 19:14:43.


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