1
Tutorial
Construindo uma aplicao Intraweb com
Mltiplos Forms e um Menu Principal
Por Adenilton Rodrigues
Aden@[Link]
Belo Horizonte MG
2005
Este documento pode ser livremente copiado e distribudo. Sua modificao s ser
permitida mediante contato prvio com o autor.
2
Construindo uma aplicao Intraweb com Mltiplos Forms
E um Menu Principal
Este tutorial demonstrar a tcnica da criao de uma aplicao Intraweb usando mltiplos forms e um
menu principal para acion-los. O funcionamento ser similar a uma aplicao GUI tradicional do
Windows.
Vamos criar uma aplicao com um formulrio Principal e 3 formulrios adicionais, que a ttulo de
exemplo, sero:
1. Form Principal
2. Form Cadastros
3. Form Consultas
4. Form Relatorios
Uma caracteristica dessa aplicao que o Menu Principal ser visivel em todos os forms sem a
necessidade de codificao extra ou redundncia de recursos e controles. Para tanto, o menu ser
inserido dentro de um objeto Tframe do Delphi e incorporado a todos os forms da aplicao.
1
o
. passo: Criar a Aplicao Intraweb:
Execute o Delphi e acesse a opo: File, New, Other, Intraweb
3
Escolha Intraweb Application Wizard. Vamos trabalhar com uma aplicao StandAlone.
Escolha StandAlone Application e clique OK.
Aps aparecer os elementos grficos do projeto, salve sua aplicao com os seguintes nomes:
[Link], [Link], [Link] e [Link]
Mude o nome do Form Principal para frmPrincipal.
2
o
. passo: Criar o Frame para colocar o Menu Principal da Aplicao:
no Delphi acesse a opo: File, New, Other, Intraweb
Escolha New Frame e clique OK. Na prxima tela escolha HTML 4.0
4
Ao aparecer o form do Frame, mude seu nome para framMenu e salve com o nome de uMenu;
Pegue um objeto TIWMenu na paleta do Intraweb e arraste para o Frame. Coloque sua
propriedade Align em alClient. Ajuste o frame para ficar parecido com a figura abaixo:
V ao Object Inspector do Delphi, escolha o objeto IWFrameRegion e modifique as seguintes
propriedades:
Align = alClient;
ClipRegion = False;
[Link] = False;
[Link] = False;
Ainda no Object Inspector, encontre o objeto framMenu e modifique as seguintes propriedades:
[Link] = False;
[Link] = False;
Este procedimento visa evitar o aparecimento de barras de rolagem ao apresentar as opes do
menu.
V at a paleta Standard do Delphi e arraste para o frame um objeto do tipo TMainMenu:
Clique sobre o objeto IWMenu1 (a regio cinza escuro do Frame) e faa com que a propriedade
AttachedMenu fique linkada com o MainMenu1.
Configure a propriedade Align para alTop (ou alClient)
5
D um clique duplo sobre o MainMenu1 e adicione os items abaixo:
Pra facilitar o trabalho, mude a propriedade Name dos items criados no MainMenu para:
mnuFormularios, mnuCadastros, mnuConsultas, mnuRelatorios, mnuSair.
3
o
. passo: Criar os formularios adicionais
Execute o Delphi e acesse a opo: File, New, Other, Intraweb
6
Escolha New Form e clique OK. Na prxima tela escolha escolha Application Form
Mude o nome desse Form para frmCadastros e salve com o nome de [Link]
Repita os procedimentos acima e crie mais dois novos forms:
2
o
. form: O nome ser frmConsultas e ser salvo como [Link]
3
o
. form: O nome ser frmRelatorios e ser salvo como [Link]
4
o
. passo: Definir as rotinas que apresentaro os formulrios.
Acrescente clausula Uses da unit do Frame (arquivo uMenu) as seguintes units: IWAppForm,
IWInit, IWTypes. Voc ter uma configurao similar abaixo:
unit uMenu;
interface
uses
SysUtils, Classes, Controls, Forms, IWVCLBaseContainer, IWColor, IWContainer,
IWRegion, IWHTMLContainer, IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl,
IWControl, IWCompMenu, Menus, IWAppForm, IWInit, IWTypes;
Na seo implementation, adicione as units dos formulrios adicionais:
implementation
{$R *.dfm}
Uses uCadastros, uConsultas, uRelatorios;
7
Na seo Private do Frame, defina a seguinte procedure:
type
TframMenu = class(TFrame)
IWFrameRegion: TIWRegion;
IWMenu1: TIWMenu;
MainMenu1: TMainMenu;
mnuFormularios: TMenuItem;
mnuCadastros: TMenuItem;
mnuConsultas: TMenuItem;
mnuRelatorios: TMenuItem;
N1: TMenuItem;
mnuSair: TMenuItem;
private
{ Private declarations }
procedure ShowForm(AFormClass: TIWAppFormClass);
public
{ Public declarations }
end;
Pressione CTRL+SHIFT+C pro Delphi criar a estrutura da procedure e nela escreva:
procedure [Link](AFormClass: TIWAppFormClass);
begin
TIWAppForm([Link]).Release;
[Link](WebApplication).Show;
end;
Esta rotina se encarregar de deixar apenas um formulario visivel todas as vezes que algum item do
menu for acionado.
5
o
. passo: Realizar as chamadas aos formulrios atravs do menu
D um clique duplo sobre o objeto TmainMenu do Frame. D um clique duplo sobre o item
Cadastros e escreva o cdigo abaixo para o evento OnClick:
procedure [Link](Sender: TObject);
begin
ShowForm(TfrmCadastros);
end;
Repita o procedimento para os demais itens, e ao final seu cdigo ficar assim:
procedure [Link](Sender: TObject);
begin
ShowForm(TfrmCadastros);
end;
procedure [Link](Sender: TObject);
begin
ShowForm(TfrmConsultas);
end;
procedure [Link](Sender: TObject);
begin
ShowForm(TfrmRelatorios);
end;
8
Para a opo Sair do Menu, use o codigo abaixo no evento onClick:
procedure [Link](Sender: TObject);
begin
[Link]('Obrigado por usar esse programa');
end;
Neste momento, salve todo seu cdigo e experimente rodar seu projeto. Se tudo estiver correto,
o projeto ser executado sem erros e a tela do servidor do Intraweb aparecer:
Pressione F9 nessa tela e o Browser ser acionado. No momento ainda no acontecer nada porque no
linkamos o menu. Isso s pra testar se o projeto est isento de erros. Feche a aplicao e volte ao
Delphi.
6
o
. passo: Configurar a apresentao do menu nos formularios
Uma vez configurado o menu principal, hora de realizar seu link com os diversos formularios da
aplicao. Faa o seguinte.
V para o formulrio Principal, e na paleta Standard do Delphi arraste um objeto TFrame para a
rea do formulrio. Na tela que surgir, escolha o framMenu, conforme a tela abaixo:
9
Aps colocar o Frame no form, d um enter e configure sua propriedade Align para alTop.
Para testar, pressione F9 e execute a aplicao, voc ter algo similar a tela abaixo:
Veja que o menu j est sendo apresentando para o formulrio principal da aplicao. Repita os
mesmos procedimentos para adicionar os menus nos demais formularios (frmCadastros,
frmConsultas e frmRelatorios)
Para testar o funcionamento, coloque alguns componentes em cada form e execute a aplicao.
Veja que agora os forms sero chaveados automaticamente conforme a opo escolhida no
menu.
10
Configuraes Extras
Em certos momentos h a necessidade de se modificar alguns parametros do Frame ou do Menu ao
inicializar a aplicao. Tal como configurar cores, alterar fontes, etc.
O TFrame do Delphi no possui o evento onCreate, o que dificulta bastante a automao desses
recursos. A melhor forma ento de se fazer isso sobrescrever o evento onCreate do Frame e adicionar
ai as configuraes desejadas. Veja como fazer isso:
1. Abra a unit do framMenu e na seo Public escreva;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
end;
Pressione as teclas CTRL+SHIFT+C para o Delphi definir o prottipo do mtodo
construtor.
2. Escreva ento o seguinte cdigo:
constructor [Link](AOwner: TComponent);
begin
inherited;
With IWMenu1 do Begin
[Link] := 'Verdana, Helvetica, Sans-Serif';
[Link] := [Link];
[Link] := [Link];
[Link] := [Link];
[Link] := [Link];
[Link] := [Link];
End;
[Link] := alClient;
[Link] := False;
[Link] := False;
[Link] := False;
[Link] := alTop;
[Link] := 1000;
end;
O cdigo apresentado serve para inicializar a aparncia do menu principal.
Por Adenilton Rodrigues
Aden@[Link]
Belo Horizonte MG
2005