Reposicionar botoes num form herdado
Olá amigos,
tenho um form Pai que nele já está as configurações padrões. No mesmo existe botoes de salvar e fechar, sendo que eu queria que quando o form filho fosse carregado esses botões fossem posicionados sempre no mesmo local. Entao no Pai, no evento show tenho que fazer isso, só não consigo referenciar-me ao form atualmente ativo, que seria o filho:
Até
tenho um form Pai que nele já está as configurações padrões. No mesmo existe botoes de salvar e fechar, sendo que eu queria que quando o form filho fosse carregado esses botões fossem posicionados sempre no mesmo local. Entao no Pai, no evento show tenho que fazer isso, só não consigo referenciar-me ao form atualmente ativo, que seria o filho:
procedure TfPai1.FormShow(Sender: TObject); begin Start(self); PainelLinha.Left := TForm(Self.Owner).Left ; PainelLinha.Width := TForm(Self.Owner).Width ; PainelLinha.Top := TForm(Self.Owner).Height - 63; BotaoFechar.Top := TForm(Self.Owner).Height - 56; BotaoFechar.Left := TForm(Self.Owner).Width - 162; BotaoSalvar.Top := TForm(Self.Owner).Height - 56; BotaoSalvar.Left := TForm(Self.Owner).Width - 86; end;
Até
Aldus
Curtidas 0
Respostas
Aldus
06/07/2006
Alguma sugestão?
GOSTEI 0
Aldus
06/07/2006
Boma dia, consegui localizar o form atualmente usado com apenas:
Só não consigo pegar os tamanhos dos componentes deste form, pois no comando Self.Components[1] não existe a propriedade Top e Height.
Eu quero ajustar automaticamente o ClientHeight do form com base nos tamanhos dos componentes contidos no form (Self), só preciso saber esses valores.
O evento Show do FormPai ficaria assim:
Alguma sugestão?
Self.
Só não consigo pegar os tamanhos dos componentes deste form, pois no comando Self.Components[1] não existe a propriedade Top e Height.
Eu quero ajustar automaticamente o ClientHeight do form com base nos tamanhos dos componentes contidos no form (Self), só preciso saber esses valores.
O evento Show do FormPai ficaria assim:
MaxH:=0; for i:=0 to Self.ComponentCount-1 do begin if ((Self.Components[I] is TEdit) or (Self.Components[I] is TCurrencyEdit) or (Self.Components[I] is TGroupBox)) then begin if MaxH < (Self.Components[I].Top+Self.Components[I].Height) then MaxH := (Self.Components[I].Top+Self.Components[I].Height); end end; Self.ClientHeight := MaxH + 40; if Self.PainelLinha.Visible then begin PainelLinha.Left := 0 ; PainelLinha.Width := Self.Width ; PainelLinha.Top := Self.Height - 63; end; BotaoSalvar.Top := Self.Height - 56; BotaoSalvar.Left := Self.Width - 162; BotaoFechar.Top := Self.Height - 56; BotaoFechar.Left := Self.Width - 86; Self.Refresh
Alguma sugestão?
GOSTEI 0
Aldus
06/07/2006
Consegui amigos, se alguém precisar de ajuda quanto ao exposto, estou a disposição.
GOSTEI 0
Micheus
06/07/2006
Boma dia, consegui localizar o form atualmente usado com apenas:
[quote:8d01d2b655]Código:
Self.
[/quote:8d01d2b655][b:8d01d2b655]aldus[/b:8d01d2b655], só para exclarecer, quando vc utiliza Self dentro de um form está apenas se referindo a instância deste form (seria como o endereço dele próprio). Chamado de qualquer procedimento que não esteja definido num form, resultará em erro de compilação. Para saber a qualquer momento qual o form está ativo, vc pode utilizar a variável global Screen e sua propriedade ActiveForm - este sim indica o form atualmente ativo.GOSTEI 0