Página 1 de 1

Como alterar EXTEND.LIB?

Enviado: 16 Dez 2015 18:50
por rmlazzari
Estou usando a função MEMOEDIT(), que no NG diz estar na EXTEND.LIB. Mas percebo que quando chamada essa função cria um quadradinho sem nada escrito na linha zero, lá em cima da tela, com a mesma cor de fundo do texto em edição. Se alterno a forma de inserção de caracteres (de sobrescrever para inserir), nesse quadrado aparece a mensagem <Insert>. E se tento sair com ESC (e não com CTRL-W), naquele lugar vem a questão: "Abort edit? (Y/N)".

Já tentei desabilitar esse quadradinho com set console off mas não funcionou.

Eu gostaria de interceptar essas mensagens para adequa-las à tela que estou fazendo: a marca "<Insert>" eu trocaria pela forma do cursor (bloco sobrescreve e traço insere), e a pergunta sobre sair sem salvar, eu a poria no meu formato, com alert(), inclusive.

Se não me engano, fiz isso uma vez, mas não me lembro... Tenho a impressão de que descompilei a função da EXTEND.LIB criando um programa só com a MEMOEDIT mesmo e depois o descomplei com o Valkyrie ou o Rescue, não me lembro. Ajustei o que precisava, recompilei com o Clipper e com o utilitário LIB do QB5, alterei o que queria e substituí na EXTEND com o próprio LIB.EXE.

Como substitui recentemente a função IAmIdle() na Nanfor mas sem a menor consciência do que fiz, usando só uma "receita de bolo", gostaria, se possível, de alterar a MEMOEDIT com consciência do que estou fazendo. E se alguém tiver os parâmetros de uso da LIB.EXE ("+" faz isso, "-" faz aquilo, não-sei-que lista as funções da LIB, etc.) também seria legal. Não estou encontrando em lugar nenhum da Internet, nem no site da MS mesmo.

Só como referência, a substituição da IAmIdle() na NANFOR.LIB foi assim: baixei da Internet o arquivo IAmIdle.obj, coloquei no mesmo diretório em que está a NANFOR.LIB e dei o seguinte comando:

D:\CLIPPER\LIB> LIB NANFOR -+ IAMIDLE;

Eu me lembro que o "-" subtrai a função da NANFOR e o "+" acrescenta o objeto. Mas e as outras opções para o LIB.EXE, além de subtrair e acrescentar? Listar, por exemplo, ou até mostrar a fonte... Na Internet não estou encontrando...

Como alterar EXTEND.LIB?

Enviado: 16 Dez 2015 19:43
por Toledo
rmlazzari escreveu:Já tentei desabilitar esse quadradinho com set console off mas não funcionou.
Use no início do seu programa o comando SET SCOREBOARD OFF
rmlazzari escreveu: a pergunta sobre sair sem salvar, eu a poria no meu formato, com alert(), inclusive.
Veja um exemplo neste arquivo que está na seção download:

Impressão de Cartas
Veja o arquivo CADCARTA.PRG, a função MEMO_FUN controla o que cada tecla pressionada vai fazer.

Abraços,

Como alterar EXTEND.LIB?

Enviado: 16 Dez 2015 19:44
por alxsts
Olá!

Para desativar as mensagens às quais você se refere, use o comando correto:

Código: Selecionar todos

SET SCOREBOARD ON | off | <xlToggle>
Por padrão, MemoEdit() termina sem gravar teclando-se <ESC> e termina salvando ao teclar <Ctrl+W>. Estes comportamentos podem ser alterados via programação.

Sobre o utilitário Lib.Exe, veja Using LIB.EXE to Add, Modify, and Combine .LIB; Quick Library Não me lembro se este programa exibe help, quando se tecla Lib /h ou Lib /?. Experimente aí.

Como alterar EXTEND.LIB?

Enviado: 16 Dez 2015 21:16
por rmlazzari
Grato, Toledo e alxsts, eu estava confundido set scoreboard com set console. Ficou ótimo, agora. :)

Grato, Toledo, pelo carta.prg!

E alxsts, grato pelo link sobre o LIB.EXE antigo, não estava achando. E infelizmente LIB.EXE não tem help. Mas tem uma série de perguntas quando executado sem parâmetros:

Library name:
Operations:
List:
Output library:

Não descobri como exportar o .OBJ para descompilar, mexer e botar lá dentro de novo mas agora, por enquanto, não é mais tão importante. Mas se alguém quiser saber as funções que tem numa lib, com esse LIB.EXE informe o nome da lib, em operations, "list" (sem aspas) e em list:, o nome do txt.

Grato novamente!

Como alterar EXTEND.LIB?

Enviado: 16 Dez 2015 22:51
por JoséQuintas
Pra descompilar? Descompilar é só o EXE.
Crie um EXE usando MemoEdit() e depois descompile o EXE.
Se MemoEdit() for "descompilável", vai dar certo.

Sobre LIB.EXE: no geral é nome da lib e +-

Código: Selecionar todos

LIB
nomedalib
-rotina
+rotina
Mas no geral, sem mexer na lib, só compilar o novo PRG junto com o restante.
Geralmente o linqueditor só busca das LIBs o que falta, então isso já substitui.

Como alterar EXTEND.LIB?

Enviado: 17 Dez 2015 03:17
por alxsts
Olá!

Para criação e edição de arquivos .Lib e .a, pode-se usar o Explorer Lib. É antigo mas mais novo que o Lib.Exe. É gratuito e tem interface no padrão Windows.

ExplorerLib

Como alterar EXTEND.LIB?

Enviado: 17 Dez 2015 06:51
por JoséQuintas
Lembre-se que aqui é Clipper, estamos falando sobre LIB DOS.