• Viernes 8 de Noviembre de 2024, 17:55

Autor Tema:  caracteres especiales en un memo! confusion...  (Leído 1025 veces)

bapho666

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
caracteres especiales en un memo! confusion...
« en: Sábado 11 de Abril de 2009, 00:53 »
0
tengo el siguiente codigo con un case el cual no admite caracteres especiales en un Memo y los envia a un Listbox el codigo si me funciona es el siguiente:
void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
{
switch (Key){
case '|': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '!': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '#': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '$': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '%': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '&': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '/': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '(': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case ')': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '=': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '?': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '¡': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '¿': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '{': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '}': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '[': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case ']': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '<': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '>': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '*': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '+': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '~': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '-': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '_': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
case '"': { Application->MessageBox("Valor Incorrecto","Error",0);
ListBox1->Items->Add(Key);
Key=5;
break; }
}
}

Tratando de optimizar ese codigo en menos lineas hice lo siguiente para que a travez del key con los caracteres del codigo ascii que van del (32 al 64) que son los caracteres especiales trate de hacerlo funcionar pero a la hora que corro el programa el Memo admite todo lo que ingreso como caracteres especiales y los manda al Listbox.


void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
{
if ( Key > '32' || Key < '64')
 {
Application->MessageBox("No Valido","Alerta",0);
   (ListBox1->Items->Add(Key));
    }
    Key=5;
    }

que puedo hacer que esta mal soy nuevo en el C++ builder 5 agradeceria su pronta respuesta con algun comentario que puediera ser de ayuda!

lair

  • Miembro MUY activo
  • ***
  • Mensajes: 213
  • Nacionalidad: mx
    • Ver Perfil
Re: caracteres especiales en un memo! confusion...
« Respuesta #1 en: Martes 2 de Junio de 2009, 23:25 »
0
Cita de: "bapho666"
void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
{
if ( Key > '32' || Key < '64')
 {
Application->MessageBox("No Valido","Alerta",0);
   (ListBox1->Items->Add(Key));
    }
    Key=5;
    }
intenta remover las comillas, por que asi me parese que le estas diciendo que es un caracter 32 o 64 y no sus valores
if ( Key > 32 || Key < 64)