Problema com Teclas de funções em todos os formularios

Delphi

15/11/2012

Galera eu tenho uma aplicação com formulario TDI, ou seja, eu carrego todos os forms na tela caso o usuario queira, e tenho um formulario modelo com um TAction onde todos os outro formulários herdam do form modelo, e nesse TAction tem um atalho no gravar com o F5, ou seja, em todos os formulario o F5 grava, mas quando eu tenho mais de um formulario aberto, ele não funciona, ou melhor, só funciona as vezes, é como se ele não soubesse em qual formulario gravar. existe alguma maneiro de corrigir esse problema, tipo: identificar qual o formulario que esta ativo no momento e executar o action respectivo?
Sidney Abreu

Sidney Abreu

Curtidas 0

Respostas

Ewerton Rodrigues

Ewerton Rodrigues

15/11/2012

Screen.ActiveForm.Name


Este comando acima retorna o nome do form ativo
GOSTEI 0
Sidney Abreu

Sidney Abreu

15/11/2012

já fiz isso, mas mesmo assim as teclas continuam do mesmo jeito.

o codigo que uso para abri os forms:
procedure TFrmPrincipal.NovaPagina(ClasseForm: TFormClass;
  IndiceImagem: Integer);
var
  Aba    : TJvTabBarItem;
  Pagina : TJvCustomPage;
  Form   : TForm;
begin

  //verifica se pode abrir o form
  if not PodeAbrirFormulario(ClasseForm, Pagina) then
  begin
    JvPageList.ActivePage := Pagina;
    Exit;
  end;

  //cria uma nova aba
  Aba := JvTabBar.AddTab('');

  //instancia uma página padrão
  Pagina := TJvStandardPage.Create(Self);

  //seta a PageList da nova página para aquela que já está no form principal
  Pagina.PageList := JvPageList;

  //cria um form passando a página para o seu construtor, que recebe um TComponent
  Form := ClasseForm.Create(Pagina);
  FormAtual := Form;

  //Propriedades do Form
  with Form do
  begin
    Align       := alClient;
    BorderStyle := bsNone;
    Parent      := Pagina;
  end;

  //Propriedades da Aba
  with Aba do
  begin
    Caption    := Form.Caption;
    ImageIndex := IndiceImagem;
    PopupMenu  := Self.PopupMenu;
  end;

  //ajusta o título (caption) das abas
  AjustarCaptionAbas(ClasseForm);

  //ativa a página
  JvPageList.ActivePage := Pagina;

  FormAtivo := Form.Name;

  //exibe o formulário
  Form.Show;

end;
GOSTEI 0
Sidney Abreu

Sidney Abreu

15/11/2012

Segue o link para download do exemplo que estou usando, ao abrir todos os forms tecla F5, ele só aciona o primeiro formulario mesmo estando ativo o ultimo form.

[url]http://www.7master.com.br/Demo%20com%20JvTabBar.rar[/url]
GOSTEI 0
POSTAR