Olá pessoal, este é meu primeiro artigo sobre delphi for php. Primeiramente vou falar como descobri esta ferramenta e por que resolvi utilizá-la.
Estava começando a entrar na área de desenvolvimento para website, utilizando asp .net durante um curso, quando um amigo comentou sobre a nova ferramenta da CodeGear. Comecei a pesquisar e fiquei muito interessado pois achei muito parecido com o delphi win32. Procurei uma versão Delphi for PHP trial e baixei para ver se era mesmo interessante, já que sou desenvolvedor delphi há muito tempo. Não sei como explicar, mas achei uma maravilha à facilidade da utilização da interface com a VCL php. Mas vamos deixar de papo e começar e ver como funciona esta ferramenta.
Abaixo veremos algumas perguntas mais freqüente sobre a utilização do templates no delphi for PHP?
1º - Por que o componente não aparece no template?
2º - Erro ao conectar a base de dados com template?
3º - Como associar o formulário ao template?
4º - Como utilizar o UseAjax com template?
5º - Por que o componente ‘TPanel’ não fica na posição correta?
6º - Posição dos componentes no formulário?
Vamos abordar cada uma destas perguntas no decorre do artigo.
Como nosso artigo só esta abordando delphi for php X templates, não vou comentar sobre a instalação. Vou parti do principio que o delphi for php já está instalado na máquina.
Então vamos começar!
Abra o delphi for php, vá em File->New e selecione ‘Application(Nova aplicação)’. Em seguida salve o projeto (Ctrl+S). Cuidado, pois o nome do arquivo .pas não pode conter o mesmo do projeto.
Ex: uMenu.pas, projeto Menu.phprj.
Obs: Em algumas vezes acontece de você criar uma nova aplicação ou até mesmo um novo formulário e o próprio não aparecer. Não se assustem, é só salvar tudo, fechar o formulário e abra de novo.
1º - Por que o componente não aparece no template?
Configurar template para ser utilizado pelo formulário.
Próximo passo será configurar o template, vamos ver como: Abra o html e antes da tag coloque o seguinte, {$HeaderCode}. Logo em seguida antes da tag adicione, {$StartForm}. E após para terminar, antes da tag adicione, {$EndForm}. Muita atenção ao realizar esta configuração pois é CaseInsensitive (diferi maiúsculo de minúsculo), e tem que está digitado da mesma forma do exemplo acima. Se mesmo assim o componente não estiver aparecendo no template é possível que você tenha digitado seu nome errado ou não ter posto o $ antes do nome, ex: {$edit1}. O nome dado ao componente no formulário tem que ser o mesmo no HTML, não esquecendo do $! Pronto, após isso já podemos ir ao formulário.
Ainda baseando-se no exemplo acima, vamos ver que só é possível conectar a uma base de dados utilizando template, configurando o HTML de acordo com explicação acima.
3º - Como associar o formulário ao template?
É muito simples associar formulário / template.
Podemos observar na propriedade do formulário que existem duas opções para se configurada.
TemplateEngine – Nesta opção selecione SmartyTemplate de acordo com a imagem acima.
TemplateFilename – Nesta você vai selecionar o arquivo .html que será associado
Ao formulário.
Obs: Estas propriedades são referentes ao formulário.
4º - Como utilizar o UseAjax com template?
Primeiro vamos ver o que é ájax.
“É o uso sistemático de tecnologias providas por navegadores, como Javascript e XML, para tornar páginas mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações. AJAX não é somente um novo modelo, é também uma iniciativa na construção de aplicações web mais dinâmicas e criativas. AJAX não é uma tecnologia, são realmente várias tecnologias conhecidas trabalhando juntas, cada uma fazendo sua parte, oferecendo novas funcionalidades”.
Agora veremos como utiliza-la de uma forma bem simples.
1º vamos configurar o formalário para utilizar o Ajax. Vá na propriedade do formalário UseAjax e coloque-a para true. Pronto, com isso já é possível a utilização no código, que é o proximo passo.
Observe abaixo o evento onClick da aba javaScript de um botão. No evento abaixo será colocado código.
Nota: Repare no ajaCall(‘btnFiltrarClick’) nele eu passo o evento de um clique de botão aonde estará meu código. Claro que da mesma forma poderia ser um função. Então desta forma não será dado o refresh na página.
function btnFiltrarJSClick($sender, $params)
{
echo $this->btnFiltrar->ajaxCall("btnFiltrarClick")
?>
//Aqui será colocado as criticas da rotina.
}
5º - Por que o componente ‘TPanel’ não fica na posição correta?
Posse dizer que quando comecei a utilizar template com delphi for php tive certa dificuldade na utilização deste componente. Mas depois de muita procura e não encontrar nada sobre, fui no nosso bom e velho help. Descobri que existe uma propriedade no componente chamada: Layout.Type que vem como default ABS_XY_LAYOUT. É muito simples, coloque para XY_LAYOUT e pronto, seu panel vai aparecer aonde você o colocou. Com isso você pode montar um cadastro inteiro dentro do panel e só seta-lo no template. Simples assim!
6º - Posição dos componentes no formulário?
Já me perguntarão se é preciso se preocupa com a posição dos componentes no formalário, pois a dúvida é como sairiam no template. É muito simples, não se preocupe com o formulário e sim com o template. Nele, que você irá posicionar os componentes!
Conclusão
Esta ferramenta é muito boa quando usada adquadamente.
Espero ter ajudado com este pequeno artigo. Tem ainda muito mais sobre esta ferramenta que tem revolucionado o desenvolvimento web. No próximo artigo vou falar sobre como utilizar a query de uma forma bem fácil. Até a próxima e um abraço.