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 15-06-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Ayuda con findcomponent!

Les cuento mi problema...

tengo en un formulario los siguintes componentes:
label1, label2, edit1, edit2, edit3, memo1, memo2, button1.

En el onclick del button1 digo q tome el texto del edit3 (el texto q se debe ingresar es el nombre de alguno de los componentes existentes, por ejemplo: label1) y luego a ese componente le cambie la posicion top a 0.

Intente hacerlo de la siguiente manera:

Código Delphi [-]
   ...
   var
   comp: tcomponent;
 
   begin
   comp := findcomponent(edit3.text);
   comp.top := 0;
 
 {y me sale un error, ya q la propiedad top, no aparece en la 
   lista de las posibles del componente}
   ...

El problema es q si o si tengo q cambiarle la propiedad sin saber a q clase pertenece el componente... y yo se desde antes q la propiedad si la tiene... no se si se entiende... pero si a alguien le ocurre como hacerlo estaria muy agradecido!

Desde ya muchisimas gracias! Suerte! Y espero puedan ayudarme!

Última edición por b3nshi fecha: 15-06-2007 a las 05:20:59.
Responder Con Cita
  #2  
Antiguo 15-06-2007
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
A ver si algo como esto:

Código Delphi [-]
if comp is TControl then
  TControl(comp).Top := 0;

// Saludos
Responder Con Cita
  #3  
Antiguo 15-06-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Muchas Gracias por la respuesta Roman... pero... mmm... veamos...
te explico... lo de recien fue un ejemplo... en realidad lo q estoy queriendo hacer es cambiar varias propiedades en comun q tienen estos objetos, como ser top, left y weight...

Entonces si hago esto, por cada tipo de objeto q se me presente tengo q volver a escribir todas las propiedades... onda algo asi:
Código Delphi [-]
if comp is tedit then
   begin
     with tedit(comp) do
         begin
              top:=
              height:=
              left:=
              weight:=
         end;
    end;  
 
if comp is tlabel then
   begin
     with tlabel(comp) do
         begin
              top:=
              height:=
              left:=
              weight:=
         end;
    end;
{y asi con cada tipo de componente solo q estaria repitiendo las propiedades}

y eso es lo q quiero evitar... tener q escribir muchas veces el mismo codigo... y la verdad q no se me ocurre como hacerlo con una subfuncion...
alguna idea?

desde ya muchas gracias por contestar y tan rapido!
Responder Con Cita
  #4  
Antiguo 15-06-2007
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
Yo no digo que hagas un condicional para cada caso posible, sólo con TControl que es el ancestro de todos los demás y que tiene ya esas propiedades

Código Delphi [-]
comp := findcomponent(edit3.text);

if comp is TControl then
begin
  TControl(comp).top := ...
  TControl(comp).height := ...
  TControl(comp).left := ...
  TControl(comp).width := ...
end;

// Saludos
Responder Con Cita
  #5  
Antiguo 15-06-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Mira vos! Me habia olvidado de ese detalle... falta de practica!

Muchisimas Gracias roman... me solucionaste el problema y me simplificaste el codigo! jaja en serio muchisimas gracias!
Responder Con Cita
  #6  
Antiguo 02-08-2007
Avatar de Hugorr
Hugorr Hugorr is offline
Miembro
 
Registrado: jul 2005
Posts: 17
Poder: 0
Hugorr Va por buen camino
pregunta

Tengo que hacer un pequeño ajuste en vba, el problema es que necesitaba una funcion como el findComponent de delphi. No se si habra alguna y si la hay podrian decirme cual es. He buscado inf. pero nada solo encuentro la funcion de delphi.

Muchas gracias.
__________________
Gracias por dedicar su valioso tiempo... '(^_^)'

Un saludo
Hugorr
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
Uso de la función FindComponent jessie Varios 7 27-02-2013 19:58:50
Consula sobre Findcomponent Carmelo Cash OOP 7 26-09-2006 23:48:49
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03


La franja horaria es GMT +2. Ahora son las 16:52:23.


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