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 02-04-2007
BEPAI BEPAI is offline
Miembro
 
Registrado: feb 2007
Posts: 19
Poder: 0
BEPAI Va por buen camino
Por favor podrías ponerlo completo, yo lo he modificado en el siguiente sentido:

Código Delphi [-]
 
procedure TPANEL1.BitBtn1Click(Sender: TObject);
var a,resto:smallint;
cad:string;
begin
 
for a:=1 to 150 do begin resto:= a mod 2;
if resto=0 then begin
Findcomponent('Updown'+inttostr(a)).Position:=999;
end
else begin
Findcomponent('Updown'+inttostr(a)).Position:=0;
end;
 
end;
end;
.........y no funciona. Estoy en pañales en esto.
Saludos.
Responder Con Cita
  #2  
Antiguo 02-04-2007
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.297
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
Para hacerlo bien sería algo así:

Código Delphi [-]
var
  comp:TComponent;
begin
  ...
  // Buscar el componente...
  comp := FindComponent('Updown'+inttostr(a));
  // Encontrado?
  if Assigned(com) then begin
    // Comprobar que es del tipo correcto?
    if (comp is TUpDown) then begin
      TUpDown(comp).Position := 999;
    end;
  end;
  ...

De forma similar para el otro.
Una vez que has encontrado el componente (que se devuelve como tipo generico) hay que hacer el CAST, para poder acceder a el con el tipo correcto (en este caso TUpDown).
__________________
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
  #3  
Antiguo 02-04-2007
BEPAI BEPAI is offline
Miembro
 
Registrado: feb 2007
Posts: 19
Poder: 0
BEPAI Va por buen camino
Encontré esto:

Código Delphi [-]
 
{The following example creates 20 edit boxes, using FindComponent with the edit box name to access each newly created edit box.}
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
const
  NamePrefix = 'MyEdit';
begin
  for i := 1 to 20 do begin
    TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
    with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
    begin
      Left := 10;
      Top := i * 20;
      Parent := self;
    end;
  end;
end;
Lo de self no lo entiendo, pero bueno, de todas formas muy agradecido.
Responder Con Cita
  #4  
Antiguo 02-04-2007
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.297
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
Código Delphi [-]
{The following example creates 20 edit boxes, using FindComponent with the edit box name to access each newly created edit box.}
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
const
  NamePrefix = 'MyEdit';
begin
  for i := 1 to 20 do begin
    TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
    with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
    begin
      Left := 10;
      Top := i * 20;
      Parent := self;
    end;
  end;
end;

Aquí lo que está haciendo es crear 20 componentes y luego acceder a ellos utilizando FindComponent, cosa bastante tonta por cierto, ya que FindComponent no es muy eficiente y sólo se debería utilizar cuando no exista otro remedio, como en tu caso, pero no aquí que ya están disponibles los 20 componentes (por lo tanto no tiene sentido buscarlos con este método).

Sólo le encuentro sentido como muestra de utilización, pero creo que el código no es muy acertado, no porque sea incorrecto, sino porque muestra una programación muy ineficiente.

El Self, se refiere al "objeto actual"; Si te fijas en la definición de los procedimientos lo verás claramente:

Código Delphi [-]
// En este contexto el Self es el objeto de la clase TForm1 que está
// ejecutando ese código
procedure TForm1.Button1Click(Sender: TObject);
...

Código Delphi [-]
// Si el código estuviera aquí el Self sería el objeto de la clase TPanel1 que 
// está ejecutando ese código
procedure TPANEL1.BitBtn1Click(Sender: TObject);
...
__________________
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
  #5  
Antiguo 03-04-2007
BEPAI BEPAI is offline
Miembro
 
Registrado: feb 2007
Posts: 19
Poder: 0
BEPAI Va por buen camino
Muy agradecido, Neftalí.
Mi nivel es muy bajo y necesitaría hacer un curso para coger un poco de nivel, ya que tengo que hacer unas aplicaciones personales, sin más remedio.
Yo vivo en Segovia y aquí no hay nada donde den este lenguaje.Me tendría que desplazar a Madrid y hacerlo en los fines de semana. Quizás me podríais indicar algo interesante en esta ciudad.
(Perdón, porque sé que es un tema distinto)

Un saludo.
Responder Con Cita
  #6  
Antiguo 03-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
la cara oculta de delphi 4 es un pdf famosísimo, gratuito y ameno (al menos la primera vez que se lee ). En google lo encuentras sin problemas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 09-04-2007
BEPAI BEPAI is offline
Miembro
 
Registrado: feb 2007
Posts: 19
Poder: 0
BEPAI Va por buen camino
Cita:
Aquí lo que está haciendo es crear 20 componentes y luego acceder a ellos utilizando FindComponent, cosa bastante tonta por cierto, ya que FindComponent no es muy eficiente y sólo se debería utilizar cuando no exista otro remedio, como en tu caso, pero no aquí que ya están disponibles los 20 componentes (por lo tanto no tiene sentido buscarlos con este método).

Sólo le encuentro sentido como muestra de utilización, pero creo que el código no es muy acertado, no porque sea incorrecto, sino porque muestra una programación muy ineficiente.
Neftalí, lo que intento es colocar una matriz[1..15,1..10], en la que tengo que modificar datos cuando se ejecute el programa.¿Podrías darme una idea de como hacerlo más fácil y eficiente?Muchas gracias.

Lepe, gracias, lo he leído varias veces, pero creo que lo que se necesita es práctica para adquirir soltura.

Un saludo.
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
Asignacion Automatica frholguin Varios 9 19-10-2006 10:24:54
Problema con asignacion de valores en un rango Valeric Servers 4 06-09-2005 13:44:04
Asignacion de campos jdangosto OOP 1 05-08-2005 10:41:11
Asignación IP juanchi Internet 1 24-09-2003 19:07:05
Asignación de Campo autonumérico Ulises Providers 2 15-07-2003 15:44:18


La franja horaria es GMT +2. Ahora son las 02:43:41.


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