Home
        delphi - The Club
         Contents
1.        iniii                  Abrir 2 CuDom FErz    Baigia Ho A      Eius a Wenda dos erg   Esah F tomam     liia a a a i a ea Faral     Bemate gt  A Diipa pmn        mA Te M  Pe Te     p ai Em    teh dor O    a m a       inib a Tatas com Caro  Beman   EF VAR    Tn a a a a Cc Dados do  Cai m eaka Paja       DELPHI T           A o E Foma de F T  a      z em op Door Rec aa rir  mr era Re    Beato FO EAP E aegemrar Lir  fia il i      ma w    ys l  T  nmirar o Focharento do pm  bami M t  ia Ei Bs TO ups              Estar a Fii de Paji Cro  e l ER TIA E PS         PET i PT DE Sig   Setec TemenaFeos igege m       imprima a Comprovante IEF   Rima FIFE inquieto               aa a    ae is     ae    Conirmer a Tranga    o  o A Fria Baana E    E jEcrate gt  AEF don maana   a qe  a pe  E   H ii e       himu  Ts    m Di a                 Mo Cones Vendo E  Bomgnc F TEF Paomia vencia  E  TTE imi Fai     Sendo assim  para cada uma destas opera    es voc   ter    apenas um comportamento diferenciado de seu software   possibilitando total controle das opera    es TEF     Observe nos fluxos que cada fun    o da DLL BemaFi32 dll  elimina o trabalho que a software house e seu software ter   de  controlar quantas linhas foram impressas  etc    Controlar se o  ECF esta ligado e seus sinais de porta serial etc    tudo isso est    encapsulado em nossa dll de comunica    o  a BemnaFi32 dll     Sendo assim  agora que voc   est   preparado para a  homologa    o  M  o na Massa com a BemaFi32 dll       
2.     1   EN PROTECTED   with PENProtected  NMHdr     chrg do  1f not ProtectChange  cpMin  cpMax  then    Result    1      EN LINK message being received to respond to it  EN LINK   begin    Windows  SetCursor   Screen Cursors  crHandPoint      if PEnLink  NMHdr   msg   WM LBUTTONDOWN then  begin     set the selection    MeGAZINE     27    6  DELPHI    SendMessage  Handle  EM EXSETSEL  0   Longint  APEnLink  NMHdr   chrg        send it to windows to open  ShellExecute  handle   open      PChar  GetSelText   nil  nil   SW SHOWNORMAL     end   end   end   end     Quando notificado  a mensagem EM LINK inclui a estrutura  NMHdr que aponta para a estrutura ENLINK  como mostrado  aqui     ENLINK   record  nmhdr  TNMHdr   msg  UINT   wParam  WPARAM   lParam  LPARAM   chrg  TCharRange    end     Voc   pode distribuir a estrutura NMHdr com um ponteiro  para a estrutura ENLINK para receber campo msg que cont  m  a mensagem WM LBUTTONCLICK     Al  m disso a vari  vel chrg hospeda a localiza    o e o tamanho  da URL dentro do texto        charrange   record  cpMin  Longint   cpMax  LongInt    end     Lan  ando a URL   Para configurar a sele    o  n  s vamos usar a vari  vel chrg  para enviar a mensagem EM EXSETSEL para retornar o texto  da URL     SendMessage  Handle  EM EXSETSEL  0   Longint  APEnLink  NMHdr   chrg       Para rodar a aplica    o que est   apropriada a URL  n  s  vamos usar a fun    o ShellExecute     ShellExecute  handle   nil  SW_SHOWNORMAL     Configurando a propriedad
3.     F pim ra armin  n   a l I      Voc   deve adicionar uma refer  ncia        System  WindowsForms dll     pois    onde os componentes que  usaremos como base est  o localizados  Selecione    Project   Add  Reference           ell bea O          add Reir are    o Yw H ia a ra l   o TS RS ua l   E tm Ma    act   Dm Pu    rt   ATA A tea TT   O PRO    ei e mat   oea al   Cis Jie at   Cis Jie t      ah Pia m     Elo Pa dne  a log  Zeien cade Da in    E eE eka   tale  a  Fonte    Tapas aad   zab wL do o   Ebro wrt Pezu E w    Ebro g miie paiet     Tt ba q  H  Pri Be LEN Em    1 mi    g i   Ctba roda TASSO i t T a       da Pi EA E Chana haiH am i   I    L anin  do     CMS Har o       Depois de compilar o projeto  voc   pode testar o programa  criando o componente em tempo de execu    o  Adicione um projeto  do tipo    Windows Application    e adicione uma refer  ncia    DLL  rec  m criada    O c  digo para instanciar o bot  o em tempo de execu    o    o  seguinte        Observe que o bot  o permanece desabilitado enquanto o  m  todo associado ao evento Click estiver sendo executado     Interceptando m  todos virtuais   Na maioria dos casos  incluindo o exemplo acima  desejamos  interceptar algum evento no novo componente  Quando criamos  uma classe derivada  no entanto  devemos interceptar um  m  todo virtual associado ao evento    Todos os eventos da  NET Framework t  m m  todos virtuais      MeGAZINE       associados     Isto n  o    obrigat  rio do ponto de vista do  compilador
4.     pacote    pronto  para uso  No entanto  esta n  o    a   nfase deste artigo     Derivando de um componente existente    Outra op    o    mudar ligeiramente o comportamento de um  componente j   existente     qualquer componente  Esta t  cnica     particularmente   til quando voc   repetidamente altera um  conjunto de propriedades de um componente ou intercepta  sempre alguns eventos da mesma maneira     Neste caso voc   quer que o componente continue funcionando basicamente da  mesma forma  mas com um    algo mais     Veremos como criar um bot  o que se  desabilita enquanto o evento Clickestiver sendo processado e tamb  m um  TextBox que valida se o seu conte  do    uma data     Inicialmente  crie um projeto do tipo    Class Library           SANT ANNA       Hew Proar   Fiil que  lmg         vj midia Aip  i    Ty ras Felst  pit   A RR AIH n   n w  o  Irar  i n r    EJ sus a Feke AE Ago ac  l O l a npl    E a gF j       e iwar Adiado AFE l  A ALI ApEn A F    ngnal mensan j late  mesma a a Doda r     bH 13   Hs cenene  Loz or  tri T  PAPES a      E w dio cd um iT LES a E    Pok mo   sta A a EE rpo ie    Fr F   10d   Frp      Entre o c  digo do componente substituindo o que foi criado  pelo assistente  por exemplo        O c  digo acima substitui completamente aquele criado pelo  assistente     FE sb  FT pre trm l oo d T je r  rid r   e E re 2 m   h L     mh  ga L  Lri    uu   E RP TE RE TO    E da Pean  E LEIS STETA LLL  ESTE   7 E aSa arseron     F pRo      aga Frera    mm
5.   Escolhi para este m  s um assunto que  tenho absoluta  certeza  ir   delici   los     Vamos ensinar como acessar um banco 9i atrav  s da  Internet utilizando o conceito de conex  es via    listener      Divirtam se       Uma quest  o muito presente nos dias de hoje e muito  importante para a efici  ncia de qualquer organiza    o     ter a  base de dados dispon  vel na Internet  para que de qualquer  localidade informa    es estrat  gicas possam ser acessadas     Muito bem  A tecnologia Oracle oferece essa condi    o de  forma contundente     Vamos exemplificar um modelo b  sico  em que ter  amos dois  servidores  um servidor de web conectado de forma permanente     Internet e com um endere  o IP p  blico  numa placa de rede  adicional ou diretamente num    hub    ou    switch     e um servidor    de dados     o o aii o  O TATCANLT    ui  k link Imi ianh rm ta Fins SDEvTINE E  B Hpoody Busiross r   OPRECLE  7    a Es ad m    7            lt             Werra AR O PE  io nda CUL prosa   a ahpa Po Ss  apaia    o  E T T    Este modelo permite que tenhamos    resolvidas    v  rias  quest  es  Primeiro  a quest  o seguran  a  j   que o servidor de  dados n  o estar   diretamente    dispon  vel    na Internet  Segundo  a quest  o desempenho  j   que todos os servi  os    web    que  eventualmente criarmos no    web server     e geralmente queremos  muitos desses servi  os   n  o estar  o utilizando recursos  necess  rios ao bom desempenho do banco de dados  Terceiro  a  quest  o o
6.   MeGAZINE Q   21       Trabalhando com  string no Delphi 6    A cada nova vers  o o Delphi traz mais novidades     nova unit  StrUtils traz novas rotinas para o trabalho com strings  comple   mentando   quelas j   existentes na unit SysUtils do Delphi 5     A unit SysUtils tem v  rias rotinas para manipula    o de  strings  Voc   provavelmente est   familiarizado com as fun    es  UpperCase  LowerCase  CompareStr  CompareText  IntToStr   IntToHex  StrTolInt entre outras  Mas voc   talvez n  o tenha  notado as rotinas QuotedStr e AnsiQuotedStr que adicionam  aspas no inicio e no final de uma string  e em contrapartida a  rotina AnsiExtractQuotedStr que retira as aspas     nova fun    o  AnsiDequotedStr torna mais f  cil usar o   ltimo com strings  ordin  rias        Existe tamb  m a rotina AdjustLineBreaks que modifica um  simples line feeds ou carriage returns em uma combina    o de  dois caracteres usados no Windows  No Delphi 6 voc   tamb  m  pode ir por outro caminho convertendo a combina    o  ou um  simples carriage returns para simples line feeds        A rotina StrToIntDef    como um StrTolnt  A diferen  a    que  se for informado um valor inv  lido para a vari  vel S a fun    o    retorna o n  mero passado na vari  vel Default        Para formatar um texto em uma   rea limitada  voc   pode  usar a rotina de WrapText  Esta rotina faz a pesquisa da linha  fornecida do texto e  se for mais longo do que o tamanho m  ximo  especificado ela substitui a   ltima ocorr  ncia 
7.   Published declarations      end   Listagem 3  A estrutura de Interface e implementa    o das classes     N  o    necess  rio implementar o c  digo acima     necess  rio  um coment  rio para um entendimento maior por parte do leitor   A Classe Base para as classes apresentadas acima    a Classe  TShapeBase  que implementa a Interface IShape  Se olharmos  com mais calma e aten    o    estrutura acima  veremos que nem  todas as classes  TPolygon  TRectangle e TSquare  implementam  os m  todos dispon  veis nas 03  Tr  s  interfaces criadas  Um  exemplo claro    a classe TRectangle  que herda de TShapeBase e  implementa IPolygon e IRectangle  por que  s  o os m  todos das  duas interfaces citadas que fazem sentido para a classe  TRectangle  Da mesma forma acontece com a classe TPolygon  A    nica classe que implementa todas as Interfaces    a classe  TSquare     Delega    o   Uma classe pode delegar a implementa    o de uma interface  para uma propriedade  desde que esta use a diretiva implements  e o valor da propriedade precisa ser do tipo da interface e ou da  classe do qual voc   deseja implementar  O m  todo n  o pode ser  din  mico  apenas virtual e n  o pode ser uma propriedade do tipo  Array     sintaxe de implements    a seguinte     18    MeGAZINE    propriedade read Getter implements interfaces        Exemplo  Podemos exemplificar implements da seguinte forma     Listagem 4  Demonstra o uso da diretiva implements    O c  digo acima demonstra o uso da diretiva implemen
8.   mas    uma conven    o que a Framework segue e seus  componentes devem seguir  Para descobrir o m  todo virtual dado  um evento  fa  a o seguinte    1  Acrescente On ao nome do evento   2  Para saber os argumentos  retire o    ByVal Sender as Object    e  mantenha a estrutura seguinte    Note no exemplo acima que estamos interceptando o m  todo  OnClick  associado ao evento Click    Veja outro exemplo de TextBox que aceita apenas datas        Se quiser  voc   pode colocar v  rios componentes em um  mesmo fonte     SO ar A qupoicrrimo alian Mem 07 AT Dom dor  CEO LED Hie i e dL  rit   TA MO  Ya   IE  F  g 5  ka Idda F iane      lt   E raubaran     ELrr   P   m    eir ara L  Aa     n qam ART IPG   Tean a T  IETS voa l  l rilec Ita ar A E O T  ki  Ge Len Tae PARE  nu T TESER    O RAL    Lg Ir  PET     m a pi   Minho   lam  PERO F I MEM Too TIM    memo pm npp jA  isid a om De mm Champagne mo q      arn      m      De    TS   a la r      lA    armam     I  l   nyi TE OE Rm  re RL IM    J   temos ent  o um componente  Voc   pode instal   lo no  Visual Studio  NET clicando com o bot  o direito sobre o ToolBox e       SANT ANNA       selecionando    Customize Toolbox           Eisami nn hino      HCormeers eL    CEAN mt IR   atalhos Sado Tops RC    rnw r w O arrr  baa    enrsh  Repr   Saban ml om Baan  Edo a go ms  Sakam ah  akan e ra CAE   SAL    rni ad od ia LFM    arken eiee o e Tas e Cora Ca  Sal mim  Er EEN MN E Po IDE a EO P R  T E  Tin eL  E ksma LA      EAO Y AA an Ae iaa  
9.  Apache Group Apache    xx xx conf  onde xx xx    a vers  o do software     Depois de localizado o arquivo httpd conf  vamos edit   lo com  o Notepad do Windows     Apenas duas configura    es s  o necess  rias para que o  Apache execute nossas aplica    es WAP  let s go friends     Primeiramente localize dentro do arquivo  a se    o    DocumentRoot  a qual define o diret  rio base do nosso servidor  HTTP  Especifique um diret  rio no seu computador  e fa  a a  devida configura    o nesta se    o  como segue     Neste caso  estou definindo como diret  rio base do meu  servidor    C  DelphiWap     Embora funcione de outra maneira      interessante manter a barra deste jeito    e n  o do modo  tradicional        Para que o Apache permita a execu    o de nossas aplica    es  servidoras     necess  rio dizer    ele em qual diret  rio podemos  executar scripts     Veja que isso    para uma maior seguran  a do servidor  pois  nem todos os diret  rios ter  o permiss  o para execu    o de scripts   ou aplica    es servidoras  Localize a se    o ScriptAlias e insira a  configura    o        Repare que estamos definindo o mesmo diret  rio da base   mas isto n  o    comum  Normalmente dividimos o diret  rio base  em estruturas semelhantes a esta        Em nosso caso n  o tem problema  pois n  o iremos  disponibilizar o nosso servidor na Internet        Quem quiser disponibilizar o servi  o na Internet   sugiro que fa  a uma estrutura de diret  rios parecida  com a minha sugest  o  e def
10.  IInterface  unit System pas  conforme listado abaixo        Por Anderson Haertel Rodrigues    Listagem 1  Defini    o de IInterface     Todos os Objetos que servir  o como classe base para a  implementa    o de COM implementam  Unknown  unit  System pas  conforme listado abaixo     Listagem 2  Defini    o de IUnknown     Nota  At   a vers  o 5 do Delphi  todas as Interfaces  descendiam de IUnknow  ent  o se n  s quis  ssemos implementar  uma Interface que n  o estivesse ligada a COM  n  o t  nhamos  como  Necessitar  amos herdar da classe TInterfacedObject para  criarmos uma Classe n  o COM  Na vers  o 6 do Delphi  a Borland  decidiu criar uma interface Object Pascal n  o ligada a COM     A function AddRef e Release gerenciam a contagem de  refer  ncia do objeto  Quando a contagem de refer  ncia do objeto  chega a zero  0   Release libera o objeto  Quem realmente  controla a contagem de refer  ncia das Interfaces    o pr  prio  compilador do Delphi  O Controle    o mesmo para Strings e  Arrays Din  micos     A function QueryInterface retorna a refer  ncia do objeto  se o  objeto implementou tal interface     COM  CORBA e SOAP    Como j   citado  Interfaces s  o necess  rias para implementa    o  e uso de Objetos COM  CORBA e SOAP  Interfaces est  o cada vez  mais ligadas ao nosso dia a dia e vem com mais for  a ainda na  implementa    o de WebServices     16     MeGAZINE    Cada defini    o de Interface necessita de um GUID  que j    explicado  pode ser gerado pelo Delphi at
11.  Oracle     Host Name  apontando para o servidor  Oracle local     As conex  es ADO estar  o baseadas na exist  ncia deste  recurso     Conex  es via Internet   No modelo de infra estrutura exemplificado podemos  tamb  m  se estivermos utilizando o Oracle 9i  Release 9 0 1 1 1  ou superior   nos conectarmos ao banco de dados atrav  s da  Internet  configurando um    host name    em qualquer m  quina  externa apontando para o endere  o p  blico do servidor web  em  vers  es anteriores do Oracle isto tamb  m    poss  vel  mas exige  que diversos    patchs    de atualiza    o sejam rodados no Oracle e  que outras configura    es sejam feitas no Windows         Para tanto  basta definirmos no Winroute que todas as  chamadas    porta 1521 do servidor Web  se esta for a porta  padr  o do listener Oracle  sejam    mapeadas    para a porta 1521  do servidor Oracle     Pronto  Se voc   estiver na Internet j   poder   se conectar ao  Oracle atrav  s da sua aplica    o Delphi  do SQL Plus ou de  qualquer outra forma de conex  o que utilize o conceito de     listener        Para o leitor mais atento isso pode significar um risco  adicional  o de conex  es indesejadas ao nosso banco de dados    E  realmente esse risco est   presente  Para evit   lo  voc   pode  configurar no Winroute um conjunto de m  quinas  ou de  endere  os IP  que estar  o autorizadas a utilizar o mapeamento  de portas  definindo pol  ticas de acesso     Al  m disso  voc   pode ainda integrar a esse modelo outros  ser
12.  com   codecentral ccweb exe listing id 17562     D  vida enviada por Adriano Jos   Rodrigues  Santa Cruz do Rio  Pardo SP    Pergunta  Criei um projeto com um Form e adicionei uma  Unit  No Form eu possuo um bot  o e ao seu evento OnClik uma  determinada procedure  Na Unit  eu criei uma procedure  id  ntica a do evento OnClik do Bot  o  mas quando tento definir a  minha procedure da Unit ao evento OnClick do bot  o do Form d    erro  Por qu       Exemplo        MeGAZINE     29    E  Perguntas  amp  Respostas    Forml Button2 0OnClick  Forml Buttonl OnClick      Sem problemas   Forml Button2 0OnClick  minhaprocedure      Erro    end     end     Resposta  As procedures que representam um evento s  o  consideradas m  todos  Um m  todo deve estar definido dentro de  uma classe    Observe que todos os m  todos dos objetos dentro de uma unit   est  o declarados dentro da classe do formul  rio     type  TForml   class TForm   StatusBarl  TStatusBar   Button1  TButton   procedure Button1Click  Sender  TObject    private    Private declarations    public    Public declarations    end     Tudo que voc   declarar fora da classe do formul  rio    considerada  uma procedure regular e n  o um m  todo     Com isso  crie a sua procedure    Click    assim     type  TForml   class TForm   StatusBarl  TStatusBar   Button1  TButton   procedure Meu Clique  Sender  TObject      private     Private declarations    public     Public declarations    end     procedure TForm1 Meu_Clique  Sender  TObje
13.  com o WAP     muito boa  e o desenvolvimento    quase transparente  pois  podemos criar aplica    es WAP na maioria das linguagens  como   Delphi   NET  VB  C   ASP   PHP  Java  JSP  EJB   entre  outras     Modelos de Aparelhos    A disponibilidade de aparelhos no Brasil    muito grande  e o       pre  o    um forte atrativo  variando entre R  199 00  modelo LG  DM 160   at   R  1 999 00  Nokia 9210      Imaginem uma equipe de vendas  ou at   mesmo uma equipe  de pesquisadores  com modelos mais baratos  em torno de R   199 00  fechando neg  cios  elaborando pesquisas  consultando  clientes  disponibilidade de estoque entre outros        ra mo  Enora  Lt        l   rms md       Me do ld    Casos de Sucesso  Para provar a for  a do WAP  vamos conhecer alguns casos de  Sucesso     Caixa Econ  mica Federal   A Caixa Econ  mica Federal disponibiliza a todos a informa    o  sobre o saldo do FGTS atrav  s da tecnologia WAP  Para ter uma  id  ia da transpar  ncia neste case  a mesma aplica    o disponibiliza  informa    o via telefone fixo   Internet e celular  WAP    Totalmente desenvolvida em JAVA  a solu    o teve seu custo  reduzido devido a leve infra estrutura necess  ria para abrigar        MeGAZINE    toda a aplica    o    Embora tenha exemplificado o case da Caixa Econ  mica Federal      importante ressaltar que a maioria dos bancos nacionais  oferecem variados recursos com a tecnologia WAP     InvestShop COM BR   A institui    o financeira InvestShop desenvolveu em conjunt
14.  componentes  visuais para serem usados em programas WinForms no  NET  Framework    e  WinControls    e Classes derivadas de algum componente j   existente    WinControls   Os WinControls s  o componentes visuais que podem ser  desenvolvidos de uma forma RAD  correspondentes a um projeto  do tipo    Windows Control Library     Hew E roer    EnTJAT  fes    Ej ass isr Pokec   4 n CA Promos     COS Prostia Gi a TEE as Lenar S ES   aj Sip awd Cepet ropte Contra rary     DO  Other Projecto     D bas Tudi Solutiors     pri PELE P  lsje WE go eI WED  dpplesHom O proa sh am Epalicaso    took for css oris to ves r   ndosa spo cos    Hari    Feman     Location     HER r  Erica       Ernqeot wal be creed soc  erpi eun onral    Eie   E    Canca   Hp         Eles s  o particularmente f  ceis de criar por existir um bom  suporte em tempo de desenvolvimento     f  cil colocar outros  componentes sobre eles e tamb  m adicionar c  digo para  interceptar eventos dos componentes  Veja um WinControl sendo    MeGAZINE       parte 1    criado no Visual Studio  NET   A Metrel MerastdEMisus Ce HLI ospa   Lesrlontrati es  Meca     japa     pod  hg Cada g    ml w Morgado ralo o  Umad  Leanar    etan   T    Ep a  m     RESTANTE   Jore het    gt T a mia l    Erha la  Iw  e eela   r  rota EA F   Hal    qual  a  Fur da  gt       F    Trid a ki    A er  r   Fath  Fr n     urreashiry    k mfa AN       Fzz        Os WinControls s  o bons em situa    es onde desejamos  agrupar um conjunto de componentes em um
15.  e qualquer compara    o de  string retorna True ou False  Para converter os valores de um  boolean para string use a primeira entrada desses arrays     var  TrueBoolStrs  array of String   FalseBoolStrs  array of String     const  DefaultTrueBoolStr    True      DO NOT LOCALIZE  DefaultFalseBoolStr    False      DO NOT LOCALIZE    function StrToBool  const S  string   Boolean    function StrToBoolDef  const S  string  const Default   Boolean   Boolean    function TryStrToBool  const S  string  out Value   Boolean   Boolean    function BoolToStr  B  Boolean  UseBoolStrs  Boolean    False   string     Compara    o   Diversas fun    es convenientes que est  o dispon  veis para  compara    o de valores de duas ou mais strings  Elas v  m em  duas formas  case sensitive e not case sensitive     primeira tem  nomes terminados em str  enquanto as outras t  m o nome  terminado em Text  O primeiro conjunto de fun    es olha para  uma substring em qualquer lugar em uma string  Cada um  retorna um simples True ou False  De qualquer forma  aquela  ordem dos par  metros    revertida na rotina Contains como  comparado a outras e a fun    o AnsiPos     function AnsiContainsText  const AText  ASubText   string   Boolean    function AnsiStartsText  const ASubText  AText   string   Boolean     MeGAZINE Q   23    6  DELPHI    function AnsiEndsText  const ASubText  AText  string      Boolean    function AnsiContainsStr  const AText   ASubText   string   Boolean    function AnsiStartsStr  const A
16.  gdi Betri   Iian es Li FE sr mesme hoje Da o    Eur    I4 AY  Oa   QO Mr aisr     EENET E    A dEr   r  BETE db    Dan  as nto a DEP o    meat do mo Trigo ms Ad    Dr ta pn  Acer  r    L     a    Pao  n ar i4 Lar que eE aT    W Hk T da Fs       Clique em    Browse    e selecione a DLL com os componentes e  aperte    Ok           Momo iign ETF a a ad     acer tra  CO RA RD TE TD   Crest dede ce AR E LS an    Has rah mg gA    Le       Ot watya    Epa eR    o LO   RI Bint JR  oetlimEsdeT        Has qu ei  2 MT DIAL   Ham arte meio ado rd    Hama Ds CLS SA   He cedem ho A TETE  n n o Ds LS SA   H  sF he DO DM     ag r t rder  Oebar Painea PR n  E n rene a Erret  a  Dedos   Uih idr    Painea PR r  erer t   a iya    O e u  A     EiL  Ds IM  E  Honda de atuo cute do   O  haas rra   car eres    um ha ir  He eder lee est reaa ha yie  E  q   Fy  Ja m T  ERES   Ei  E JA n aill  pap hea don d i  Jp 3H  e 1  n T       Toolbox    Cala  componens  Windawe Frrrre     FA Prirtliclog   TA Frink Fres ewMialng  DO  Pintkrev ewt cntro  O FrrarProider    Clique novamente em     Ok    e observe o componente  no Toolbox         amp  PrirtDocument  FI PagesetupDialog  a  Z valalkepolvicees    E Data extBox  cas MMeuB Lau    Voc   pode arrastar os  componentes e coloc   los sobre  um formul  rio    Na segunda parte deste  artigo veremos como adicionar    EE ro riedades e eventos aos    componentes     MeGAZINE     13    ORACLE             Acessando Oracle 91  via Internet    atrav  s do Listener     
17.  renomeado     function LeftStr  const AText  string  const ACount   Integer   string    function RightStr  const AText  string  const ACount   Integer   string    function MidStr  const AText  string  const AStart   ACount  Integer   string     Procurando    A fun    o SearchBuf deixa voc   procurar um texto arbitr  rio   ou parte disso  por uma informa    o em particular  As op    es  permitem que voc   pesquise para cima ou para baixo a partir da  posi    o corrente  determina se o caso foi considerado compat  vel   e especifica se somente as palavras completas ser  o procuradas   A dire    o de pesquisa default    do inicio para o final do arquivo   Como voc   pode ver a partir da constante WordDelimiters     24 Q  MeGAZINE    qualquer caractere com exce    o de um alfanum  rico denota um  limite de palavra     Informe os valores SelStart e SelLength para saltar sobre  este ponto do buffer  Neste caso  come  amos a pesquisa ap  s ou  antes da sele    o baseada na presen  a da op    o soDown     O valor de retorno da fun    o    um ponto para o inicio da  primeira ocorr  ncia da string de pesquisa dentro da se    o  denominada de buffer  ou nil se ele n  o puder ser encontrado l          DELPHI              Conclus  o    O Delphi tem muita funcionalidade embutida  Enquanto o  suporte da manipula    o de strings sempre esteve presente no  Delphi  a   ltima vers  o adiciona muito mais e move uma parte  para outra unit  StrUtils     Esta mat  ria foi uma pequena introdu    o 
18.  uma opera    o pendente   c  Necessita cancelar esta opera    o e fechar o  comprovante que ficou aberto     Felizmente a dll de comunica    o economiza uma boa parte  dos controles que voc   necessita fazer em seu software  como  identificar se a impressora esta desligada ou n  o  reimprimir a  transa    o em um relat  rio Gerencial  etc      Nada melhor que    fluxogramas    para entendermos ent  o  como fazer isso  estes fluxos voc   pode encontrar em nosso site   www bematech com br  na   rea de download  impressoras  fiscais  poder   baixar o arquivo de Help da dll BamFi32 dil  que     nossa dll de comunica    o de alto n  vel     Bem  Observe os Fluxogramas abaixo     Cancelar e controlar o ECF quando o mesmo    desligado no  momento da impress  o do TEF    20    MeGAZINE       TR  ia Cie  W E Ea D Po a a Taa e i    YT    EET n an 224 aA  E ad F sabani        rila j Farta rrenan  Seta KZI A IA 4 RS am I                   jakina Ties ai CL  Estat ATE en      mka d perai e riam p a bi  fardara barete Far ri    Enar urs Forma re Faraman  Jerat H lfm ra rn     Eers Apra Pupae rio  Meret o Pkn Ea tetos      Tein g Peame b a Ti  Jammah o Tei a aT TT                Lote DR O a e Ao ini    ore o arraia pur     Tr       qe mir    or preces Tr  Ba ie PTE Doi 1H       P nra Sr pretree i  Berg ETEF InpiveTa        A Tara A Eros wo       iera hipoma y ngam Lapa a ar ques     es e neanke  Per    r      Cancelar e controlar o MICRO  PC     desligado no momento da  impress  o do TEF  
19. 4  3762 1259  Rua S  o Paulo  447   Cep 18 740 000  Taquarituba   SP  Tiragem  5 000 exemplares    Diretor   Presidente    Celso Jefferson M  Paganelli    Diretor T  cnico    Mauro Sant Anna    Colaboradores  Claudenir C  Andrade   M  rio Camilo Bohm  Marcio Alexandroni da Silva    Anderson H  Rodrigues       EDITORIAL 4     Editorial    Ol   amigos     Como todos j   sabem  a cada nova vers  o o Delphi traz mais novidades   Veja nesta edi    o a nova unit StrUtils que traz novas rotinas para o  trabalho com strings no Delphi 6  complementando   quelas j    existentes no Delphi 5    Voc   j   deve ter notado que o Microsoft Word tem o reconhecimento de  URLs  Muitos de voc  s j   desejaram que suas aplica    es fizessem isto   Bem  nesta edi    o voc   ver   uma mat  ria que realmente prender   seus    olhos  N  s vamos mostrar como criar esta caracter  stica no componente  RichEdit     E tem muito mais  leia e comprove     Boa leitura a todos e at   o pr  ximo m  s com mais novidades        Celso Jefferson Paganelli  Presidente   The Club       EONA a E A A 03  Desenvolvendo Aplica    es para Celulares com Delphi         04  Criando Componentes Visuais   Parte 1 Lise 11  Acessando Oracle 9i via Internet atrav  s do Listener            14  DataSnap   Interfaces   Parte  l sasise 16  Homologando seu Software para realizar Transfer  ncia   Eletronica de   FUNGOS praia ariana 20  Trabalhando com string no Delphi O cetim 22  Detectando URLs no RichEdit      stereo 26  Perguntas  
20. A    Se a i        E  want para realizar Transfer  ncia Eletr  nica de Fundos  phi  amp        MeGAZINE Q   1       THE CLUB    Revista The Club Megazine   08 2002    A utiliza    o  reprodu    o  apropria    o  armazenamento em banco de dados   sob qualquer forma ou meio  de textos  fotos e outras cria    es intelectuais  em cada publica    o da revista    The Club    s  o terminantemente proibidos   sem autoriza    o escrita dos titulares dos direitos autorais     Copyrighto The Clube 2002    THE CLUB  Rua Acre  950   Avar     SP   CEP 18 700 260  Informa    es   0xx14  3732 3689  Suporte   0xx14  3733 1588    Fax   0xx14  3732 0987    Internet  http   www  theclub com br  Cadastro  cadastroOtheclub com br  Suporte  suporteOtheclub com br    Informa    es  infodtheclub com br    D  vidas  Correspond  ncia ou fax com d  vidas devem ser  enviados ao   THE CLUB  indicando  Suporte      Opini  o  Se voc   quer dar a sua opini  o sobre o clube em  geral  mande a sua correspond  ncia para a se    o   Tire sua d  vida      Reprodu    o    A utiliza    o  reprodu    o  apropria    o   armazenamento em banco de dados  sob qualquer  forma ou meio  de textos  fotos e outras cria    es  intelectuais em cada publica    o da Revista     The Club    s  o terminantemente proibidos sem  autoriza    o escrita dos titulares dos direitos  autorais     Copyright  The Club   2002    Im press  o e acabamento   Impressos Gril   Gril Gr  fica e Repr  Ind  Ltda   Tel    0xx14  3762 1345   Fax   0xx1
21. SubText  AText     string   Boolean   function AnsiEndsStr  const ASubText   Boolean     AText  string      Voc   tamb  m pode comparar uma simples string com um  array de valores  retornando um simples flag indicando sua  presen  a ou seu   ndice dentro do array  O index conta a partir de  zero  e     1 quando o valor n  o existe  Novamente  o Str    case   sensitive  enquanto o Text n  o        function AnsiMatchText  const AText  string  const  AValues  array of string   Boolean    function AnsilndexText  const AText  string  const  AValues  array of string   Integer     function AnsiMatchStr  const AText  string  const  AValues  array of string   Boolean    function AnsilndexStr  const AText  string  const  AValues  array Of string   Integer     Alterando   Trocar todas as ocorr  ncias de uma substring em uma string  com outro valor  Internamente eles usam a rotina StringReplace  da unit SysUtils  especificando a troca total como um flag e  ignorando o caso quando apropriado     function AnsiReplaceText  const AText  AFromText   AToText  string   string    function AnsiReplaceStr  const AText  AFromText   AToText  string   string     Reverte a ordem dos caracteres na string com a fun    o  ReverseString     function ReverseString const AText  string   string     DupeString concatena a string fornecida um determinado  n  mero de vezes e retorna o resultado     Voc   n  o recebe um erro se o n  mero de repeti    es    zero ou  menor  mas voc   n  o recebe qualquer sa  da pa
22. amp  Respostas       ssesssssssssssrsersrrsrsnrennsrnsrnnrnnrsnnsrnersnrsnns 29    MeGAZINE     3    6  DELPHI       Desenvolvendo Aplica    es para  Celulares com Delphi    Neste artigo veremos como desenvolver aplica    es para  celular atrav  s da tecnologia WAP     O Delphi    muito vers  til  e para quem j   desenvolveu  aplica    es servidoras para Internet  ver   a extrema facilidade em  portar tais aplica    es para celulares     Mais adiante veremos como trabalha uma aplica    o  servidora  e agora daremos uma olhada no panorama atual do  WAP no Brasil     WAP no Brasil    Ser   que temos oportunidades de lucro no Brasil  A  oportunidade existe  mas poucas empresas est  o investindo nesta    rea  certamente lucrativa  Ser   que sou um rom  ntico  sonhador  Sonhando com o lucro em tempos de vacas magras   Amigos  posso afirmar que n  o  pois em 2000  quando lancei meu  livro de WAP  Wap Guia de Tecnologia  Editora Brasport   o  mercado estava muito aquecido  devido as fortes propagandas de  empresas de telefonia em torno do WAP  mas na   poca  a barreira  cultural de nosso pa  s quase levou o sonho destas empresas por    gua abaixo  Sabem o que elas fizeram  Deixaram o WAP de lado  e continuaram a investir em aparelhos m  veis  mas destacando  apenas sua beleza e algumas funcionalidades     Facunte  ent  o o sonho do lucro ficou ainda mais distante   Amigos  a      que entra o consultor  para explicar aos gerentes de  tecnologia  CEOs  que a rela    o custo benef  cio
23. antes daquela  posi    o com o texto em BreakStr  A vers  o mais simples quebra  em espa  os  em tabs  ou em h  fens  Note que esta rotina n  o  quebra as substrings entre aspas     function WrapText  const Line  BreakStr  string  const  BreakChars  TSysCharSet  MaxCol  Integer    string  overload    function WrapText  const Line  string  MaxCol  Integer    45   string  overload     Novidades no SysUtils   Diversas novas rotinas foram inclu  das na unit SysUtils do  Delphi 6  Dentre elas inclui a constante WideString  rotinas  b  sicas de vers  o WideString  sobrecarga de fun    es Trim para  WideString e rotinas de forma    o WideString        22     MeGAZINE    function WideSameStr  const Sl  S2  WideString    Boolean    function WideCompareText  const Sl  S2  WideString    Integer    function WideSameText  const Sl  S2  WideString    Boolean     function Trim const S  WideString   WideString   overload    function TrimLeft  const S  WideString   WideString   overload    function TrimRight  const S  WideString   WideString   overload     function WideFormat   const Format  WideString    const Args  array of const   WideString   procedure WideFmtStr  var Result  WideString  const  Format  WideString  const Args  array of const    function WideFormatBuf  var Buffer  BufLen  Cardinal   const Format  FmtLen  Cardinal  const Args  array of  const   Cardinal     As rotinas de convers  o existentes de outro tipo b  sico para  strings tem sido melhoradas com vers  es que pegam valo
24. anvas   virtual   abstract    property Position  TPoint read GetPositon write  SetPosition     published    Published declarations      MeGAZINE     17    E  DELPHI    end     TPolygon   class  TShapeBase  IPolygon   private    Private declarations      FVertices  array of TPoint     protected    Protected declarations      public    Public declarations      procedure Draw  Canvas  TCanvas   override     function NumVertices  SmallInt    function NumSides  SmallInt    function SideLenght  const Index  SmallInt    SmallInt    function Vertex  Index  SmallInt      published    Published declarations      end     TRectangle   class  TShapeBase  IPolygon  IRectangle   private    Private declarations      FRect  TRect   protected    Protected declarations      public    Public declarations      procedure Draw  Canvas  TCanvas   override     function NumVertices  SmallInt    function NumSides  SmallInt    function SideLenght  const Index  SmallInt    SmallInt    function Vertex  Index  SmallInt      published    Published declarations      end     TSquare   class  TShapeBase  IPolygon  IRectangle   ISquare    private    Private declarations      FSide  SmallInt     protected    Protected declarations      public    Public declarations      procedure Draw  Canvas  TCanvas   override     function Side  SmallInt    function NumVertices  SmallInt    function NumSides  SmallInt    function SideLenght  const Index  SmallInt    SmallInt    function Vertex  Index  SmallInt      published  
25. ct    begin   ShowMessage   The Club       end     Com isso poder   atribu   la aos seus objetos     D  vida enviada por Escape Soft BroadCast  Nova Friburgo RJ    Pergunta  Teria alguma API que me possibilitasse verificar o  estado do modem     Resposta  Segue abaixo um exemplo de como verificar o Status    do modem   var  CommPort   string   hCommFile   THandle   ModemStat   DWord   begin  CommPort     COM2       Abrir por de comunica    o    hCommFile    CreateFile PChar  CommPort    GENERIC READ   0   nil   OPEN_EXISTING   FILE_ATTRIBUTE_NORMAL   0     if hCommFile   INVALID HANDLE VALUE then    begin  ShowMessage   N  o foi poss  vel abrir a porta     CommPort     exit   end    Verificar status   if GetCommModemStatus  hCommFile  ModemStat   lt  gt   false then    begin  if ModemStat and MS CTS ON  lt  gt  0 then  ShowMessage   The CTS  clear to send  is on      if ModemStat and MS DSR ON  lt  gt  0 then  ShowMessage   The DSR  data set ready  is on      if ModemStat and MS RING ON  lt  gt  Othen  ShowMessage   The ring indicator is on      if ModemStat and MS RLSD ON  lt  gt  0 then  ShowMessage     The RLSD  receive line signal   detect  is on      end    fechar a porta   CloseHandle  hCommFile    end     D  vida enviada por Venture Training  amp  Inform  tica  S  o Paulo   SP    30  4  MeGAZINE    
26. e de detec    o da URL    N  s vamos criar uma propriedade URLDetect com o novo       open     PChar  GetSelText   nil     controle TExRichEdit   property URLDetect   boolean  read FURLDetect   write SetURLDetect  default FALSE     A procedure SetURLDetect foi escrita apenas para que  quando a propriedade URLDetect seja configurada  ela chama a  fun    o RecreateWnd que recria a procedure CreateWnd  veja a  listagem 2  Isto atualiza o controle RichEdit corrente para  desligar ou ligar a detec    o da URL     procedure TExtCustomRichEdit SetURLDetect    Value  boolean      begin  if URLDetect  lt  gt  Value then  begin  FURLDetect   Value   Recreatelind   end   end     E tesnplo do move Kac h Edit  THE CLUB  0 maior clube de arogramadores do Brasil    Home Page http  The  lut com br    mailo cadastro Miheciub com ar      al    Faint Size  10         Figura 1  Utilizando o novo RichEdit   Conclus  o    Finalmente voc   pode ver na figura 1 um exemplo de uma  aplica    o implementada com o novo RichEdit 2 0  Ela n  o  suporta apenas URLs  mas tamb  m file   mailto   ftp   https    gopher   nntrp   properto   telnet   news   wais    Por implementar um componente constru  do no RichEdit 2 0  da Microsoft  n  s fomos capazes de usar a caracter  stica de  dete    o de URL  Entretanto  olhando a lista das caracter  sticas  inclu  das na vers  o 2 0     muito prov  vel que voc   encontre  outras caracter  sticas que gostaria de usar  Voc   pode fazer o  download do exemplo no endere  
27. eb Server Application    MeGAZINE             Na janela seguinte selecione a op    o CGI Stand Alone executable   figura 4      Mira tado sd wa S apila alora E E x        ego et des lar o cl Fado oi p solo  DO saa r    nr    ORTH brer elm  Laer  i ROl shana ezib a   C en Sad ocho cad o  f  Dp d he 5l and kod  LL    E o nay EEE lE    Lala  tamo      figura 4 sele    o do tipo da  aplica    o    LIF     r   Hr  p      a tee A    Em seguida teremos  um WebModule  figura  5         figura 5 WebModule    Mas o que    um WebModule      WebModule    um reposit  rio de objetos  com a fun    o de  armazenar os objetos n  o visuais da aplica    o tais como   TpageProducer  TqueryPageProducer  TQuery  etc   bem como  responder as mensagens requisitadas pelo servidor HTTP     Bem  para que uma aplica    o servidora possa trabalhar   devemos delegar tarefas  atrav  s de Actionsltems  ou simplesmente  Itens de A    o     Para explicar melhor o uso de Actionsitems  imagine uma  aplica    o para inclus  o e altera    o de clientes  Teremos o  seguinte cen  rio     Aplica    o  clientes exe      ActionItem inclus  o    a    o para incluir cliente     ActionItem altera    o   a    o para alterar cliente       bastante simples  cada Actionltem tem uma fun    o  espec  fica dentro da aplica    o servidora  Para executar no    browser ou celular uma determinada Actionltem  basta fazer como  no exemplo     http   site scripts clientes exe inclusao    Repare que informamos o nome da aplica    o  cl
28. eressante    que o Apache Server traz  consigo embutido um excelente GateWay WAP  Embora esteja  documentado que o Apache apenas suporta aplica    es WAP  ele  possui toda a implementa    o necess  ria para um perfeito  funcionamento  Veremos adiante como conseguir o Apache  bem  como a instala    o e configura    o num servidor     Para que possamos prosseguir no desenvolvimento de nossa  aplica    o  precisamos tamb  m de um simulador WAP  Existem    MeGAZINE Gi  5       v  rios no mercado  mas particularmente prefiro o Deck it da  PyWeb  A figura 2 ilustra a interface do Deck it        DE H MAL Pro iemer Ed    odor Ls        s  tal dy    6        Wid mt ah im        Figura 2   Deck it    Onde conseguir os softwares necess  rios   O Apache Server poder   ser    baixado    no site da Apache org   www apache org   Procure    baixar    uma vers  o igual ou  superior a 1 8     O Deck it est   dispon  vel no site da PyWeb  www pyweb com    e assim como o Apache    totalmente freeware     Instalando e configurando o Apache    A instala    o do Apache no Windows    bastante simples e  intuitiva  J   ouviram falar do famoso next next next      basicamente isso  Ap  s concordar com a licen  a do software   basta avan  ar o assistente de instala    o  at   a conclus  o da  mesma     Agora vem a parte chata da coisa  configurar o bendito    O Apache possui um arquivo com o nome httpd conf   normalmente localizado no subdiret  rio conf da instala    o   Exemplo C NArquivos de Programas
29. ientes exe  e o       DELPHI       nome da Actionltem   inclus  o   A aplica    o servidora n  o possui  limite de Actionltems  portanto podemos criar aplica    es complexas     Bem  seguindo o nosso primero projeto  atrav  s do duplo   clique no WebModule  acesse o editor de Actionltems  figura 6              diting WwebModulel  Actions E x  Cy          Falt bru   Fra kil       dela   inhari       figura 6 editor Actionltems    Clique no primeiro bot  o do editor para inserir uma nova  Action  figura 7          E Tito wehh nuli Achinne E      ato             Palla  Encbkd  Colaul  pdc    themes  Tue        figura 7 Actionltem    Em seguida altere as seguintes propriedades     SEJETO    TWebactianiham  Propriscade Walor    EEE  Petty PESE po LED  Esta ser   nossa Action padr  o  ou seja  caso o usu  rio n  o digite  nada  al  m do nome da nossa aplica    o  esta Action ser    executada     Embora a propriedade Pathlnfo possua o mesmo valor da  propriedade Name     ela que executa a Action  ou seja  no browser o  que vale    o valor da PathInfo    evento OnAction coloque o seguinte c  digo              N  o se assustem com as denomina    es do cabe  alho      lt    DOCTYPE wml         isso    um padr  o  e o restante iremos  conhecendo aos poucos     Vamos analisar o c  digo     Na linha 001  estou dizendo ao servidor  atrav  s do m  todo  Response ContentType  que o tipo de informa    o    no padr  o    WAP   Em  seguida  nas linhas 002 003 e 004  estou empacotando a    respo
30. ina o Script  lias apenas  no subdiret  rio  scripts         Outra coisa importante a saber  s  o os MimeTypes WAP  Mas o  que s  o MimeTypes  Para que os servidores HTTP reconhe  am um  tipo de requisi    o  ou ent  o  um m  todo de envio     necess  rio a  defini    o dos MimeTypes     S   para clarear um pouco a informa    o  uma imagem do tipo  JPG     definida como image   JPG    Com isso o servidor saber   qual o melhor m  todo de  transmiss  o para este tipo de arquivo     6  4  MeGAZINE    Mime Types do WAP         Imagem bitmap bp   image vnd wap wbmp    Normalmente    necess  rio adicionar os MimeTypes em nossos  servidores HTTP  mas em nosso caso  n  o h   essa necessidade   visto que a partir da vers  o 1 3 1 o Apache j   traz consigo toda a  configura    o especificada     Colocando a m  o na massa    Particularmente amigos  essa    a parte que mais gosto  m  o  na massa     No Delphi iremos criar uma aplica    o servidora no padr  o  CGI     Pe  o licen  a aos saudosistas para utilizar o nosso famoso     Hello World    como exemplo     A partir do Delphi  selecione as op    es File New Other    e em  seguida a op    o Web Server Application  como ilustra a figura 3                 Jre lem  EE e x   L da Horde    SU Es   tits EIL   weba Lts   Lusa    dra   Pt  ape   H lhes   Fun    Fu     Disb    Fr alz       Ei E a      BS     apr lesar  Il di     er Eid  E A B  Samka polca  oi Teu  Trim d dba  L ril    AHL Dia rdr       Den do ha Cla          figura 3 op    o W
31. iona uma aplica    o WAP     precisamos conhecer o funcionamento de uma aplica    o  servidora     DELPHI       Acredito que todos est  o habituados no desenvolvimento de  aplica    es desktop  onde normalmente instalamos em cada  terminal nossa aplica    o  Isso    o que chamamos de aplica    es  locais     Quem est   acompanhando os excelentes artigos do meu  amigo Anderson Hartel  teve um forte contato com aplica    es  distribu  das  onde s  o instalados m  dulos no servidor  e m  dulos  no cliente  terminal      Em nosso caso teremos apenas o m  dulo servidor  pois o  cliente da nossa aplica    o    um browser com suporte a tecnologia  WAP  ou seja  a grande maioria dos celulares comercializados no  mercado nacional     Para facilitar a compreens  o  a figura 1 ilustra bem o nosso  caso           HUTY W N S a     ETR TIF E e  E    a a    al    colar Ielicute metidos Irate tias  lieura l    Na ilustra    o  temos um celular  que funciona como o nosso  cliente  terminal   onde solicita os servi  os ao servidor  Os dados   WML  trafegam atrav  s do protocolo HTTP  Quando os dados  chegam no servidor  o mesmo tem que interpretar a requisi    o  e  esse servi  o    feito pelo GateWay  O GateWay tamb  m tem como  fun    o empacotar o resultado da requisi    o  para que o servidor  retransmita ao celular     Em resumo necessitamos de duas aplica    es b  sicas no  servidor       Servidor HTTP  recomendo o Apache Server     Nossa aplica    o servidora     Um detalhe bastante int
32. o  com a EverSystem  talvez a maior empresa de desenvolvimento  deste setor   uma solu    o bastante robusta  oferecendo ao  usu  rio  um controle total de suas aplica    es  S   para ter uma  id  ia  a aplica    o disponibiliza at   gr  ficos de a    es em celulares  WAP     realmente incr  vel     DETRAN SP   Um dos pioneiros na tecnologia WAP  o DETRAN de S  o  Paulo  disponibiliza informa    es de Multas  Pontua    es na  Carteira  entre outros     Viram que o poder do WAP    grande  e basta uma id  ia para  transformar em lucro     Algumas id  ias para ganhar dinheiro  Bem  aqui v  o algumas sugest  es bastante interessantes  para ganhar dinheiro com aplica    es WAP        Aplica    o de aux  lio a vendedores  externos  com op    o de consulta a  estoque  faturas de clientes  e fechamento  de pedidos     For  a de Vendas    Aplica    o que auxilia pesquisadores das  mais variadas   reas  IBOPE  CENSO   Opini  o  Produtos  entre outras    TimeSheet Aplica    o para TimeSheet de consultores   advogados  t  cnicos  entre outros    Pesquisas de  Campo    Gerenciamento de Processos Jur  dicos   onde o advogado ou cliente poder    Processos VOO E p  consultar informa    es sobre os  andamentos dos processos      m mobile  Vendas de ingressos   m Ticket   l  passagens aereas  cinemas  teatros  etc   m Finance Aplica    es para o mercado financeiro    Com  rcio em geral atrav  s de aplica    es  WAP    m Commerce  Entendendo as aplica    es WAP  Para entender um pouco como func
33. o herdada de TObject     Conclus  o    Mostrei nesse artigo o conceito e para que serve Interfaces   Como j   citado  Interfaces j   fazem parte do nosso dia a dia e far  o  mais ainda com a chegada dos WebServices  Foi demonstrado  tamb  m que  Interfaces n  o est   ligada a apenas OD  Objetos  Distribu  dos   pois  com a estrutura de Interfaces e classes  demonstradas nesse artigo  vimos que a mesma tamb  m    de  extrema import  ncia na Programa    o Orientada a Objetos   OOP      No pr  ximo artigo daremos in  cio    parte de cria    o de  servidores de aplica    o no protocolo COM   Al  m de criar o  servidor  eu mostrarei o que    e para que serve cada op    o na  cria    o do Remote DataModule  RDM      Sucesso e Sa  de a todos     Um Abra  o        MeGAZINE     19    G  DELPHI       Homologando seu Software para realizar  Transfer  ncia Eletr  nica de Fundos    Em artigos anteriores  comentamos sobre a necessidade de  uma vez que seu aplicativo esteja totalmente preparado para  fazer TEF  falando com a dll de comunica    o e o gerenciador  padr  o de cada bandeira  existe a necessidade de realizar uma  homologa    o ou testes no software em duas entidades  homologadoras de TEF  a Software Express e a Seven Pdv   ambas em S  o Paulo     Nestes testes s  o realizadas todas as opera    es que envolvem  a Transfer  ncia Eletr  nica de Fundos  ou seja  n  o ser    certificado seu software se esta baixando estoque ou n  o  se esta     bonitinho    ou n  o  a quest  o    hom
34. o www theclub com br revista   novorichedit zip  mas n  o esque  a que antes de testar o exemplo  voc   deve instalar o novo componente ou seja  o arquivo  Riched20 pas     28  Q MeGAZINE       Pergunta  Quando tento executar um programa compilado com  o Delphi 6 0 no Windows NT 4 apresenta erro    N  o foi poss  vel  localizar o ponto de entrada do procedimento VarNot na biblioteca  v  nculo din  mico OleAut32 dll     Como resolver     Resposta  Para solucionar este problema o Sr  dever   rodar um  Update Pack em seu Windows     Windows NT 2000  Requer Windows NT 4 0 SP4 ou superior   Windows 95 98  Requer Windows 98  ou Windows 95 com  DCOM 1 2      D  vida enviada por Cosis Computa    o  amp  Sistemas  Franca SP    Pergunta  Tenho uma aplica    o desenvolvida em  Delphi6 dbExpress Firebird e quando declaro a unit MidasLib  na lista de uses  as exce    es retornadas pelo banco de dados s  o  apresentadas  por  m sem a mensagem de erro na caixa de  di  logo  aparecendo somente o bot  o    Ok     Por  m  compilando  sem a MidasLib na lista de uses funciona corretamente  Como  resolver o problema     Resposta  Na verdade isso ocorre devido a um bug no Delphi   bug esse que pode ser resolvido atualizando o arquivo  MidasLib DCU e incluindo o arquivo MidasLib RES no diret  rio  LIB do Delphi6  Um detalhe importante  o Delphi6 deve estar  atualizado para o Pack 2     O arquivo  ZIP contendo o MidasLib DCU e MidasLib RES pode  ser encontrado no endere  o http   codecentral borland
35. odified  Boolean   begin   WasModified    inherited Modified     inherited Createlind   if  SysLocale FarEast  and  not  SysLocale PriLangID   LANG JAPANESE   then  Font Charset    GetDefFontCharset      Added the ENM LINK to receive EN LINK message    SendMessage  Handle  EM SETEVENTMASK  0   ENM CHANGE or ENM SELCHANGE or  ENM REQUESTRESIZE or  ENM PROTECTED or ENM LINK       Activate the URL Detection feature  SendMessage  Handle  EM AUTOURLDETECT   Ord  FURLDetect   0      SendMessage  Handle  EM SETBKGNDCOLOR  0   ColorTOoRGB  Color      if FMemStream  lt  gt  nil then  begin  Plain    PlainText   FMemStream  ReadBuffer  DesignMode     DELPHI 4     sizeof  DesignMode      PlainText  try       DesignMode     Lines  LoadFromStream  FMemStream     FMemStream Free     FMemStream    nil   finally  PlainText    Plain   end   end   Modified    WasModified   end     Listagem 2  A procedure CreateWnd     Quando o cursor do mouse for movido para o texto da URL  o  controle RichEdit recebe uma notifica    o EM LINK  Neste ponto   o controle pode mudar o cursor do mouse  indicando ao usu  rio  que ele pode clicar na URL     Veja a listagem 3     procedure TExtCustomRichEdit CNNotify   var Message  TWMNotify    type  PENLink      TENLink   begin  with Message do  case NMHdr    code of  EN SELCHANGE   Select ionChange   EN REQUESTRESIZE   RequestSize  PRegSize  NMHdr     rc    EN SAVECLIPBOARD   with PENSaveClipboard  NMHdr     do  if not SaveClipboard  cObjectCount  cch   then Result
36. ologar para certificar se que  as opera    es de transa    o eletr  nica realmente est  o acontecendo  de acordo com os padr  es de seguran  a estabelecidos pelas  bandeiras  O que    altamente aceit  vel pois com a nova lei da  Obrigatoriedade do TEF nas impressoras fiscais  nossos  softwares passam a assumir uma pesada responsabilidade que     d  bito ou credito de valores monet  rios de nossos clientes     Nestes passos homologat  rios existem v  rios testes que s  o  realizados  entre eles se a impressora fiscal est   desligada e com o  Micro  PC  desligado  Como    feito isso     1     ordenada a impress  o de um cupom fiscal e logo ap  s  uma Transa    o TEF  quando o software come  a a imprimir o  comprovante TEF na Impressora fiscal  exatamente neste  momento  o ECF    desligado e voc   necessita controlar tudo isso  em seu software    a  Necessita identificar que o ECF est   desligado    Por Claudenir C  Andrade    b  Necessita controlar que ao ligar o ECF novamente voc    dever   reiniciar a impress  o do TEF em um Relat  rio Gerencial   c  E finalmente necessita controlar que caso o ECF n  o  seja ligado novamente  a opera    o dever   ser Cancelada    2     ordenada novamente a impress  o de um cupom fiscal e  logo ap  s uma transa    o ETF  quando o software come  a a  imprimir o comprovante TEF na Impressora o Micro  PC      desligado  isso mesmo  e voc   dever   controlar    a  Necessita Identificar que o micro foi desligado   b  Necessita identificar que ficou
37. r o arquivo comctris pas para um novo  arquivo chamado Riched20 pas  Remova todas as classes  menos  as classes que pertencem    classe TCustomRichEdit  Renomeie a  classe para TExCustomRichEdit  Agora comece a fazer as suas  implementa    es na vers  o 2 0 do RichEdit     Na procedure CreateParams  modifique o conte  do da  constante RichEditModuleName de Riched32 DLL para  Riched20 dll  como mostrado na listagem 1  Modifique tamb  m a  procedure CreateSubCllass  desde ent  o ele estava usando a  vers  o antiga  Existem duas classes fornecidas  a ANSI e a  UNICODE que cont  m as constantes RICHEDIT CLASSA e  RICHEDIT CLASSW respectivamente  N  s vamos usar a vers  o  ANSI da classe RichEdit  que    a RICHEDIT CLASSA        26  4  MeGAZINE    with Params do  begin   Style    Style or HideScrollBar  HideScrollBars   or   HideSelections  HideSelection    WindowClass style    WindowClass style and not   CS HREDRAW or CS VREDRANW      end    end     Listagem 1  A procedure CreateParams no novo componente  RichEdit baseado no Microsoft RichE dit 2 0    Processando a detec    o da URL   Em ordem para o controle receber a mensagem EN LINK   n  s vamos incluir a mensagem ENM LINK quando enviar o  EM SETEVENTMASRK  veja a listagem 2  Tamb  m quando criar  a janela  n  s enviamos a mensagem EM AUTOURLDETECT a  qual ativa o efeito CFE LINK     Este efeito modifica a cor do texto URL e deixa o texto  sobrescrito     procedure TExtCustomRichEdit  Createlind   var   Plain  DesignMode  WasM
38. ra ambos     function DupeString  const AText  string  ACount   Integer   string     StuffString troca a se    o nomeada de uma string existente   AStart e ALength  com a nova substring  Voc   recebe alguns  efeitos interessantes se o tamanho for negativo     voc   come  a  repetindo alguns caracteres mais adiantados na string original  que segue a substitui    o     function StuffString  const AText  string  AStart   ALength  Cardinal  const ASubText  string   string     Sele    o   Para escolher uma entrada aleat  ria de um array de strings   cada um com uma possibilidade igual  use a rotina  RandomFrom  Note que esta    uma fun    o sobrecarregada que  pode tamb  m fazer exame de disposi    es de n  meros inteiros ou  de ponto flutuante     function RandomFrom  const AValues  array of string    string  overload     Outra fun    o sobrecarregada  IfThen fornece uma fun    o  em linha para strings  Ela avalia a express  o booleana e retorna  a primeira string do par  metro se for verdadeiro  e a segunda se  for falso  Esta fun    o pode ser embutida em uma grande  express  o e troca uma instru    o if para executar o c  lculo     function IfThen  AValue  Boolean  const ATrue  string   AFalse  string        string  overload     Se voc   precisa de um acesso f  cil para as se    es de string   voc   pode usar as seguintes rotinas para extrair o inicio e o fim  ou alguma coisa entre eles  Cada um deles usa internamente a  fun    o Copy  De fato  o MidStr    basicamente um Copy 
39. rav  s de CTRL SHIFT G  no editor de c  digos do Delphi     Vamos agora implementar e exemplificar o uso de Interfaces    Heran  a M  ltipla   Como j   citado  heran  a de Classe for  a a Classe Filha a  armazenar todos os campos que s  o declarados na Classe PAI   N  o tem jeito  Em heran  a de classes  podemos acrescentar  funcionalidades a Classe Filha  mas  n  o podemos remover  funcionalidades da Classe PAI  o m  ximo que podemos na Classe  Filha     tornar as coisas invis  veis  Se n  o quisermos tal  funcionalidade na Classe Filha  teremos de ir ao Ancestral  imediato a Classe PAI e verificar se o mesmo implementou tal  funcionalidade  caso tenha implementado  teremos de ir Classe  Ancestral por Classe Ancestral at   chegarmos na Classe que n  o  implementa tal funcionalidade  Nesse processo de retorno de  Classes Ancestrais podemos e  com certeza perderemos  implementa    es vitais  dos quais  nos far  o falta na Classe Filha      um problema     Vejam bem  a Heran  a de Classe    uma ferramenta eficaz   gra  as a Deus que a mesma existe  para a reutiliza    o de c  digo   O Problema  ou n  o     o Delphi n  o dar suporte a Heran  a s   M  ltipla s   Um debate sobre os benef  cios ou n  o de Heran  a s   M  ltipla s  est   fora dos planos desse artigo     Square x Polygon x Rectangle   Shape   A Interface IShape seria a Interface base para todas as Interfaces  IPolygon  IRectangle e ISquare envolvidas na estrutura   TSquare necessita armazenar todos os seu lados  TRec
40. res  default     retornando o se uma exce    o for apresentada de  qualquer forma  Existe tamb  m rotina correspondente ao Try  que executa a convers  o e retorna True se teve sucesso e False se  n  o teve sucesso    Como um efeito colateral  ele retorna um valor convertido   via um par  metro     function StrToFloatDef  const S  string  const  Default  Extended   Extended    function TryStrToFloat  const S  string  out Value   Extended    Boolean  overload    function TryStrToFloat  const S  string  out Value   Double   Boolean  overload    function TryStrToFloat  const S  string  out Value   Single   Boolean  overload    function StrToCurrDef  const S  string  const  Default  Currency   Currency    function TryStrToCurr  const S  string  out Value   Currency   Boolean     function StrToDateDef  const S  string  const Default   TDateTime   TDateTime    function TryStrToDate const S  string  out Value   TDateTime   Boolean     DELPHI 4     function StrToTimeDef  const S  string  const Default   TDateTime   TDateTime    function TryStrToTime  const S  string  out Value   TDateTime   Boolean     function StrToDateTimeDef  const S  string  const  Default  TDateTime   TDateTime    function TryStrToDateTime  const S  string  out Value   TDateTime   Boolean     Voc   pode agora converter facilmente entre boolean e string  com o default e vers  es Try descritas anteriormente  A convers  o  depende dos arrays TrueBoolStrs e FalseBoolStrs  Voc   os  preenche com os valores apropriados
41. rganiza    o e controle  pois teremos servidores dedicados  e especialmente configurados para tarefas espec  ficas     O papel dos dois servidores pode estar concentrado numa    nica m  quina  mas para estruturas muito pequenas  tanto em  tamanho da rede interna quanto em complexidade e porte da  base de dados Oracle  E essa n  o poder   de forma alguma ser  considerada uma solu    o profissional     E fundamental que instalemos no servidor web um software  que concentre       firewal b  sico      compartilhamento de conex  o Internet     regras de acesso    Internet      mapeamento de portas     Costumamos utilizar e recomendamos plenamente o  Winroute  que re  ne todas essas ferramentas e diversos servi  os  adicionais  As ferramentas similares dispon  veis gratuitamente  no Windows s  o muito rudimentares e incompletas e n  o  costumam atender    exig  ncias profissionais     14  4  MeGAZINE    Conex  es via    Web Server      Uma das possibilidades que temos  principalmente se todas  as    regras de neg  cio    estiverem escritas no banco     conectarmos  ao Oracle aplica    es escritas em ASP  HTML ou qualquer outra  linguagem  atrav  s de conex  es ADO     muito simples     Neste caso  temos como caracter  stica s   podermos nos  conectar externamente ao banco atrav  s de chamadas do IIS   Internet Information Server  do Windows 2000 ou qualquer  outro servi  o    web server    que desejarmos     E imprescind  vel neste caso  que tenhamos no servidor web  um    servi  o
42. riedade Valor Amigos  com isso conclu  mos o nosso artigo sobre o  desenvolvimento de aplica    es para celulares com Delphi     Para testar o sucesso do artigo  gostaria de receber sugest  es  e cr  ticas  emersonOfacunte com br  e quem sabe  escrever uma  continua    o  com acesso a banco de dados  e tudo mais        Como complemento de estudo a esse artigo  recomendo a  visita nos seguintes sites   No evento OnAction coloque o seguinte c  digo   www aprendawap com br  www pyweb com  www br wmlclub com  www apache org  www  linhadecodigo com br wap     Forte abra  o e muito sucesso a todos        O c  digo    exatamente igual ao anterior  estamos apenas  substituindo a mensagem     Vamos testar o c  digo   No Deck It digite o que segue na barra de endere  os   http  localhost ola exe theclub    Repare que estamos colocando o pathinfo theclub        A figura 9 ilustra o resultado da nossa segunda Action     MeGAZINE Gi  9        pa    SANT ANNA       Criando Componentes    Visuals      Por Mauro Sant Anna  santanna mas com br   Mauro    um     MSDN Regional Director     consultor e instrutor da MAS  Inform  tica  www mas com br   tendo ministrado treinamentos  na arquitetura  NET desde outubro de 2000    Esta    a primeira parte de um par de artigos que abordar  o a  cria    o de componentes visuais baseados em outros componentes  j   existentes  para serem usados em aplicativos  NET do tipo     WinForms       Tipos de componentes   Existem basicamente duas maneiras de criar
43. sobre as novas  potencialidades  e uma revis  o de algumas das mais antigas  o  objetivo foi deixar voc   ciente destas rotinas de modo que as possa  usar dentro de seus pr  prios programas     MeGAZINE Q   25       Detectando URLs  no RichEdit    Voc   j   deve ter visto esta caracter  stica em outros softwares  e desejou que sua aplica    o fizesse isto tamb  m  Bem  aqui est    uma mat  ria que realmente prender   seus olhos  Voc   j   deve ter  notado que o Microsoft Word tem o reconhecimento de URLs   Neste artigo vamos mostrar como criar esta caracter  stica no  componente RichEdit     O RichEdit e a detec    o da URL   Se voc   fizer uma pesquisa no seu computador pelos arquivos  riched  dll  voc   encontrar   dois arquivos  RICHED32 DLL e  RICHED20 DLL que est  o nos diret  rios Ywindows system ou  winntisystem32 dependo da vers  o do seu Windows  O arquivo  RICHED32 DLL implementa as caracter  sticas da vers  o 1 0 e o  RICHED20 DLL implementa uma nova caracter  stica ao  RichEdit     O componente inclu  do no Delphi n  o tem a implementa    o  de detec    o de URL  Se voc   olhar o c  digo fonte do RichEdit   comctris pas   o Delphi ainda usa o RichEdit vers  o 1 0  Isto     triste porque o controle Microsoft RichEdit vers  o 2 0 n  o tem a  detec    o de URL e muitas outras caracter  sticas     Como podemos reconstru   la  N  s temos esta tecnologia   Portanto existe apenas uma coisa a fazer  Refazer o controle  baseado no novo RichEdit 2 0     Primeiro vamos copia
44. sta  Response Content  e enviando ao servidor  que por sua  vez  envia ao celular           Grave a unit do nosso projeto como un ola pas e o projeto como  ola dpr     Normalmente em aplica    es desktop  executamos atrav  s da  tecla F9  Run   neste caso  apenas iremos compilar a aplica    o  e  execut   la atrav  s do nosso simulador Desk lt     No Deck It digite o que segue na barra de endere  os     http  localhost ola exe  A figura 8 ilustra o resultado da nossa aplica    o        Liza its    rem doc   er  r dh      iaj PG    In   n Ler C        mEL SLIL  T  M s DWE eE MTL a Tia L l  4      1  EESC T    mi   h a 1 LEE E rl akl rala      i aj       Figura 8     Resultado da aplica    o    J MeGAZINE       S   para ter uma id  ia  voc   poderia simular em seu pr  prio er    celular WAP este exemplo  Mas Facunte  como eu faria isso  Ia l  mo a f Pia  Epb mma  myr      ge hred ra a mm  Herir       Conecte seu computador a Internet  anote o n  mero do IP  fornecido no momento da conex  o  exemplo  200 198 12 1  e digite  no seu celular  o modo de entrada para comunica    o WAP varia  de celular para celular  consulte o seu manual de instru    es   o  endere  o     http   200 198 12 1 ola exe    Repare que o n  mero  na realidade    o seu endere  o de IP  atual  exemplo         Continuando com a nossa aplica    o  vamos criar mais uma  Action com as seguintes propriedades     Figura 9     Segunda Action  CENETO    E interessante  n  o acham   TwWebAchonttem       Objeto   Prop
45. tangle  necessita armazenar dois tamanhos e TPolygon necessita  armazenar muitos lados e v  rtices  No esquema apresentado  acima n  o nos interessa guardar dados pertinentes de uma  forma  Shape  para a outra  o que nos interessa    termos uma  Interface e uma Classe Base que armazena todos campos que  fa  am sentidos em todas as formas apresentadas  Qual a  solu    o     separar a heran  a de Tipo  Interfaces  da Heran  a de  Classe  como j   citado     type    IShape   interface     5C3AE4B8 B50E 44C6 A135 6FF00E44A270       procedure Draw  Canvas  TCanvas     procedure SetPosition const Value  TPoint    function GetPosition  TPoint    property Position  TPoint read GetPosition write    DELPHI 4     SetPosition   end     IPolygon   interface  IShape       ACB90E43 04E6 4A 7D A782 438B5C201E28       function NumVertices  SmallInt   function NumSides  SmallInt   function SetLenght  const Index  SmallInt   TPoint   function Vertex  Index  SmallInt   TPoint   end   IRectangle   interface  IPolygon       31224B6F 4488 4280 BA93 7E5DDA71F2ED       end     ISquare   interface  IRectangle       A7787A55 8066 458F A3D1 538E86DF8774       function Side  SmallInt   end   TShapeBase   class  TInterfacedObject  IShape   private    Private declarations    FPosition  TPoint   function GetPosition  TPoint     procedure SetPosition const Value  TPoint      protected    Protected declarations      public    Public declarations      constructor Create  override     procedure Draw  Canvas  TC
46. ts  O  que fizemos acima foi  delegar a implementa    o da propriedade  para a interface IMyIntf2  que est   na diretiva implementation     Quando temos  tipos  sub rotinas e ou vari  veis nesta se    o   as mesmas s  o privadas a essa unidade     O c  digo acima foi uma delega    o para um tipo interface se o  mesmo fosse um tipo de classe  ter  amos que tomar o seguinte  cuidado       O tempo de vida do objeto  Para contornar as dores de  cabe  as que poder  o vir  temos que fazer com que o Getter crie  um novo objeto toda vez que for chamado     Se a sua declara    o necessitar implementar mais de uma  Interface separe as mesmas por virgula        DELPHI       Considera    es finais   e O Compilador do Delphi n  o trata as interfaces por seu  nome e sim pelo seu ID       Voc   pode passar o nome da Interface para o m  todo  Query Interface que o Delphi automaticamente transforma  seu valor no ID da Interface     e A Classe TObject tem dois m  todos interessantes para o  retorno de informa    es nas Interfaces suportada pelo Objeto   GetInterfaceTable   e GetInterfaceEntry    apenas saliento  que a   ltima voc   raramente usar    por que     usada  internamente pelo Delphi no m  todo GetInterface         O Incremento de refer  ncia da Interface    conseguido  usando o operador as e com o m  todo QueryInterface       e A seguinte declara    o faz com a interface herde de   Interface    IMy Intf   interface  a mesma    an  loga a TMyClass   Class   do qual a classe est   send
47. vidores dedicados ao papel de firewall  utilizando plataformas  Windows Server ou Linux        s   isso  Simples n  o    E mais um detalhe importante  a sua aplica    o escrita em  Delphi e largamente testada no Oracle 8i n  o precisar   de  nenhuma modifica    o para estar    compat  vel    com o Oracle 9i   Se essa ainda    uma de suas preocupa    es constantes  esque  a o  problema     MeGAZINE     15       DataSnap      Interfaces    Parte HI    Introdu    o  No artigo anterior foram demonstrados os principais padr  es  e protocolos existentes hoje no mercado que o DataSnap utiliza     No artigo desse m  s eu explicarei o que s  o Interfaces  Volto a  frisar que usarei o Delphi 6 Update Pack 2 para realizar nossos  exemplos e explica    es em geral     Interfaces   A regra    clara  Uma Interface define um tipo que compreende  m  todos virtuais abstratos  Uma classe Delphi padr  o  TMyClass    class TObject   tem de ser herdada apenas de uma classe  por  que  o Delphi n  o d   suporte a M  ltipla s  Heran  a s   Interfaces  existem para contornar esse problema  falando em Programa    o  Orientada a Objeto  e ainda trabalhar com Objetos Distribu  dos     As Interfaces foram implementadas no Delphi 3 justamente  para o Delphi dar suporte ao padr  o COM da Microsoft    mas   n  o significa que temos de conhecer COM para usarmos Interfaces  no Delphi  Assim como todas classes Delphi no seu mais Baixo  n  vel herdam de TObject  unit System pas   todas as Interfaces  herdam de 
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
KALED24DVDWB User Manual  Spanish IOM 1171/2171  JABRA STORM  電子式マルチメータ 取扱説明書  MANUAL DE INSTALACIÓN Y USO    Bayer HealthCare CONTOUR Blood Glucose Meter and Ascensia CONTOURTM Test Strips User's Manual  MFW Control Software取扱説明書:mfwcsmj  取扱説明書 UE-404083 - Psn  KOHLER K-7307-K-CP Installation Guide    Copyright © All rights reserved. 
   Failed to retrieve file