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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-05-2018
emeritos emeritos is offline
Miembro
 
Registrado: may 2003
Posts: 307
Poder: 22
emeritos Va por buen camino
Funcion para leer compomentes

Buenas dilferos.

¿ Existe alguna funcion, procedimiento... que pueda leer todos los nombres de los compomentes visuales que existan en un From?

Gracias.
Responder Con Cita
  #2  
Antiguo 18-05-2018
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Hola, mira a ver si esto es lo que necesitas.

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  N: SmallInt;
begin
  for N := 0 to ComponentCount - 1 do begin
    ShowMessage(Components[N].Name);
  end;

end;
Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 18-05-2018
emeritos emeritos is offline
Miembro
 
Registrado: may 2003
Posts: 307
Poder: 22
emeritos Va por buen camino
Gracias me sirve, pero como puedo leer dentro de ese componente sus propiedades como por ejemplo Height.

Lo que estoy intentando hacer es una funcion donde lo se paso los nombres de los componentes visuales y el me pueda leer y cambiar algunas propiedades. Lo hago para cuando se cambia la resolucion poder adaptar el from a el (No encuentro un procedimiento ya realizado para que al cambiar la resolucion o las dimensiones del from en tiempo de ejecucion pueda adaptarlo automaticamente).


Gracias.
Responder Con Cita
  #4  
Antiguo 18-05-2018
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Hola de nuevo.

A ver si esto te sirviera:

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
 N: SmallInt;
begin
    for N := 0 to ComponentCount -1 do begin
      if Components[N].Name =  'Edit1' then begin
       (Components[N] as TEdit).width := 100;
      end;
    end;
end;
Igual que modificas las propiedades de un edit puedes cambiar las propiedades de cualquier control, incluido el formulario.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 18-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
Hola de nuevo.
A ver si esto te sirviera:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
 N: SmallInt;
begin
    for N := 0 to ComponentCount -1 do begin
      if Components[N].Name =  'Edit1' then begin
       (Components[N] as TEdit).width := 100;
      end;
    end;
end;
Igual que modificas las propiedades de un edit puedes cambiar las propiedades de cualquier control, incluido el formulario.
Saludos
Por seguridad, en lugar de comparar por el nombre, se debería comparar por el tipo/clase al que pertenece. En lugar de esto:

Código Delphi [-]
if Components[N].Name =  'Edit1' then begin
Mejor de esta forma:
Código Delphi [-]
if Components[N] is TEdit then begin
Si el "Edit1" es una TLabel, por ejemplo, se produciría un error "gordo".
No sé si todo el mundo nombra los componentes según su clase, pero es más seguro la opción que he citado, creo.
Responder Con Cita
  #6  
Antiguo 18-05-2018
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por seguridad, en lugar de comparar por el nombre, se debería comparar por el tipo/clase al que pertenece. En lugar de esto:

Código Delphi [-]if Components[N].Name = 'Edit1' then begin

Mejor de esta forma:
Código Delphi [-]if Components[N] is TEdit then begin

Si el "Edit1" es una TLabel, por ejemplo, se produciría un error "gordo".
No sé si todo el mundo nombra los componentes según su clase, pero es más seguro la opción que he citado, creo.
En eso estamos de acuerdo pero entiendo que si buscas el componente por su nombre sabes a qué clase pertenece, ¿no?

__________________
Be water my friend.
Responder Con Cita
  #7  
Antiguo 18-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
En eso estamos de acuerdo pero entiendo que si buscas el componente por su nombre sabes a qué clase pertenece, ¿no?
Ummm... no

¿Cómo sabes que Edit1 es un TEdit?
Y si en lugar de Edit1 lo has nombrado: CodigoDelCliente ¿cómo sabes de qué clase es?
Incluso lo más habitual: edCodigoCliente, lbCodigoCliente, etc. ¿cómo sabes que el primero es un TEdit y el segundo un TLabel?
Y lo mismo para otros prefijos edtCodCli, lblCodCli, etc.

No existe un método fijo para nombrar los componentes, y por su nombre es imposible saber de qué tipo es.


Aunque lo mismo tengo la cabeza en otro sitio (que la tengo) y no me he dado cuenta de lo que dices
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
ayuda a instalar compomentes X86 o X64 en DX10.1 con windows 10pro 64bits darkbits Varios 0 02-07-2016 18:56:57
problema para leer txt mariaesde Varios 4 02-09-2008 16:06:51
funcion para leer archivo jw4v32 API de Windows 1 26-04-2008 02:13:53
Compomentes TIbo Neeruu Varios 0 06-04-2008 04:01:15
Necesito crear un permiso para escribir pero no para leer federiconqn21 Conexión con bases de datos 5 07-07-2006 20:13:47


La franja horaria es GMT +2. Ahora son las 01:50:22.


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