Ver Mensaje Individual
  #7  
Antiguo 03-03-2021
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
Bueno, al final lo he pensado mejor y voy a hacer que imprima solo caracteres válidos pero la cosa es que consigo filtrarlo pero me lo muestra al final de lo que pego con Ctrl + V en vez de sustituir lo que pego por lo filtrado. Tengo esto:
Código PHP:
void __fastcall TForm1::EditValue1KeyPress(TObject *SenderSystem::WideChar &Key)
{
    if(
Key == 0x16){
        if(
Clipboard()->HasFormat(CF_TEXT)){
            
String CBText Clipboard()->AsText;
            
EditValue1->Text SuprimirCaracteresInvalidos(CBText.UpperCase());
        }
    }else if((
Key '0' || (Key '9' && (Key 'A' || Key 'F'))) && Key != '\b' && Key != 0x03 && Key != 0x18)
        
Key NULL;
}
//---------------------------------------------------------------------------

String TForm1::SuprimirCaracteresInvalidos(String input)
{
    
int ij;
    
String output "";
    
String mask "0123456789ABCDEF";

    for(
1input.Length() > && input.Length(); i++){
        for(
j=1mask.Length(); j++){
            if(
input[i] == mask[j]){
                
output += (WideString)input[i];
            }
        }
    }
    return 
output;

Además también me falta que al pegar con el menú contextual tenga el mismo comportamiento. El menú contextual o popup no lo he creado yo, es el de Windows y no se como hacer eso.

Última edición por aguml fecha: 03-03-2021 a las 11:17:25.
Responder Con Cita