Messagebox rouba foco do Tdbedit seguinte
Galera
No delphi 5.0 aqui no meu trabalho, quando o cara sai do campo site eu verifico se está vazio, se estiver eu pergunto se a empresa tem site. se responder sim, volto o foco para o campo site, mas se responder não ao inves de ir para campo seguinte ele trava o campo seguinte e só permite ir para outros campos, mas aquele só é liberado quando clicar em outro campo.
Bug feio de delphi 5.0 alguem pode me ajudar
No delphi 5.0 aqui no meu trabalho, quando o cara sai do campo site eu verifico se está vazio, se estiver eu pergunto se a empresa tem site. se responder sim, volto o foco para o campo site, mas se responder não ao inves de ir para campo seguinte ele trava o campo seguinte e só permite ir para outros campos, mas aquele só é liberado quando clicar em outro campo.
Bug feio de delphi 5.0 alguem pode me ajudar
Dr. Interbase
Curtidas 0
Respostas
Marco Salles
01/08/2007
acho que voce deveria colocar um fragmento do seu código
GOSTEI 0
Dr. Interbase
01/08/2007
Fragmento do meu codigo.
desculpe amigo, mas poderia ser mais claro.
Obrigado
desculpe amigo, mas poderia ser mais claro.
Obrigado
GOSTEI 0
Marco Salles
01/08/2007
Fragmento do codigo a que me refiro é o ´pedaço´ do seu código ...
Com voce esta escrevendo isto ????
Com voce esta escrevendo isto ????
GOSTEI 0
Dr. Interbase
01/08/2007
Amigo
Eu me referi a um bug do delphi. e você diz que eu tenho que fragmentar o meu codigo.
????????????????????
Bom, eu consegui achar a solução, segue o codigo para quem quiser:
no exit do edit colocar:
procedure TmdisCad03A.dbs03ASITEExit(Sender: TObject);
var
Ctrl: TWinControl;
i:integer;
begin
If Trim(Dmquestionario.QryCad.Fieldbyname(´Site´).AsString)=´´ Then
Begin
if application.messagebox(´a Empresa tem site´,´teste´,mb_yesno)=6 then
dbs03ASITE.setfocus
else
Begin
// guarda na variavel o controle que foi clicado ou que entrou pelo tab
Ctrl :=screen.activeControl;
if Ctrl=nil then
exit;
// forço o focus para o control clicado
PostMessage(TWinControl(Ctrl).Handle, WM_SETFOCUS, 0, 0);
TWinControl(Ctrl).Setfocus;
end;
Obrigado para os que ajudam com verdadeira intenção de ajudar.
Eu me referi a um bug do delphi. e você diz que eu tenho que fragmentar o meu codigo.
????????????????????
Bom, eu consegui achar a solução, segue o codigo para quem quiser:
no exit do edit colocar:
procedure TmdisCad03A.dbs03ASITEExit(Sender: TObject);
var
Ctrl: TWinControl;
i:integer;
begin
If Trim(Dmquestionario.QryCad.Fieldbyname(´Site´).AsString)=´´ Then
Begin
if application.messagebox(´a Empresa tem site´,´teste´,mb_yesno)=6 then
dbs03ASITE.setfocus
else
Begin
// guarda na variavel o controle que foi clicado ou que entrou pelo tab
Ctrl :=screen.activeControl;
if Ctrl=nil then
exit;
// forço o focus para o control clicado
PostMessage(TWinControl(Ctrl).Handle, WM_SETFOCUS, 0, 0);
TWinControl(Ctrl).Setfocus;
end;
Obrigado para os que ajudam com verdadeira intenção de ajudar.
GOSTEI 0
Marco Salles
01/08/2007
[b:6bc77b6818]citação de marco salles[/b:6bc77b6818]
[b:6bc77b6818]citação de Dr. Interbase[/b:6bc77b6818]
eu disse isso :?: :?: :?: :?:
[b:6bc77b6818]citação de Dr. Interbase[/b:6bc77b6818]
acho que voce deveria colocar um fragmento do seu código
[b:6bc77b6818]citação de Dr. Interbase[/b:6bc77b6818]
Eu me referi a um bug do delphi. e você diz que [b:6bc77b6818]eu tenho que fragmentar o meu codigo[/b:6bc77b6818].
eu disse isso :?: :?: :?: :?:
[b:6bc77b6818]citação de Dr. Interbase[/b:6bc77b6818]
Obrigado para os que ajudam [b:6bc77b6818]verdadeira intenção [/b:6bc77b6818]de ajudar
GOSTEI 0