1
« en: Sábado 11 de Abril de 2009, 00:53 »
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!