Sei sulla pagina 1di 7
0 mais Próximoblog» ahcsistemas@gmail.com Painel Sair
0 mais Próximoblog» ahcsistemas@gmail.com Painel Sair
0
0

mais

Próximoblog» ahcsistemas@gmail.com Painel Sair

Estamos estudando e o resultado disso postamos aqui. Sinceramente desejamos que o conteúdo aqui semeado possa ser útil para muitas pessoas. Seja bem‐vindo e fique à vontade para contribuir da forma que puder e quiser.

Bola pra frente

:)

segunda‐feira, 24 de agosto de 2009

Groove ZN ‐ by Grooveshark

por ralencar

Inicie uma aplicação Intraweb no Delphi. O Assunto é sobre passar, e recuperar, parâmetros entre requisições HTTP. Especificamente, pretendo exemplificar como chamar uma outra aplicação web, sendo que nesta chamada passaremos parâmetros, os quais, obviamente, serão recuperados e processados pela aplicação que foi requisitada.

Neste artigo criaremos duas aplicações Intraweb ISAPI. Um delas (“AppEstacaoZNSubmit”) servirá para passar parâmetros para outra (“AppRequestQueryFieldsEstacaoZN”). Esta segunda por sua vez, recupera os valores destes parâmetros processa e os exibe. Ok, definido o que pretendemos fazer passamos agora a parte prática.

A seguir o código fonte da aplicação ISAPI que chama e passa os

parâmetros. Salvei essa app de com o nome “AppEstacaoZNSubmit”.

O Form principal e único desta aplicação “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

IWLabel2: TIWLabel; procedure IWAppFormCreate(Sender: TObject); procedure IWButton1Click(Sender: TObject); public RSS Feed

end;

implementation {$R *.dfm}

uses ServerController, SysUtils, IWForm;

Busca no blog: Pesquisar
Busca no blog:
Pesquisar

procedure TformMain.IWAppFormCreate(Sender: TObjec t); begin

Conteúdo

IWEdit1.Text

:= '';

Aleatório

IWButton1.Caption := 'Enviar - ZN';

IWLabel1.Caption := 'Digite o valor que será en

Cyber Culture

viado'; IWLabel2.Caption := 'Digite a URL da aplicação

Games

ISAPI que será chamada' + 'e exibirá o valor digitado acima.';

Multimídia

EdtURLZN.Text

:= '';

end;

Música

procedure TformMain.IWButton1Click(Sender: TObject

Programação

); const

WEB

AJSComando = 'window.open("%s?estacaoZnValor=%s" )'; begin AddToInitProc(Format(AJSComando, [EdtURLZN.Text,

Colaboradores

IWEdit1.Text]));

end;

end.

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.

Não editei nada no “IWServerController”, portanto após compilar e efetuar o deploy da “AppEstacaoZNSubmit.dll” no IIS damos por encerrada esta etapa do nosso exemplo.

O próximo passo é codificar a segunda aplicação. 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:

unit IWUnit1;

{PUBDIST}

Amigos do EstaçãoZN ‐ Muito obrigado!

Participardestesite

do EstaçãoZN ‐ Muito obrigado! Participardestesite GoogleFriendConnect Membros(41) Mais» Arquivo do blog ►

GoogleFriendConnect

Membros(41) Mais»

Participardestesite GoogleFriendConnect Membros(41) Mais» Arquivo do blog ► 2 011 (6) ► 2 010 (2) ▼

Arquivo do blog

2009 (25)

interface

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

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

implementation {$R *.dfm}

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;

Vejamos o “.dpr” da “AppRequestQueryFieldsEstacaoZN.dpr”.

2008 (80)

2007 (125)

tags

ADO

library AppRequestQueryFieldsEstacaoZN;

uses IWInitISAPI,

ServerController in 'ServerController.pas' {IWSe rverController: TIWServerControllerBase},

IWUnit1 in 'IWUnit1.pas' {formMain: TIWForm1};

{$R *.RES}

 

BDS

begin IWRun(TFormMain, TIWServerController); end.

C#

Após proceder a implementação deste módulo conforme ilustrado acima, semelhante ao exemplo anterior compile e efetue o deploy da “AppRequestQueryFieldsEstacaoZN.dll” no ISS. Feito isso já é possível testar. No browser, chame o diretório virtual definido no deploy da primeira aplicação (AppEstacaoZNSubmit.dll).

CSS

DBA

Digite no “IWEdit1” o valor para parâmetro “estacaoZnValor”, o qual será exibido. Digite também a

Digite no “IWEdit1” o valor para parâmetro “estacaoZnValor”, o qual será exibido. Digite também a URL da segunda aplicação no “EdtURLZN”, para somente então clicar no IWButton1.

no “EdtURLZN”, para somente então clicar no IWButton1. Na primeira aplicação, no evento OnClick do IWButton1,
no “EdtURLZN”, para somente então clicar no IWButton1. Na primeira aplicação, no evento OnClick do IWButton1,

Na primeira aplicação, no evento OnClick do IWButton1, chamamos o método “AddToInitProc” de “TformMain”. Este método nos permite “colocar” scripts (Javascript) que serão executados quando a função “Initialize()" padronizada pelo framework Intraweb, quando o browser estiver interpretando a tag “body”, da página construída

IDE

JCL

PHP

POO

RPC

RSS

pelo Intraweb. No body onload é definida a chamada a função “Initialize()".

é definida a chamada a função “Initialize()". function Initialize() { InitSubmitter(); StaticInit(); if

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 Estação ZN")

}

Então, podemos concluir que, no Intraweb quando você precisar executar uma função qualquer no evento “onload” no body basta para isso passá‐la como parâmetro no método “AddToInitProc” do TIWForm em questão.

Na segunda aplicação, “AppEstacaoZNSubmit”, o comando "WebApplication.Request.QueryFields.Values" pode ser entendido da mesma forma que o Webbrocker trabalha com o protocolo http. Podemos também recuperas outras variáveis através do objeto “WebApplication”, sua propriedade “Request”, tais como o “RemoteHost”, “UserAgent” e etc

Por hora é só

Até a próx!!!

SQL

SVN

UDF

UML

VB6

WAP

Web

WML

XML

XSL

ZN Media Player

Links

3 comentários:

Tem download dos arquivos usados nesse artigo?Delphi , Internet , Intraweb , Web 3 comentários: Diego 11/09/11 21:03 Responder Sempre que uso

Sempre que uso o AddToInitProc a minha aplicação trava. O que pode ser? Esse simples exemplo abaixou não funcionou. No IE6 deu erro de script e no Mozila6.0.2 não executou nada.usados nesse artigo? Diego 11/09/11 21:03 Responder Diego Campos Rosa 23/09/11 16:13 Atelier das Idéias Helio

Helio Delmiro

Beijo Partido ‐ 10/09/2008

Inaiá ‐ 26/05/2007

Romã ‐ Música ‐ 17/05/2007

procedure TIWForm2.IWBtnExcluirClick(Sender: TObject); const AJSComando = 'window.open("%s?estacaoZnValor=%s")'; begin AddToInitProc(Format(AJSComando, ['www.google.com.br', 'teste'])); end;

Se tiver download do exemplo ficarei grato. Tentei aqui e não funcionou.'teste'])); end; Responder Renato 19/12/11 21:32 Responder Digiteseucomentário

Digiteseucomentário

Digiteseucomentário
Digiteseucomentário Comentarcomo: A l e x a n d r e ( G o Publicar Visualizar

Comentarcomo: Alexandre(Go

Publicar

Visualizar

Sair

Digiteseucomentário Comentarcomo: A l e x a n d r e ( G o Publicar Visualizar

Notifique­me