DIFICIL APRENDIZADO - Introdução.

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 - Introdução.

Mensagem por rochinha »

Amiguinhos

"A tarefa de aprender é mais árdua do que ensinar, mas o prazer final é muito maior."

Trabalhando em cima de meu projeto de transformação de meu sistema DOS para Windows usando a ferramenta Fivewin( 5Win ) vou aprendendo como lidar com a mesmae decifrando o seu mundo cheio de impasses.

Um erro aqui outro ali, não compila por causa do Preprocessor Stack Fault ou Dialog cannot create....

Mas o problema não é na ferramenta, ela em si é ótima, o problema existe no ambiente de compilação e no uso de recursos do WorkShop.

Ao iniciar o meu sistema optei por usar coordenada de texto e era muito complicado acertar as distancias e usar o Workshop deixaria as telas lindas, mas ao compilar tinha que agregar mais .DLLs e isto me irritava.

O jeito era gerar minhas telas no Workshop, mas salvá-las como .RC e agregá-las ao meu aplicativo usando o .RC( Resource Compiler ).

O numero de ícones, bitmaps e dialogos cresceu de tal forma que ficou um pouco dificil de fazer manutenção e os frequente erros de Dialog cannot create... começaram a me irritar. Foi então que saí a busca do que poderia ser e encontrei.

Quando voce agrega controles à um diálogo e não define um ID para o mesmo o Workshop define por sí só uma variavel e à esta variável um ID que a qualquer momento pode se chocar com o ID colocado pelo usuário em qualquer diálogo e então ocorre o erro.

Então o que fiz:

Ao criar meus diálogos coloco IDentificadores somente nos controles TEXTo, EDIT, LISTBOXes, COMBOBOXes e STATICs.

Qualquer outro controle como, GROUPBOX, LINE, etc eu coloco como ID o numero -1.

Desta forma estou conseguindo produzir o meu sistema sem problemas.

Estou usando o Fivewin 2.4 16 Bits, em um Duron 1.3Ghz sobre o Windows 2000 Professional e não obtive problemas com a API.

O intuito à partir de agora será de passo à passo ensinar aos amigos o uso de controles do 5Win para a criação de suas telas, como: PAGEs, TABs, FOLDERs alem de seus controles primordiais como WINDOWs, DIALOGs, MENUs, POPUP MENUs e BUTTONBARs e até alguns sofisticados como OUTLOOK e TREE.

Tentarei exemplificar de forma mais completa cada exemplo, desde a codificação até a compilação apresentado os .PRGs utilizados, forma de uso do RC.EXE e qualquer outra LIB necessária.

Até a próxima...
Cleiton Fidelis
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 06 Jul 2004 09:44
Localização: Divinopolis MG

Mensagem por Cleiton Fidelis »

Amigo Rochinha..


Parabens pela bela iniciativa...
Sabe que mtos mtos de nos, nao prosseguimos por isso, pode ser as vezes incopetencia, falta de atencao, algo do genero, mas saiba que a partir deste momento vc escreve um marco na Programacao F.W.


Obrigado pela tua ajuda.

Saude , paz e sucesso pra vc.


Acho q agradeco em nome de mtos.. e mtos que puderem junta-sem a vc..

Cleiton Fidelis
cleitonfidelis@hotmail.com
Divinopolis MG
Avatar do usuário
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Mensagem por filizola »

amiguinho, até mesmo os TEXTS podem ser referenciados com -1.
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

Voce tem razão, mas no caso de voce modificar o CAPTION dos TEXTs será necessário dar-lhe um ID.

Exemplo:

Em um DIALOGo existem um COMBO que retorna o nome e situação de um cliente.

O COMBO armazena então o nome deste cliente em sua variável;
O TEXT apresenta o conteudo de situação que pode ser uma mensagem de bloqueio, etc.

Para isto é necessário que o controle TEXT possua uma variável objeto para receber um Refresh() e um ID para ser ligado do DIALOGo. Portanto os outros TEXTs podem ter ID igual a -1.

Exemplo:

Código: Selecionar todos

...
REDEFINE COMBOBOX oCbx VAR cSituacao ID 100 ITEMS { "Liberado", "Bloqueado", "VIP" } OF oDlg ON CHANGE ( cTexto := cSituacao, oText:Refresh() )
REDEFINE SAY oText VAR cTexto ID 101 OF oDlg
Certo?

@braços :?)
Responder