Esse artigo faz parte da revista Clube Delphi edição 35. Clique aqui para ler todos os artigos desta edição

Imagem

 

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

 

IntraWeb de ponta a ponta

Desenvolvimento visual para Web com Delphi 7

Na Edição 33, apresentamos a nova biblioteca IntraWeb do Delphi 7. Neste artigo conheceremos muitos recursos do IntraWeb através da aplicação de exemplos práticos.

O IntraWeb é um framework (conjunto de classes, componentes e ferramentas) para o desenvolvimento rápido de aplicações web, que impressiona pela sua facilidade e similaridade com a programação visual tradicional do Delphi. Desenvolvido pela empresa Atozed Software, já está na versão 5 e agora faz parte do Delphi 7 (o IntraWeb também tem versões para Delphi 5 e 6, Kylix, Java, C++ e, brevemente, .Net). O produto já ganhou o prêmio “Best Web Development Tool” da revista Delphi Informant em 2002, o que atesta sua qualidade.

Vamos então conhecer esta excelente ferramenta na prática, através de exemplos.

Aplicações IntraWeb

Para criar uma nova aplicação IntraWeb vá até o Object Repository, clicando em File|New>Other e selecionando a guia IntraWeb. Você terá as seguintes opções:

Apache DSO Application – Cria uma aplicação (DLL) compatível com o Apache.

Apache 2 DSO Application – Cria uma aplicação (DLL) compatível com o Apache versão 2.

Application Form – Cria um novo formulário para ser usado em aplicações IntraWeb.

ISAPI Application – Cria uma DLL para rodar no Internet Information Server (IIS).

PageForm – Cria um novo formulário IntraWeb que pode ser usado em aplicações WebBroker e WebSnap associado a um produtor de página (IWPageProducer).

Stand Alone Application – Cria uma aplicação IntraWeb que contém um servidor Web, interno à aplicação, de forma que não é necessário hospedar a aplicação em um servidor comercial como IIS ou Apache. (Nota: não coloque este executável em um diretório de scripts do servidor, pois um servidor Stand Alone não é um CGI). Este recurso é semelhante ao Web App Debugger do WebSnap, porém é totalmente funcional para distribuição.

Stand Alone Application with Data Module – Cria um servidor Stand Alone e um Data Module associado, contendo rotinas para proteger o acesso concorrente às variáveis do Data Module.

 

Inicie sempre o desenvolvimento de aplicações usando um servidor Stand Alone, pois além de ser mais simples facilita a depuração. É claro que você pode converter facilmente um tipo de aplicação em outro, por exemplo para ISAPI ou Apache, como mostraremos no final do artigo.

Modes e um primeiro exemplo

Para construir um exemplo simples, escolha a opção Stand Alone Application. Neste momento você deve escolher um diretório onde serão salvos os arquivos do projeto. Clique em Ok. Depois clique em View|Forms e abra o formulário FormMain. Observer que este formulário não é um TForm, mas um TIWAppForm, específico para aplicações IntraWeb.

Aplicações IntraWeb possuem dois modos de desenvolvimento: Application Mode e Page Mode. Estamos usando o primeiro caso quando criamos uma aplicação IntraWeb Stand Alone, Apache DSO ou ISAPI e formulários do tipo Application Forms.

Se criarmos uma aplicação CGI, ISAPI ou Apache usando outra tecnologia web do Delphi, como WebBroker e WebSnap, e apenas usarmos os formulários do IntraWeb (os Page Forms), estaremos usando o Page Mode, já que o IntraWeb neste caso não é o responsável pela aplicação. Um exemplo do uso de Page Mode foi mostrado em nosso artigo da Edição 33, onde criamos uma aplicação WebSnap, apenas usando formulários individuais do IntraWeb.

Vale observar que a versão do IntraWeb que acompanha o Delphi Professional pode somente operar no Page Mode.

Paleta IW Standard

A paleta IW Standard contém os componentes básicos para a construção de um formulário IntraWeb. São equivalentes aos componentes da paleta Standard do Delphi, porém só podem ser utilizados em formulários IntraWeb ou em Frames do Delphi (TFrames). Você não pode, por exemplo, colocar um TLabel em um formulário IntraWeb; deve usar o equivalente IWLabel. Caso queira criar seus próprios controles para serem utilizados em formulários IntraWeb, você deve criá-los como descendentes de IWControl.

 

Imagem

Figura 1. A paleta IW Standard

Vamos fazer agora um primeiro teste simples: uma soma. Coloque no formulário dois IWEdits (limpe seu Text), um IWButton (com o Caption “Somar no Server”) e uma IWLabel para exibir o resultado da soma. Coloque mais dois IWLabels com Captions “+” e “=” (veja o layout na Figura 2). Dê um duplo clique no IWButton e escreva:

 

IWLabel1.Caption := InttoStr(

   StrToInt(IWEdit1.text) +

   StrToInt(IWEdit2.text));

 

Ao executar esta soma (quando o usuário apertar o botão), será disparada uma nova requisição HTTP ao servidor Web – isto porque todos os eventos codificados no Delphi com IntraWeb são “server-side” (acontecem do lado do servidor). Você não precisa escrever uma linguagem de Script para realizar alguma tarefa. Você usará Delphi!

Em algumas situações, claro, é melhor usar um script do que disparar uma nova requisição para o servidor. Em nosso exemplo, poderíamos processar a soma diretamente no browser ao invés de passar os valores para serem somados no servidor. O IntraWeb fornece uma maneira simples de passar um script para o browser, como mostramos a seguir.

Adicione um segundo IWButton no formulário, com o Caption “Somar Local”. Vá até sua propriedade ScriptEvents, selecione o evento OnClick e digite o seguinte código JavaScript:

 

document.all.IWLABEL1.innerText=eval(

   document.all.IWEDIT1.value)+

...

Quer ler esse conteúdo completo? Tenha acesso completo