[Lazarus-es] ruidito
José Mejuto
joshyfun en gmail.com
Vie Jul 9 13:32:27 CEST 2010
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é
More information about the Lazarus-es
mailing list