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 28-10-2005
armando armando is offline
Miembro
 
Registrado: dic 2003
Posts: 74
Poder: 21
armando Va por buen camino
Cool creacion

hola a todos nuevamente
utilizo delphi 5 y paradox
he creado unos componentes( tedit) en timpo de ejecucion

Código Delphi [-]
 procedure TFormulario.crear;
 var
   edt1:tedit;
 begin
   edt1 := TEdit.CReate(Formulario);
   edt1.Parent :=PANEL2;
   edt1.Name :='R1';
   edt1.Top := 40;
   edt1.Left := 16;
   edt1.Width := 33;
   Edt1.Text :=DM.QPTT1.ASSTRING;//query
   EDT1.TabOrder:=0;
   EDT1.OnKeyPress:=Edit1KeyPress;
   edt1.OnChange:=Edit1Change;
   {...}
hasta aqui todo bien

quiero crear un procedimiento para este objeto creado,

similar a este

Código Delphi [-]
 procedure TFormulario.Edit1Change(Sender: TObject);
 begin
   IF EDT1.TEXT='' THEN
   BEGIN
     EDT1.TEXT:='0';
     EDT1.SelectAll;
   END;
 end;
como lo hago en tiempo de ejecucion
gracias por su pronta respuesta


Última edición por dec fecha: 28-10-2005 a las 01:52:18. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
  #2  
Antiguo 28-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola Armando.

Creo que ya es hora de usar la etiqueta [ delphi ], no:

Código Delphi [-]
begin
  if UsoEtiqueta('Delphi') then
    Writeln('Esto es mas legible, porque está indentado y tiene ' 
      + 'resaltada la sintaxis!')
  else
    Writeln('Ya tenes mas de 20 mensajes en el foro, es hora que te '
      + 'preocupes por seguir las reglas!');
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 28-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por jachguate
Creo que ya es hora de usar la etiqueta [ delphi ], no:
Dando un empujonsito (Delphi-SQL).
Cita:
Empezado por Armando
quiero crear un procedimiento para este objeto creado,
Crearlos o Asignarlos??
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 28-10-2005
armando armando is offline
Miembro
 
Registrado: dic 2003
Posts: 74
Poder: 21
armando Va por buen camino
signarlo

hola
si es cierto
prometo que utilizar la etiquetas
y con respecto a la pregunta
es asignarlos

gracias..
Responder Con Cita
  #5  
Antiguo 28-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Código Delphi [-]
Edit1.OnChange:=Edit1Change;
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 28-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Ampliando lo ya dicho por vtdeleon, solamente quiero apuntar que en la implementación que tenes del método Edit1Change, aunque efectivamente este se disparará para todos los edits que crees dinamicamente, en realidad seguirá actuando sobre Edit1, es decir, aún cuando el que esté cambiando es edit3, seguirá evaluando el valor de edit1 (y cambiandolo).

Supongo que lo que queres es que si Edit3 es el que cambia, sea el valor de este el que se modifique. En este caso, podes valerte del parámetro Sender del método, que traerá una referencia al edit que en realidad ha disparado el evento. Así, podes tener un solo método atendiendo los eventos de muchos objetos.

La codificación debiera lucir algo similar a lo siguiente:

Código Delphi [-]
procedure TFormulario.Edit1Change(Sender: TObject);
var
  EditCambia : TEdit; 
begin
  EditCambia := Sender as TEdit;
  if EditCambia.Text = '' then
  begin
    EditCambia.Text := '0';
    EditCambia.SelectAll;
  end;
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 28-10-2005
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
Los muy puntillosos añadirían al principio:

Código Delphi [-]
if Sender is TEdit

Es que hay cada exagerado

// Saludos
Responder Con Cita
  #8  
Antiguo 28-10-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Otra opción puede ser que el scope de la variable edt1 en lugar de estar dentro del procedimiento create, pertenezca a la clase...
¿Porqué creas un objeto tan estático, que aparentemente siempre se crea, en tiempo de ejecución?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #9  
Antiguo 28-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por roman
Los muy puntillosos añadirían al principio:

Código Delphi [-]
if Sender is TEdit

Es que hay cada exagerado

// Saludos
Suelo implementar esta interfaz "TPuntilloso", por eso he hecho un casteo seguro, con as. Si el sender no fuese un TEdit, saltará la excepción EInvalidTypeCast, protegiendo el código a la perfección, y siguiendo correctamente las sanas prácticas de programación: Si se rompe el contrato, se eleva una excepción.

Claro, con is se podria evitar esta excepción y no hacer nada, pero parece que en esta situación bastará con que se eleve.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 28-10-2005
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
¡Ah maestrooo! ¡Cuánta razón tienes! (De verdad)

Es esa costumbre mía de evitar el salto de excepciones si puedo verificarla previamente.

// Saludos
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 17:44:03.


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