Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Como reutilizar el codigo (https://www.clubdelphi.com/foros/showthread.php?t=65604)

Tauro78 29-12-2009 18:23:51

Como reutilizar el codigo
 
Hola, quisiera saber como puedo hacer para reutilizar codigo. Por ejemplo tengo definidos distintos formularios los cuales tienen controles de tipo textBox, comboBox, etc. Entonces en algunos controles solo se deben ingresar numeros, en otros solo letras. Lo que trate de hacer y no me funciono fue lo siguiente: hice una clase ChequearTipo, una interface IChequearTipo y lo quise implementar en una forma frmCuentasAltas por medio los eventos KeyDown y KeyPress.

Debo aclarar que este codigo me tira el error: [C# Error] CuentasAltas.cs(271): 'Bancos_CSharp.ChequearTipo' does not contain a definition for 'NroEnteroKeyPress'
Esto debe ser porque frmCuentasAltas no conoce la definicion del metodo NroEnteroKeyPress que se encuentra definido en la clase ChequearTipo, es por esto que tengo la confusion.
Me gustaria saber si esta bien la manera de resolver el problema o tendria que probar de otra menera tal vez sin usar una interfase, desde ya muchas gracias.


Código Delphi [-]
public interface IChequearTipo
{
   void NroEnteroKeyPress(Object sender, KeyPressEventArgs e);
   void NroEnteroKeyDown(Object sender, KeyEventArgs e);
}

Código Delphi [-]
public class ChequearTipo : IChequearTipo
{
   public ChequearTipo()
  {
    //
    // TODO: Add constructor logic here  
    //
  }
 
private bool noEsNumero = false;
 
void IChequearTipo.NroEnteroKeyPress(Object sender, KeyPressEventArgs e)
{
   if (noEsNumero == true)
   {
      e.Handled = true;
   }
}
 
void IChequearTipo.NroEnteroKeyDown(Object sender, KeyEventArgs e)
{
   noEsNumero = false;
 
   if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
   {
       if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
       {
           if (e.KeyCode != Keys.Back)
           {
               noEsNumero = true;
           }
       }
    }
}

en la forma frmCuentasAltas, lo llamo asi:

Código Delphi [-]
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
  {
      ChequearTipo ctkp = new ChequearTipo();
      IChequearTipo ICheqT = ctkp;
      ctkp.NroEnteroKeyPress(sender, e);
  }

Ñuño Martínez 04-01-2010 15:05:51

Yo creo que te faltan declaraciones. Tal vez debas incluir algún archivo de cabecera más.


La franja horaria es GMT +2. Ahora son las 08:27:34.

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