Teste de campo e voltar o foco para o componente

Delphi

09/02/2004

Senhores;
Tenho uma função em uma unit (funcoes) no qual encontra-se todas as funções de meu projeto dentre elas...
function testcampo( campo:string ) :string;
begin
if campo= ´´ then
begin
campobrig;
/// focar o campo
abort;
end;
end;

Gostaria que caso o campo fosse vazio ele retornasse o foco para o campo em teste. Mas como fazer ?


Midas

Midas

Curtidas 0

Respostas

Motta

Motta

09/02/2004

é mais fácil na chamada

function testcampo( campo:string ) :string;
begin
result := (campo= ´´ );
end;


na chamada

if testcampo(edit1.text) then
if edit1.canfocus then
edit1.setfocus;

outra maneira seria a function receber um TWinControl, ou TControl , mas acho complicado demais para o que se quer fazer


GOSTEI 0
Henry.fartura

Henry.fartura

09/02/2004

Na minha opinião seria mais fácil usar o onValidade do campo e usar o seguinte comando: table1CODIGO.FocusControl;


GOSTEI 0
Henry.fartura

Henry.fartura

09/02/2004

Na minha opinião seria mais fácil usar o onValidade do campo e usar o seguinte comando: table1CODIGO.FocusControl;
lembrando que o controle deve ser um DBedit ou semelhante.

[]´s
Fabio


GOSTEI 0
Midas

Midas

09/02/2004

Como vc disse mota...
function testcampo( campo:twincontrol;s_formulario:TCustomForm) :string;
begin
if campo is tcustomedit then
begin
if s_formulario.campo.text = ´´ then
begin
campobrig;
s_formulario.campo.SetFocus;
abort;
end;
end;
end;
Porem dá erro
[Error] Funcoes_u.pas(445): Undeclared identifier: ´campo´


GOSTEI 0
Motta

Motta

09/02/2004

function testcampo( campo:twincontrol;s_formulario:TCustomForm) :string;
begin
if campo is tcustomedit then
begin
if s_formulario.campo.text = ´´ then
begin
campobrig;
//s_formulario.campo.SetFocus;
if campo.canfocus then
campo.SetFocus;
abort;
end;
end;
end;


GOSTEI 0
POSTAR