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...
DIFICIL APRENDIZADO - Introdução.
Moderador: Moderadores
-
Cleiton Fidelis
- Usuário Nível 2

- Mensagens: 81
- Registrado em: 06 Jul 2004 09:44
- Localização: Divinopolis MG
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
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
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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:
Certo?
@braços :?)
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
@braços :?)
