Sunteți pe pagina 1din 7

0

mais Prximoblog ahcsistemas@gmail.com Painel Sair

Estao ZN
Estamos estudando e o resultado disso postamos aqui. Sinceramente desejamos que o
contedo aqui semeado possa ser til para muitas pessoas.
Seja bemvindo e fique vontade para contribuir da forma que puder e quiser.
Bola pra frente ... :)

segundafeira, 24 de agosto de 2009

Delphi Intraweb: Passar e recuperar parmetros


entre requisies HTTP

Groove ZN by
Grooveshark

por ralencar
Inicie uma aplicao Intraweb no Delphi. O Assunto sobre passar, e
recuperar, parmetros entre requisies HTTP. Especificamente,
pretendo exemplificar como chamar uma outra aplicao web, sendo
que nesta chamada passaremos parmetros, os quais, obviamente,
sero recuperados e processados pela aplicao que foi requisitada.

Neste artigo criaremos duas aplicaes Intraweb ISAPI. Um delas


(AppEstacaoZNSubmit) servir para passar parmetros para outra
(AppRequestQueryFieldsEstacaoZN). Esta segunda por sua vez,
recupera os valores destes parmetros processa e os exibe.
Ok, definido o que pretendemos fazer passamos agora a parte
prtica.
A seguir o cdigo fonte da aplicao ISAPI que chama e passa os
parmetros. Salvei essa app de com o nome AppEstacaoZNSubmit.
O Form principal e nico desta aplicao IWUnit1.pas:
unit IWUnit1;
{PUBDIST}
interface
uses
IWAppForm, IWApplication, IWTypes, IWCompButton,
Classes, Controls,
IWControl, IWCompEdit, IWCompLabel;
type
TformMain = class(TIWAppForm)
IWEdit1: TIWEdit;
IWButton1: TIWButton;
IWLabel1: TIWLabel;
EdtURLZN: TIWEdit;
IWLabel2: TIWLabel;
procedure IWAppFormCreate(Sender: TObject);
procedure IWButton1Click(Sender: TObject);
public

RSS Feed

end;
implementation
{$R *.dfm}

Blog in English Google


Translator version
Busca no blog:

uses
ServerController, SysUtils, IWForm;
procedure TformMain.IWAppFormCreate(Sender: TObjec
t);
begin
IWEdit1.Text
:= '';
IWButton1.Caption := 'Enviar - ZN';
IWLabel1.Caption := 'Digite o valor que ser en
viado';
IWLabel2.Caption := 'Digite a URL da aplicao
ISAPI que ser chamada' +
'e exibir o valor digitado acima.';
EdtURLZN.Text
:= '';
end;
procedure TformMain.IWButton1Click(Sender: TObject
);
const
AJSComando = 'window.open("%s?estacaoZnValor=%s"
)';
begin
AddToInitProc(Format(AJSComando, [EdtURLZN.Text,
IWEdit1.Text]));
end;
end.

Pesquisar
Contedo
Aleatrio
Cyber Culture
Games
Multimdia
Msica
Programao
WEB

Colaboradores
ralencar
Pedro
Felipe Guero

Em seguida o .dpr:
library AppEstacaoZNSubmit;
uses
IWInitISAPI,
ServerController in 'ServerController.pas' {IWSe
rverController: TIWServerControllerBase},
IWUnit1 in 'IWUnit1.pas' {formMain: TIWForm1};
{$R *.RES}
begin
IWRun(TFormMain, TIWServerController);
end.

Daniel Bezerra
Bruno Lichot
GMotta ZN

Amigos do EstaoZN
Muito obrigado!
Participardestesite
GoogleFriendConnect

Membros(41) Mais

No editei nada no IWServerController, portanto aps compilar e


efetuar o deploy da AppEstacaoZNSubmit.dll no IIS damos por
encerrada esta etapa do nosso exemplo.

O prximo passo codificar a segunda aplicao. Logo, novamente


inicie um novo projeto Intraweb ISAPI, salve com o nome de
AppRequestQueryFieldsEstacaoZN. No evento OnRender do
IWForm1 implementaremos o que especificamos anteriormente.
Abaixo, o fonte da IWUnit1.pas:

Arquivo do blog
2011 (6)
2010 (2)

unit IWUnit1;
{PUBDIST}

2009 (25)

Ago (2)

interface

Delphi Intraweb:
Passar e recuperar
parmetros e...

uses
IWAppForm, IWApplication, IWTypes, Classes, Cont
rols, IWControl,
IWCompLabel, IWCompListbox, IWCompMemo;

JSP e Oracle Para


apresentar uma
Treeview

type
TformMain = class(TIWAppForm)
IWLabel1: TIWLabel;
procedure IWAppFormRender(Sender: TObject);
public
end;

Mai (6)

implementation
{$R *.dfm}

Abr (6)
Mar (5)

uses
ServerController, IWForm, SysUtils;
procedure TformMain.IWAppFormRender(Sender: TObjec
t);
const
ZnMsg = 'www.estacaozn.blogspot.com O Valor rece
bido de "%s" : %s';
begin
IWLabel1.Caption := Format(ZnMsg,
[WebApplication.Request.RemoteAddr,
WebApplication.Request.QueryFields.Values['esta
caoZnValor']]);
IWLabel1.Font.Size := 20;
end;

Fev (2)
Jan (4)
2008 (80)
2007 (125)

tags
.NET
ADO

Vejamos o .dpr da AppRequestQueryFieldsEstacaoZN.dpr.

AJAX
Apache

library AppRequestQueryFieldsEstacaoZN;
uses
IWInitISAPI,
ServerController in 'ServerController.pas' {IWSe
rverController: TIWServerControllerBase},
IWUnit1 in 'IWUnit1.pas' {formMain: TIWForm1};
{$R *.RES}
begin
IWRun(TFormMain, TIWServerController);
end.

Arquitetura de Software
ASP.NET
Audio
Automao OLE
Banco de Dados
BDS
C#
Componentes
Controle de Verso

Aps proceder a implementao deste mdulo conforme ilustrado


acima, semelhante ao exemplo anterior compile e efetue o deploy da
AppRequestQueryFieldsEstacaoZN.dll no ISS.
Feito isso j possvel testar. No browser, chame o diretrio virtual
definido no deploy da primeira aplicao (AppEstacaoZNSubmit.dll).

CSS
Cyber Culture
DBA
Delphi
Diversos
English
Ferramentas Case
Flash

HTML
Humor
IDE
Internet
Internet Explorer
Intraweb
Introduo a Programo
Introduo Harmonia
Funcional
Java
Digite no IWEdit1 o valor para parmetro estacaoZnValor, o qual
ser exibido. Digite tambm a URL da segunda aplicao no
EdtURLZN, para somente ento clicar no IWButton1.

Javascript
JCL
Json
Linq
Linux
Literatura Delphi
Mencoder
Modelagem
Mplayer
Multimidia
Multimdia
Music
MySQL
Msica
Navegadores
NetBeans
Novidades
OLE DB
Oracle
Partituras
PHP
PL/SQL
POO
RPC
RSS

Na primeira aplicao, no evento OnClick do IWButton1, chamamos o


mtodo AddToInitProc de TformMain. Este mtodo nos permite
colocar scripts (Javascript) que sero executados quando a funo
Initialize()" padronizada pelo framework Intraweb, quando o
browser estiver interpretando a tag body, da pgina construda

Script
Shell Script
Sibelius

pelo Intraweb. No body onload definida a chamada a funo


Initialize()".

Slackware
SQL
Subversion
Suporte
SVN
Tableless
Tortoise
Tratamento de Excees
Tcnicas de desenvolvimento
UDF
UML
Variedades
VB6
VdeoGame
WAP
Web

function Initialize() {
InitSubmitter();
StaticInit();
if (document.body.leftMargin < 0 && document.body.
topMargin < 0) {
document.body.leftMargin = 0;
document.body.topMargin = 0;
}
InitRects(614, 451);
InitIWCLObjects();
window.open("http://localhost/requesestacaozn/?est
acaoZnValor=Landjah Estao ZN")
}

Web 2.0
Web 3.0
Webservice
Windowhttp://www.blogger.
com/img/blank.gifs
Windows
Windows API
WML
XML
XSL

Ento, podemos concluir que, no Intraweb quando voc precisar


executar uma funo qualquer no evento onload no body basta
para isso passla como parmetro no mtodo AddToInitProc do
TIWForm em questo.
Na segunda aplicao, AppEstacaoZNSubmit, o comando
"WebApplication.Request.QueryFields.Values" pode ser entendido
da mesma forma que o Webbrocker trabalha com o protocolo http.
Podemos tambm recuperas outras variveis atravs do objeto
WebApplication, sua propriedade Request, tais como o
RemoteHost, UserAgent e etc..
Por hora s .... At a prx!!!

Zn Ringtones

ZN Media Player
Links
Willian Rodrigues
Web 4
Shimatai
Pensamentos de um
Profissional de TI
Malta on Delphi
Linguagem de Mquina

Bruno Lichot Borland

tags: Delphi, Internet, Intraweb, Web

Atelier das Idias

Helio Delmiro
3 comentrios:

Beijo Partido10/09/2008
All The Things You
Are03/09/2008

Diego 11/09/11 21:03


Tem download dos arquivos usados nesse artigo?

Inai26/05/2007

Responder

Um Novo Tempo
Msica20/05/2007

Diego Campos Rosa 23/09/11 16:13


Sempre que uso o AddToInitProc a minha aplicao trava. O
que pode ser?
Esse simples exemplo abaixou no funcionou. No IE6 deu erro
de script e no Mozila6.0.2 no executou nada.
procedure TIWForm2.IWBtnExcluirClick(Sender: TObject);
const
AJSComando = 'window.open("%s?estacaoZnValor=%s")';
begin
AddToInitProc(Format(AJSComando, ['www.google.com.br',
'teste']));
end;
Responder

Renato 19/12/11 21:32


Se tiver download do exemplo ficarei grato.
Tentei aqui e no funcionou.
Responder

Digiteseucomentrio...

Comentarcomo:

Alexandre(Google)
Sair

Publicar

Visualizar

Postagem mais recente

Notifiqueme

Pgina inicial

Assinar: Postar comentrios (Atom)

Postagem mais antiga

Rom Msica17/05/2007

BlogBlogs.Com.Br

S-ar putea să vă placă și