Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2008
axlrafael axlrafael is offline
Miembro
 
Registrado: abr 2008
Posts: 36
Poder: 0
axlrafael Va por buen camino
Como crear un bucle con TEdit's

Hola amigos foreros, quisiera preguntarles como le puedo hacer para crear un bucle con objetos de tipo TEdit en Delphi?. Lo que intento hacer es algo asi

RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;
for i:=1 to CantRow do
begin
for j:=1 to CantCol do
begin
Showmessage(RangoMatriz[i,j]);
end;
end;

miren recibo datos desde la variable RangoMatriz, pero en este código lo que me hace es mostrarlos en forma de mensaje, pero lo que yo quiero es asignarle cada dato correspondiente a diferentes objetos tipo TEdit, es decir,

RangoMatriz TEdit
[x1,y1] Edit1.text
[x2,y2] Edit2.text
[x3,y3] Edit3.text
. .
. .
. .
[xn,yn] Editn.text

Por cierto la variable RangoMatriz me indica cada celda donde extraigo datos de una hoja de excel.

Saludos y suerte a todos
Responder Con Cita
  #2  
Antiguo 07-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
De la manera que esta expresado, parece que solo te interesen las celdas donde x e y son iguales. es ese el caso?
Responder Con Cita
  #3  
Antiguo 07-05-2008
axlrafael axlrafael is offline
Miembro
 
Registrado: abr 2008
Posts: 36
Poder: 0
axlrafael Va por buen camino
mas o menos

Si mira la Matriz me indica unicamente la posición de las celdas en la hoja de excel, es decir:

RangoMatriz
[x1,y1] ----->posición 'A1'
[x2,y1] ----->posición 'A2'

.... y asi sucesivamente, entonces lo que yo kiero es agregar otro "for" pero que me haga referencia a 10 TEdit que tengo en el form donde vayan tomando los valores de cada una de las celdas de la hoja de excel(tomada de la matriz).

Espero me hayas comprendido
Responder Con Cita
  #4  
Antiguo 07-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
sigo sin entenderte... cojes desde una matriz los valores x,y de una celda y estos valores de celda de excel los quieres poner en 10 edits?
Responder Con Cita
  #5  
Antiguo 07-05-2008
axlrafael axlrafael is offline
Miembro
 
Registrado: abr 2008
Posts: 36
Poder: 0
axlrafael Va por buen camino
Mira supongamos que tengo diez valores en la hoja de excel y en mi form tengo 10 TEdit's, lo que quiero es que en cada uno me muestre el valor 'A1' en el Edit1, el valor de 'A2' en el Edit2, el valor 'A3' en el Edit3, y asi sucesivamente.

Con relación a tu propuesta de hacerlo en un stringGrid te lo agradesco pero mi necesidad es hacerlo en TEdit's

Responder Con Cita
  #6  
Antiguo 07-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Si solo son 10 tedits, pues...

Edit1.Text := Excel.Cells.Item[Matriz['A','1']] etc...

si lo que quieres es encontrar un Edit por su nombre, que es lo que me parece, te dejo una funcion...

function TForm.Encontrar_EditBox(string : nombre) : TEdit;
var
I: Integer;
Temp: TComponent;
begin
for I := ComponentCount - 1 downto 0 do
begin
Temp := Components[i];
if (Temp is TEdit) then
if ((Temp as TEdit).Name = nombre)
then
Encontrar_EditBox := (Temp as TEdit);
end;
Econtrar_EditBox := nil;
end;

Esta funcion debe estar en la form donde estan los EditBoxs... asi, por ejemplo, para poner dentro del Editn el valor de la celda [n,n] seria algo como
Encontrar_EditBox('Edit' + inttostr(n)) := Excel.Cells.Item[n,n].Value

deberas tener cuidado si no existe el editbox q se busca ya q seria 'null pointer assignment'. Seguro que hay bugs en el codigo espero q pilles la idea.
Responder Con Cita
  #7  
Antiguo 07-05-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola axlrafael, no te sería mejor mostrar tus datos de tu hoja de excel en un StringGrid.

Código Delphi [-]
 RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;
 
 StringGrid1.ColCount := NumCol+1;
 StringGrid1.RowCount := NumRow+1; 

 for i:=1 to CantRow do
  begin
   for j:=1 to CantCol do
    begin
      StringGrid1.Cells[j,i] := RangoMatriz[i,j];
    end;
  end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
Bucle for de 2 en 2 douglas OOP 9 17-10-2007 15:55:53
Pasar demas datos de un DBGRID a TEDIT's Ericato Varios 5 09-03-2007 17:44:05
Salir de un bucle do while RoyTan Varios 2 28-08-2006 14:25:36
bucle dentro de un bucle Cosgaya Varios 2 06-06-2005 07:05:16
Detener un bucle lfidanza Varios 5 25-06-2003 00:36:14


La franja horaria es GMT +2. Ahora son las 07:30:01.


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