DIFICIL APRENDIZADO - Janelas.

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

DIFICIL APRENDIZADO - Janelas.

Mensagem por rochinha »

Amiguinhos

Estou aqui novamente, agora pra exemplificar como usar a 5Win de forma simples e rápida.

Antes de mais nada eu suponho que a 5Win já esta instalada, caso não favor baixarem em http://www.shoppmarketing.com/forum/fw192ev.zip

Descompate em algum diretório qualquer e copie:

- suas .LIBs pra dentro do diretório LIB de seu Clipper
- suas .OBJs pra dentro do diretório OBJ de seu Clipper
- suas .CHs pra dentro do diretório INCLUDE de seu Clipper

Ou direcione os PATHs do Clipper para que apontem para o diretório onde foi descompactado a 5Win, ou seja:

SET OBJ=C:\CLIPPER\LIB;C:\FIVEWIN\LIB
SET LIB=C:\CLIPPER\OBJ;C:\FIVEWIN\OBJ
SET LIB=C:\CLIPPER\INCLUDE;C:\FIVEWIN\INCLUDE

Para compilar os exemplos basta fazer assim:

CLIPPER exemplo /m/n
BLINKER FILE exemplo @fivewin.lnk

O arquivo FIVEWIN.LNK deve estar dentro de algum diretório PATHeado de seu Clipper.

Bem, todo aplicativo Windows é baseado em uma base de suporte que pode ser uma janela ou um diálogo.

Usase o diálogo para programas que tem uma interação mais direta com o usuário e as janelas para uma interação mais complexa, ou seja, com vários diálogos e janelas.

Exemplo:

Código: Selecionar todos

#include "fivewin.ch"

function main()
     local oWnd1, oWnd2
     DEFINE WINDOW oWnd1 TITLE "oWnd1" ;
                  FROM 5, 5 TO 24, 64
     DEFINE WINDOW oWnd2 TITLE "oWnd2" ;
                  FROM 1, 1 TO 20, 60
     oWnd2:Show()
     ACTIVATE WINDOW oWnd1
     return nil
No exemplo anterior foram criadas duas janelas, sendo que a janela oWnd2 esta ligada a janela oWnd1 apenas pelo processo de execução. Se a janela oWnd1 for fechada primeiro terminará o processo da segunda( oWnd2 ) forçosamente.

Vejamos o que acontece neste segundo exemplo:

Código: Selecionar todos

#include "fivewin.ch"

function main()
     local oWnd1, oWnd2
     DEFINE WINDOW oWnd1 TITLE "oWnd1" ;
                  FROM 5, 5 TO 24, 64
     ACTIVATE WINDOW oWnd1 ON INIT BuildJan2()
     return nil

function BuildJan2
     DEFINE WINDOW oWnd2 TITLE "oWnd2" ;
                  FROM 1, 1 TO 20, 60
     ACTIVATE WINDOW oWnd2
     return nil
Neste caso a segunda janela foi aberta de forma correta, mas pelo simples fato de não existir o vinculo com a janela principal, se a janela principal for fechada é bem provável que seu aplicativo irá travar travando também o Windows.

Então a melhor codificação de janelas é a que se segue, tornando o seu aplicativo um verdadeiro MDI( Multi Document Interface ).

Código: Selecionar todos

#include "fivewin.ch"

function main()
     local oWnd1, oWnd2
     DEFINE WINDOW oWnd1 TITLE "oWnd1" [b]MDI[/b] ;
                  FROM 5, 5 TO 24, 64
     ACTIVATE WINDOW oWnd1 ON INIT ( BuildJan2(), BuildJan3() )
     return nil

function BuildJan2
     DEFINE WINDOW oWnd2 TITLE "oWnd2" [b]MDICHILD[/b] ;
                  FROM 1, 1 TO 20, 60
     ACTIVATE WINDOW oWnd2
     return nil

function BuildJan3
     DEFINE WINDOW oWnd2 TITLE "oWnd3" [b]MDICHILD[/b] ;
                  FROM 1, 1 TO 20, 60
     ACTIVATE WINDOW oWnd2
     return nil
DICA: Usem janelas para apresentar controles de agrupamento como TREEs, OUTLOOKs e BROWSEs. Não posicionem controles TEXT, EDIT E/ou COMBOs, pois não terão apelo profissional.

Na próxima vez falaremos diálogos e seus tipos.

Até mais.

LEIAM TAMBÉM: https://pctoledo.org/forum/viewtopic.php?t=845
Editado pela última vez por rochinha em 11 Nov 2006 12:40, em um total de 1 vez.
Paulao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 09 Jul 2004 11:03
Localização: Franca
Contato:

Mensagem por Paulao »

Bom dia Rochinha, parabens pela sua iniciativa.
Voce menciona o arquivo Fivewin.lnk, não estou conseguindo localiza-lo no diretorio do fivewin, se eu tiver que cria-lo como seria este arquivo?

Grande abraço
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

O arquivo tem a seguinte estrutura:

Código: Selecionar todos

// BLINKER INCREMENTAL OFF
// BLINKER EXECUTABLE COMPRESS
MAP A,S

BLINKER LINK VERSION 3.3

PACKCODE
PACKDATA

DEFBEGIN
   name        FiveWin
   description 'Fivewin & Clipper'
   exetype     Windows 3.1
   code        moveable discardable
   data        preload moveable
   stacksize   9500
   heapsize    2048
   segment     'PLANKTON_TEXT' nondiscardable
   segment     'EXTEND_TEXT'   nondiscardable
   segment     'OM_TEXT'       nondiscardable
   segment     'OSMEM_TEXT'    nondiscardable
   segment     'SORTOF_TEXT'   nondiscardable
   segment     'STACK_TEXT'    nondiscardable
DEFEND

NOBELL

LIB  Five
LIB  FiveC
LIB  Objects
LIB  WinApi
LIB  Clipper, Extend, DbfNtx, DbfCdx, _DbfCdx, Terminal
// acrescente aqui as libs que constuma usar e que são compatíveis com 5Win
LIB  NANFOR, OSLIB

@braços :?)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: DIFICIL APRENDIZADO - Janelas.

Mensagem por rochinha »

Amiguinhos,

Utilizem o seguinte download: develop.rar

Ele possui a versão NO COST do Fivewin e suas versões de Harbour e Borland correspondentes já configuradas.

Basta baixar e descompactar na pasta C:\DEVELOP de dentro desta pasta voces encontrarão as pastas Fivewin, Harbour e BCC55.

Para compilar basta entrar na pasta C:\DEVELOP\FIVEWIN\SAMPLES e usar o BUILDH.BAT para compilar os exemplos.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder