Fórum Campo obrigatório em PageControl #351087
26/12/2007
0
Tenho uma rotina que passa por todos os componentes do form e verifica, através do TAG, se o campo é obrigatório. Caso esteja vazio dá uma mensagem e joga o foco.
Até aí minha função dava certo, até que em uma tela o foco estava dentro de uma aba.
Pedaço do código da função:
with xForm do begin for I := ComponentCount - 1 downto 0 do begin if Components[I].Tag = xTag then begin try if (Components[i] is TEdit) and (TEdit(Components[i]).text = ´´) then begin TEdit(Components[i]).SetFocus; xErro := true; break; end... etc...
Minha dúvida: como eu sei se o Components(I) está dentro de um [b:d0279603d1]PageControl[/b:d0279603d1] , para dar o ´pagecontrol.activepage ...´ antes do setfocus ?
Valeu :!:
Powerlog Tecnologia
Curtir tópico
+ 0Posts
07/01/2008
Powerlog Tecnologia
Gostei + 0
08/01/2008
Asales
tente fazer algo como:
if edit1.parent = tabsheet3 then
begin
pagecontrol1.ActivePage:= tabsheet3;
edit1.setfocus;
end;
Gostei + 0
08/01/2008
Powerlog Tecnologia
Gostei + 0
09/01/2008
Devmedia
Tudo bom cara?
Olha, vendo seu código acima. Vi que está correto. Agora, me bateu uma dúvida.
Quantas TabSheet voce tem dentro da PageControl?
Já tentou buscar o parent do edit?
Estou sem o Delphi aqui. Mas pensando aqui numa possibilidade. Teste ai.
Talvez não funcione. Mas não custa tentar.
var qualesta : String; begin qualesta := TEdit(Components[i]).Parent; PageControl.ActivePage := qualesta TEdit(Components[i]).SetFocus;
Não sei. se vai funcionar. Mas a idéia seria esta.
Quando chegar em casa. Vou pesquisar melhor.
Mas desde já. Procure algo sobre localização do componente associado a Parent no Form.
Um abraço.
Gostei + 0
10/01/2008
Djjunior
if Edit1.Parent.ClassType = TTabSheet then// o Parente não é o pageControl e sim o a página proriamente dito TPageControl(TTabSheet(Edit1.Parent).Parent).ActivePageIndex := TTabSheet(Edit1.Parent).TabIndex
Gostei + 0
10/01/2008
Powerlog Tecnologia
Gostei + 0
10/01/2008
Powerlog Tecnologia
else if (Components[i] is TEdit) and (TEdit(Components[i]).text = ´´) then begin //dentro do tabsheet if TEdit(Components[I]).Parent.ClassType = TTabSheet then// o Parente não é o pageControl e sim o a página proriamente dito TPageControl(TTabSheet(TEdit(Components[I]).Parent).Parent).ActivePageIndex := TTabSheet(TEdit(Components[I]).Parent).TabIndex; TEdit(Components[i]).SetFocus; xErro := true; break; end
com esse ´if´ para cada tipo de controle que eu uso (edit, combo, radiogroup, etc)
Valeu
:!:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)