Balem / Criquio
Antes de mais nada, obrigado pelas sugestões !
Vou dar mais detalhes do meu projeto para tentar aclarar melhor qual o meu problema e quais soluções já tentei.
O programa que estou desenvolvendo serve para armazenar fragmentos de código (Code Snippets). Seu objetivo final é gerar o código fonte em HTML para os códigos VBA organizados por Categoria que pretendo publicar no meu blog (Access por exemplo).
Para vocês terem uma idéia , a tela principal do prg está abaixo.
(não consegui inserir a imagem, por isso coloquei o link)
Imagem/
O campo memo a que me refiro é o campo : Código.
Nele, fiz alterações via VBA que fazem que ele se comporte de maneira semelhante ao editor VBE do Access. P. exemplo, é possível usar TAB para abrir um espaço de tabulação ao invés de mudar de registro e por aí vai.
Associado a ele existem várias opções que incrementam as funcionalidades do programa como um todo.
Um exemplo é a possibilidade de definir palavras-chave a partir de um palavra selecionada no campo código.
Vou me fixar nessa ação para tentar explicar melhor o que desejo.
Para selecionar as palavras, preciso abrir um formulário onde elas são armazenadas. Para isso uso uma opção do menu.
Imaginem que a palavra que desejo usar esteja numa região do código abaixo da tela inicial mostrada (ou seja, eu rolei o campo código para baixo usando a barra lateral).
Nessas condições, ao usar qualquer ação que faça com que o campo código perca o foco, o cursor vai para a posição inicial do campo que é o que estou tentando evitar.
Essa é questão principal: eu quero poder usar uma opção de menu sem que o campo Código perca o foco !
Já testei 3 possibilidades :
1) Criei uma barra de menu para as ações que desejo executar. Funciona no Access 2000 e no Access 2007 (vira a opção Suplementos). Ou seja, é uma possibilidade funcional em ambas as versões. No entanto, como pretendo disponibilizar o prg no meu blog, gostaria que ele tivesse uma "cara" única. Sei que na versão 2007 é possível criar uma faixa (Ribbon) personalizada para o prg. O problema é que ainda não me adaptei bem à essa versão e pelo que consegui perceber, essa faixa ocupa um pedaço enorme da tela o que reduz o espaço para a janela do programa.
2) Criei um formulário tipo PopUp para o menu que se movimenta junto com o formulário principal do prg.
Essa possibilidade que deu origem a uma postagem respondida pelo Balem
Como detectar um clic na barra de título de um formuláriohttp://maximoaccess.forumeiros.com/t5895-resolvidocomo-detectar-um-clic-na-barra-de-titulo-de-um-formulario
No Access 2000 funcionou bem pois como ele é PopUp, quando usado não tira o foco do campo Código.
No Access 2007 não funciona pois a invenção da MS de colocar a janela Banco de Dados como uma barra lateral, faz com que ao usar a barra, a posição do formulário principal se altere e a posição do formulário PopUp não. O seja, eles ficam deslocados um em relação ao outro.
3) Usei a "Microsoft Toolbar Control" que como disse no post inicial, funciona na versão 2000 e não funciona na versão 2007.
Finalmente, comentando as sugestões :
Balem : Essa instrução só faz com que o cursor vá para o final do campo memo o que não é o problema que estou tentando solucionar (acho que não fui suficientemente claro no post inicial)
Criquio : Já havia pensado nessa solução, e ela me parece viável. No entanto, tem dois inconvenientes. O primeiro seria de elegância : cada vez que eu usar uma opção do menu, o campo Código vai "piscar" por ter perdido o foco e recebido o foco novamente. O segundo seria funcional : vou ter que criar um monte de rotinas de controle para cada tipo de opção de menu que eu usar. Usando o exemplo da palavra-chave : teria que quardar não somente a posição mas também qual o texto que estava selecionado. Além disso, existe a possibilidade de eu usar uma opção de menu e depois voltar (com um clique do mouse) para um ponto diferente do código.
Finalmente (MESMO) .
Desculpem o tamanho do post !
Se fosse possível, gostaria de enviar as versões do prg para vocês darem uma olhada e se for o caso fazerem sugestões não só em relação a este problema, mas também sobre a concepção do prg e possíveis funcionalidades que possam ser incorporadas.
Se for o caso, por favor, mandem uma mensagem privada que eu mando para os seus emails.
Mais uma vez obrigado pela atenção !
Paulo