sábado, 29 de março de 2014

Delphi XE5 Android/iOS - Form Modal em janela PopUp


Esta vídeo aula tem como objetivo ensinar como criar um projeto FireMonkey Android/iOS mostrando como exibir uma janela no estilo modal, e também como chamar um segundo form no estilo modal (popup). 


Foi criado uma classe genérica para auxiliar nesse desenvolvimento. Espero que gostem, qualquer dúvida, sugestão ou comentário basta comentar aqui ou no meu blog. Abraços e bons estudos.

19 comentários:

  1. Anderson sou novato em android e estou fazendo por base seus exemplos!!
    Instalei o Xe5 mas o mesmo não encontra as classe. saberia informar o que seja?

    Cláudio

    ResponderExcluir
    Respostas
    1. Provavelmente foi erro de instalação. Fora isso não sei o que pode estar acontecendo.

      Boa sorte.

      Excluir
    2. Anderson, sabe como eu poderia executar um streamming de radio web na minha aplicação mobile?

      Excluir
  2. Anderson, meu nome é Fábio, tenho assistido vários de seus vídeos e sempre aprendo muito, pois suas explicações são sempre claras e de um conteúdo muito útil. Estou em faze final da minha aplicação xe5 android e este modal vai servir pra fechar com chave de ouro. Bem, veja se consegue me ajudar, estou tendo 3 problemas. 1) No android quando estou em 1 looping de inserção de registro por exemplo, depois de alguns segundos o android diz que a aplicação não está respondendo (sendo que está) e pede pra fechar ou aguardar, isso não pode acontecer. 2) qdo chamo um showmessage ou vem alguma msg de erro e vc demora a clicar no ok, a aplicação trava. 3) Qdo o celular desliga e vc liga novamente com a aplicação aberta, ou a imagem da tela sobe e fica preta embaixo ou fica toda preta, aí só se clicar na tela que volta ao normal. Não sei se é muito pedir ajuda a você, mas desde já agradeço

    ResponderExcluir
    Respostas
    1. Muito obrigado, é bom saber que estou ajudando.

      1) Tente executar o comando application.processmessage (algo assim) a cada volta do loop. Ou colocar um progress bar

      2) Não sabia desse erro, deve ser erro do delphi, neste caso, tente mandar email pra eles.

      3) Também acho que deve ser bug do delphi, tente no formcreate fazer o repaint ou algo assim.

      Abraços e boa sorte.

      Excluir
  3. Olá Anderson, Parabéns pelas video aulas, estão show de bola e estão me ajudando muito em um sistema de vendas mobile que estou desenvolvendo, mas estou com uma dúvida.
    Já procurei e não nada que tivesse um explicação clara de como fazer.
    Acontece o seguinte, eu tenho uma tela com vários edits, quando eu clico sobre algum dele aparece o teclado, porém os edits que estão na parte inferior da tela acabam ficando escondidos atras do teclado.
    Já vi aplicação onde quando aparece o teclado surge uma barra de rolagem na janela e assim não esconde os edits da parte de baixo do tela e se precisar eu deslizo a tela pra ver os campos de cima.

    Você tem alguma coisa que possa me ajudar nesse problema?

    ResponderExcluir
    Respostas
    1. Olá Will, muito obrigado pelo comentário.

      Realmente esse é um problema chato, que na minha opinião tinha que ser automatico e não ter que programar a tela pra fazer isso. Depois vou montar uma vídeo aula para deixar isso mais implícito mas por hora, adapte seu formulário de acordo com o exemplo que a própria embarcadero disponibiliza e vem junto com os exemplos do delphi quando vc instala. No meu caso fica nesse diretório:

      C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\ScrollableForm

      Abre e esse projeto e modifica o seu pra deixar igual. É meio chato mas fica legal.

      Excluir
  4. Olá Anderson, consegui ajustar aqui e funcionou perfeitamente.
    Criei um form base com a codificação e estou criando os demais herdando as config. dele.

    Agora tenho mais uma dúvida se puder me ajudar.
    Como faço pra colocar uma imagem em um botão ? Olhei nos demos e não achei nada do tipo, ou eu não procurei direito :(

    Desde já agradeço pela ajuda que me prestou!! E se puder me ajudar com mais essa ficarei muito grato!

    Abraço.

    ResponderExcluir
  5. Acho que descobri, coloquei um speedbutton na tela e arrastei um timage para dentro dele no structure, tive que fazer umas gambiarras (colocar espaços em branco...rs) para o texto ficar alinhado do lado da imagem e não embaixo dela.

    Seria isso mesmo ou tem uma forma mais correta de se fazer isso?

    Obrigado pela atenção e ajuda!!

    ResponderExcluir
    Respostas
    1. Sinceramente não sei como seria o melhor jeito, ainda não precisei fazer isso, sempre uso os estilos que já vem no styleloockup kk

      Se ficou bom então bola pra frente. Abraços

      Excluir
    2. Seria legal se tivesse uma opção nos stylelookup para selecionar uma imagem.
      O meu ficou legal, mas agora estou tendo problema para clicar no botão, pois mesmo dentro do botão o imagem fica por cima dele, e não consigo clicar no botão, ai o jeito seria programar o clique do image...rsrs...fora isso ficou bom.

      Agora estou vendo as outras video aulas para dar andamento no sistema...rsrs...

      Mas uma vez parabéns pelas video aulas, elas são bem claras e você tem uma boa didática o que facilita o entendimento!!
      Estou aguardando as próximas!!!!

      Abraço

      Excluir
  6. Oi Anderson, tudo bem? Primeiramente, PARABENS pelos videos. Gostaria de saber, se vc disponibiliza os fontes dos programas que vc mostra em seus videos. Caso afirmativo, onde posso baixar os exemplos. Caso não tenha um lugar comum, vc poderia me passar o link para baixar o fonte deste video.

    Abraço

    ResponderExcluir
  7. Opa, parabens pelo tutorial Anderson. Criei a nova classe para facilitar a utilização das novas janelas....porém, tenho um problema que você já deve ter tido tb: nao é possível acessar os componentes da tela através do form principal. Como a classe instancia uma nova 'tela' baseada no form passado como parametro, os comopnentes são 'copiados', logo, 'formantigo.componente' nao faz acesso ao componente real. Tendo isto em vista, tentei utilizar um 'FindComponent' para pegar a instancia do componente e usando casting, mudar as propriedades dele. Ex: 'TEdit(FindComponent('teste')).text := 'ok'.....o problema é que isso só funciona no windows, no android o FindComponent nao retorna NADA no android (mesmo se ele for chamado dentro da classe criada). Você achou alguma solução para 'injetar' dados nos componentes da tela criada?

    ResponderExcluir
  8. vc tem algum exemplo mandando imprimir algo via android? nas mini impressoras ou no google cloud print???

    ResponderExcluir
  9. Ola teria como enviar a unit utFormModal?
    se possivel eu@eremim.com.br

    ResponderExcluir
  10. Olá, Anderson, Parabéns, estou utilizando essa forma que você passou mas estou com um problema, tenho uma ListView no Form principal e quando chamo a janela e cadastro um novo registro, ao fechar o Form eu gostaria de atualizar o ListView, Como não é ShowModal você sabe me dizer como posso fazer para atualizar quando o form recebe Hide usando o seu código, meu email: eliseumga@gmail.com

    ResponderExcluir
  11. boa tarde, muito bom este artigo...o método foi melhorado desde sua publicação?
    Como pegar o retorno do botão selecionado?

    ResponderExcluir
  12. y el fuente del ejemplo ?? lo puedes dar

    ResponderExcluir