saltar de linha no campo dbmemo

Delphi

16/05/2009

Bom dia..


Utilizo o delphi 7

Banco de dados firebird

componentes dbexpress

tenho uma tela de cadastro que coloquei o controle para quando o usuario acionar a tecla enter o cursor salta
para o proximo campo

so que apareceu um problema no campo dbmemo o usuario digita uma linha da enter o cursor salta para o proximo campo


Pergunta qual a solução para que o usuario acionar a tecla enter e saltar para a proxima linha?? e permanecer no campo memo ??



Grato

Placido


Placido

Placido

Curtidas 0

Respostas

Woinch

Woinch

16/05/2009

Adicione a seguinte condição no seu código:
if not (ActiveControl is TMemo) then


Se estiver com dúvidas de onde colocar poste o código do evento que controla se a tecla enter é pressionada para que eu possa ajudar.

Obrigado.


GOSTEI 0
Placido

Placido

16/05/2009

Meu amigo bom dia..

Obrigado pela gentileza da colaboração

Eu tenho esta tela padrao de cadastro, segue abaixo a linha de codigo

Quando o usuario aciona a tecla enter salta para o proximo campo

Só que quando o usuario esta no campo dbmemo digita a preimeira linha e da enter salta de campo.

Eu quero que quando o usuario estiver no campo dbmemo digita uma linha e da enter eu quero que o cursor permaneca no campo dbmemo

segue abaixo a minha codificao da tela normal padrao

--------------------------------------------------------------

procedure TfrmCadastro.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
if not (ActiveControl is TDBGrid) then
begin
Key := 0;

Perform(WM_NEXTDLGCTL, 0, 0);
end
else
if (ActiveControl is TDBGrid) then
begin
Key := #0;
with TDBGrid(ActiveControl) do
if selectedindex < (fieldcount -1) then
selectedindex := selectedindex +1
else
begin
DataSource.DataSet.Append;
selectedindex := 0;
end;
end;


end;

------------------------------------------------------------


Grato

Plácido


GOSTEI 0
.lg.

.lg.

16/05/2009

Como o woinch disse... ele ja te deu a resposta e você não o implementou no seu código. Não entendi se você não entendeu o que o Woinch disse ou se você nem tentou.
:?

Tai o Código. Apenas mude a parte referente:
...
if (not (ActiveControl is TDBGrid) and not (ActiveControl is TDBMemo)) then begin
...


Vai funcionar.

Abraços,
.lg.


GOSTEI 0
Placido

Placido

16/05/2009

Boa tarde..

Meu amigo nao consegui entender

Eu coloco este comando em que evento ???

Eu tenho que colocar este comando no formulario padrao de cadastro??

exemplo tenho um campo dbmemo com o nome dbObservacao

Eu coloco este comando em que evento no campo dbObservacao??


Grato

Plácido


GOSTEI 0
.lg.

.lg.

16/05/2009

Eu coloco este comando em que evento ???

Dê uma olhada no seu segundo post deste topico.

Estou me referindo a ele. Eu não seu se o form eh o principal ou um outro form...

Uma dica amigo:
Se eu postei apenas 1 linha... tente ver se a linha tem algo parecido com o que você ja postou anteriormente neste tópico. Você vera que seu segundo post, vc colocou um codigo.

O código que coloquei eh referente ao [b:bacb089797]if[/b:bacb089797] dele. Agora tente descobrir qual dos [b:bacb089797]if[/b:bacb089797] é! se vc quer que ele não saia do componente quando ele dê enter...
:wink:

Att,
.lg.


GOSTEI 0
POSTAR