Delphi - Edit

 
Vista:

Edit

Publicado por Cristián (115 intervenciones) el 19/08/2003 21:27:53
Hola! espero me ayuden ;) ¿Cómo le puedo hacer para que cuando escriba en un edit (o maskedit) se escriba otro carater (aleatorio), pero que la cadena original me la guarde en otra variable? O sea.... en el teclado yo escribo 'HOLA', pero que se vea en el edit '$G4q' (ejemplo), pero que en la variable si se guarde 'HOLA'.......... espero alguien me ayude, gracias :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Edit

Publicado por Delfino (1216 intervenciones) el 19/08/2003 21:42:57
Tienes q hacer uso del evento OnKeyPress de esta Edit y guardar la letra q escribes y despues cambiar la letra q se muestra en la edit con el parametro key:

MiVar1 := key;
MiVar2 := MiVar2 + MiVar1;
key := '$';
etc..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edit

Publicado por Cristián (115 intervenciones) el 19/08/2003 22:26:54
Ha! ok, gracias. pero.... lo que trato de hacer es que en vez que solo sea '$' sea cualquier caracter aleatoriamente... A, a, 1, %, etc..... por cada tecla que se presione........ eso es lo que no se hacer........ ya que al final me dice que no es compatible string con char... o no se que mas puedo hacer...... espero me ayudes ;) Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edit

Publicado por Diego Romero (636 intervenciones) el 20/08/2003 02:14:25
El parámetro Key es de tipo Char por lo tanto podrías generar un caracter aleatorio mas o menos así:
Key:=Chr(Random(29)+65);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edit

Publicado por Cristián (115 intervenciones) el 20/08/2003 07:13:57
Ohhh!! Muchas gracias, justo lo que buscaba ;) ahora... abusando un poco..... puedo con ese mismo Key saber si se ha presionado alt, ctrol, o esc?? osea... tienen un código ascii que pueda capturarlo con el evento OnKeyPress? jiji!! Gracias ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edit

Publicado por Delfino (1216 intervenciones) el 20/08/2003 13:49:45
Esos no tienen codigo ascii y por tanto no pueden ser manejados en el evento onKeyPress (q maneja solo los caracteres ascii), pero se pueden manejar en el evento onKeyDown q maneja todas las teclas del teclado, q ademas tiene el parametro TShiftState con el cual puedes saber el estado de las teclas Alt, Ctrl, y Shift; mira en la ayuda de Delphi sobre este evento y veras como puedes referirte a cualquier tecla con una constante..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edit

Publicado por Cristián (115 intervenciones) el 20/08/2003 18:59:16
Ha!!! ok gracias... si ya vi en la ayuda....... :) pero a ver..... aqui sigo de pregunton :p ... Lo que trato de hacer es bloquear ctrl+alt+del...... con un ejemplo que vi se me ocurre algo asi:

if (shift = ([ssCtrl, ssAlt])) then
showmessage('Ctrl+alt');

pero yo lo que quiero es que en vez de que me aparesca el mensaje.... simplemente no haga nada.... pero que evite que se complete ctrl+alt+del, que de alguna forma lo bloquee (es que eso no lo se hacer). Al igual que alt+tab y ctrl+esc (boton inicio)... me lo pidieron en la escuela :p ,jeje!! espero me ayuden... ya que encontre otro codigo mas o menos asi

if (key=vk_control) then
--------

pero no se como hacerle para que responda a la combinacion de teclas... bueno, es un rollo.... espero me ayuden. gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edit

Publicado por Diego Romero (636 intervenciones) el 21/08/2003 00:58:27
Ah!, ese es otro tema totalmente diferente. Las combinaciones de tecla que pertenecen al sistema no se propagan a los programas de usuario, no podrás bloquear esas teclas en ningún evento OnKeyDown/Up porque Windows responde a ellas ANTES de que lleguen a los programas.
Me temo que tendrás que jugar con las APIs de Windows para lograr el bloqueo.
Por ejemplo, para deshabilitar ALT+Tab se debe hacerle creer a Windows que se está ejecutando el protector de pantallas, hay una API para eso:
procedure TForm1.SacarAltTab;
var
dummy:Integer;
begin
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @dummy, 0);
end;

procedure TForm1.PonerAltTab;
var
dummy:Integer;
begin
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @dummy, 0);
end;
Pero NO puedes evitar que la combinación Ctrl+Alt+Del deje de funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Edit

Publicado por Cristián (115 intervenciones) el 21/08/2003 05:23:47
Je Je!!! bueno.... yo usaba esa API pero no funciona en XP, en 9X si bloquea todas las combinaciones de teclas que quiero, pero en XP no surte efecto...Por eso me preguntaba si hay alguna otra forma :D? Espero me ayudes..... he buscado en la web, pero no encuentro ayuda sobre,esto... Me sería de mucha ayuda Gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar