Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

contraseñas

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: contraseñas Responder citando

Hola a todos a ver si alguien puede ayudarme, resulta que tengo un código como el siguiente:
Código:

void __fastcall TForm1::ABSQuery1contrasenyaGetText(TField *Sender, UnicodeString &Text,
        bool DisplayText)
{
   
         Text = StringOfChar('*',Sender->FieldName.Length());

}

Lo que hace es que cuando muestra el campo "contrasenya" en el DBGrid muestra asteriscos, hasta aquí todo bién. Lo que quiero es activarlo o desactivarlo a mi gusto. Seguro que es muy sencillo pero no caigo.
Gracias por adelantado.
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

quizas algo similar a esto?? usando un checkbox en el Form

Código:
void __fastcall TForm1::ABSQuery1contrasenyaGetText(TField *Sender, UnicodeString &Text,
        bool DisplayText)
{
         if(CheckBox1->Checked = true)
          {
            Text = StringOfChar('*',Sender->FieldName.Length());
          }
       
          else {
                      Text = Query1->FieldByName("contrasenia")->AsAnsiString;
                   }

}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Alpinador, pero sigue sin funcionar, lo que quiero es llamar a una función que haga lo mismo que hace el ongettext a voluntad del usuario.
No sé si me he explicado bién.
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

No dices en que elemento estás haciendo esto de la contraseña. En un formulario que uso para pedir la contraseña para una BB.DD. Firebird, en el TEdit en el que se pide la contraseña por defecto al pulsar cada tecla aparece un asterisco porque en la propiedad PasswordChar tengo puesto ese valor.

El CheckBox que hay a la derecha cambia los asteriscos por lo que se ha tecleado con este código:
Código:
void __fastcall TfLogin::CheckBox1Click(TObject *Sender)
{
     int nPos = Clave->SelStart;
     Clave->PasswordChar = CheckBox1->Checked ? NULL : '*';
     Clave->SelStart = nPos + 1;
     Clave->SetFocus();
}

Espero que te valga.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias Angel, pero no era eso exactamente, se trata de mostrar los asteriscos en una columna del DBGrid y quitarlos a voluntad.
Creo que lo he conseguido, ahí va como lo he hecho:
He creado un archivo .ini donde guardo el estado del checkbox el cual leo al inicio del programa para comprobar si está marcado:
Código:

__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
   TIniFile *opc = new TIniFile(ExtractFilePath(Application->ExeName)+"\\opciones.ini");
    CheckBox1->Checked = opc->ReadBool("contraseña","mostrar",false);
   delete opc;
}

En el OnClick del CheckBox guardo su estado en el archivo .ini:
Código:

void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
   TIniFile *opc = new TIniFile(ExtractFilePath(Application->ExeName)+"\\opciones.ini");
   opc->WriteBool("contraseña","mostrar",CheckBox1->Checked);
   delete opc;
}

Y en el OnGetText del campo contrasenya el siguiente código:
Código:

void __fastcall TForm1::ABSQuery1contrasenyaGetText(TField *Sender, UnicodeString &Text,
        bool DisplayText)
{
   TIniFile *opc = new TIniFile(ExtractFilePath(Application->ExeName)+"\\opciones.ini");
   if (CheckBox1->Checked == true) {
      Text = ABSQuery1->FieldByName("contrasenya")->AsAnsiString;
   }
   else {
      Text = StringOfChar('*',ABSQuery1->FieldByName("contrasenya")->AsAnsiString.Length());
   }
   delete opc;
}

Y ahora si funciona sólo con seleccionar o deseleccionar el checkbox se muestran u ocultan los asteriscos de manera que puedes ver o ocultar las contraseñas.
Pongo el código por si puede ayudar a alguien Very Happy
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

aha, veo que iban por ahi los tiros..... al final lo del if else te ha estimulado las neuronas eh?? XDD

lo que pasa que lo dije asi de cabeza el codigo....necesitaba ser ajustado pero veo que te las has arreglado bien.....gracias por compartirlo Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

De nada compi Wink
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.