Hello Paola,
Friday, July 9, 2010, 1:50:05 AM, you wrote:
PB> type
PB> TMiClase = class(TWinControl);
PB> procedure EnterTabs(Key: char; Form: TForm);
PB> begin
PB> if (key = #13) and not(Form.ActiveControl is TCustomButton) then
PB> begin
PB> TMiClase(Form).SelectNext(Form.ActiveControl, True, True);
PB> Key := #0;
PB> end;
PB> if (key = #27) then
PB> begin
PB> Key := #0;
PB> Form.Close;
PB> end;
PB> end;
PB> Ahora le agregu� lo del ESC.(el segundo if). PERO, de todas maneras, me
PB> sigue jorobando el CLIN.... por m�s key:= #0 que pongo.
Es normal que no te funcione :) La man�a de no calificar la entrada/salida de variables. Prueba poniendo:
procedure EnterTabs(var Key: char; const Form: TForm);
De todos modos, y puestos a "mejorar" o hacerlo un poco m�s "elegante" :) Te sugiero que crees este c�digo en un .frm:
type
TFormEnterESC=class(TForm)
procedure FormKeyPress(Sender: TObject; var Key: char);
end;
procedure TFormEnterESC.FormKeyPress(Sender: TObject; var Key: char);
begin
if (key = #13) and not(ActiveControl is TCustomButton) then
begin
SelectNext(ActiveControl, True, True);
Key := #0;
end
else
if (key = #27) then
begin
Key := #0;
Close;
end;
end;
Despu�s en cada form que quieras que tenga ese funcionamiento en el KeyPress simpemente heredas desde TFormEnterESC. Vamos que en el resto de forms donde pone:
uses
system, classes...;
type MiFormdeFacturacion=class(TForm)
[...]
Lo cambias por:
uses
system, classes...,uformenteresc;
type MiFormdeFacturacion=class(TFormEnterESC)
[...]
Y autom�ticamente se hereda ese comportamiento en el keypress, as� como el keypreview=true, los colores, etc que quieras por defecto en esos forms.
PB> Y hay otra cosa rara... en otro form tengo 5 TDBEdits. Cuando presiono PB> ESC, no se dispara el evento keypress por m�s que ya verifiqu� que tengo PB> la propiedad keypreview=true.
PB> Tengo otro form similar donde uso los mismos controles y pasa lo mismo.
Hmmmm... eso si que no tengo ni idea... probar�.
PB> Cuando termine esta aplicaci�n (alg�n d�a :) ) va a funcionar en linux!! PB> pero para desarrollarla, estoy usando windows.
Lo dec�a por si era un bug de la LCL, pero por ahora parece que no :)
Best regards,
Jos�