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 11-09-2003
omy omy is offline
Miembro
 
Registrado: ago 2003
Ubicación: Acapulco gro.
Posts: 100
Poder: 21
omy Va por buen camino
Unhappy Como se hace

Hola a todos estaba trabajando y me tope con un error a ver si alguien me pidiera ayudar




procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
var i,o:integer;
control,nombre,resul :string;
com:Tobject;
com2:Tedit;
com3:tcontrol;
begin
// ---------------------------------------------------
o := form3.ComponentCount;
for i := 0 to form3.ComponentCount-1 do
begin
control := form3.Components[i].ClassName;
if control = 'TEdit' then
begin
resul := form3.Components[i].Name + '.text';
// aqui lo que no pude hace es que el valor de
resul concatenado con .text, lo convirtiera en
una macro, esto para poder saber el valor de
campo.

end;
end;
end;



Espero averme dado a enender, se trata de hacer macros, o algo como en php: eval , o con los signos $$, una solucion parecida
nota. Ejecutar codigo en tiempo de ejecucion.
__________________
omar velazquez
Responder Con Cita
  #2  
Antiguo 12-09-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola omy, tu pregunta está un poco confusa, creo que por eso no te han contestado.
Si lo que quieres es tener en la variable resul el contenido del edit debes ubicar la propiedad text donde tienes la propiedad name, si el resto de lo que tienes hecho está bien tendras en resul el string contenido en el edit.
Creo que confundes el Name de la componente que es un string con la componente en sí que es un TComponent.
Debes profundizar un poco en OOP.
Espero haberte ayudado
Saludos
Responder Con Cita
  #3  
Antiguo 12-09-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
Hola, a ver si entiendo basandome en tu pregunta y en la aclaratoria de Ruben.

1.- Tienes un solo Tedit en tu Form y Quieres saber que contiene ese edit?

o

2.-Tienes varios Tedit en tu form y quieres que resul guarde algo como:

Resul = 'Edit1=hola;Edit2=algo; ...Editn=noseque;'

siendo 'hola' el texto que contiene Edit1 y 'algo' el texto que contiene Edit2 y asi hasta tener el nombre y contenido de cada edit.

si es la primera sigue la sugerencia de Ruben

si es la segunda:

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
var
i : integer;
resul :string;
begin
Resul := '';
for i := 0 to form3.ComponentCount-1 do
if form3.Components[i].ClassName = 'TEdit' then
with form3.Components[i] as Tedit do
resul := Resul + Name + '=' + text + ';';
{haces lo que hagas con resul}
end;

espero que te sirva
Responder Con Cita
  #4  
Antiguo 12-09-2003
omy omy is offline
Miembro
 
Registrado: ago 2003
Ubicación: Acapulco gro.
Posts: 100
Poder: 21
omy Va por buen camino
Gracias a los dos, la verdad es que no encantraba.


with ...... as ..... do


este era el que necesitaba, muchas gracias me salvastes de dejar un codigo extenso un amigo me dijo que si hay pero no sabia como se llamaba o como era, lo busque como eval...

bueno gracias......

como referencia el problema era que tengo mas de 30 tedit y necesitaba saber cual de ellos tienen valor y cuales no, ademas los valores se concatenaban junto con el nombre del boton
__________________
omar velazquez
Responder Con Cita
  #5  
Antiguo 12-09-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
Que bueno que te ayudó.

Cita:
Mensaje original por omy
with ...... as ..... do
Solo como aclaratoria ya que me parece que estas muy claro con sentencias del lenguaje pascal/objectpascal.
la sentencia with es: with....do, el 'AS' lo utilizo como un typecast para tener acceso a los metodos del edit.
haciendo una equivalencia, seria igual decir:
form3.Components[i] as Tedit

que decir

Tedit(form3.Components[i])

por tanto seria igual:

with form3.Components[i] as Tedit do

que decir

with Tedit(form3.Components[i]) do

en dos palabras el 'AS' no pertenece al with...
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 11:54: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