Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
11 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 11 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Espessura do cursor intermitente

7/3/2017, 09:08 por Jefferson Matakas

Bom dia a todos !!

Existe uma opcao no windows que pode ser acessada atraves da 'central da …

Comentários: 0

DESENVOLVIMENTO EM REDES

4/3/2017, 18:45 por AJC

Pessoal tem ou conhece livros ou material para programação em
redes usando banco de dados nativo …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 4

Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Estatísticas
Temos 7038 usuários registrados
O último usuário registrado atende pelo nome de CASTROCV

Os nossos membros postaram um total de 31 mensagens em 17 assuntos

VFP 9.0 SP2: corrigindo problema em bordas de formulários no Windows Vista usando interface gráfica Aero

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Informativo VFP 9.0 SP2: corrigindo problema em bordas de formulários no Windows Vista usando interface gráfica Aero

Mensagem por Marcos Guedes em 12/5/2009, 13:30


Desde que passei a utilizar o Windows Vista Business como máquina de desenvolvimento (versões 32 e 64 bits), percebi que alguns formulários eram carregados sem a barra de título (aquela que contém os botões maximizar, minimizar e fechar) quando o Windows utilizava a interface gráfica Aero.

A barra, na verdade, estava lá, mas não era exibida durante a carga do formulário. Ao clicar com o ponteiro do mouse na região da barra podíamos arrastar o formulário normalmente. Quando clicávamos fora do formulário e depois dentro do formulário a barra era apresentada. Ao clicar na região dos botões maximizar, minimizar e fechar a barra também passava a ser apresentada.

Durante algum tempo achei que isto era um bug do VFP, até que recentemente resolvi pesquisar a respeito e encontrei uma solução para o meu problema.

Tomei como referência as dicas contidas em [Você precisa estar registrado e conectado para ver este link.]

Segundo as dicas do Calvin, o problema deveria estar no controle de contas do usuário (UAC) do Windows Vista e o recurso de redesenhar formulários em tempo de execução. Algo a ver com questões de segurança, pois ao se executar o aplicativo como administrador o problema não acontecia. O problema não é exclusividade do VFP, ocorrendo também em outras ferramentas do Visual Studio.

Uma solução imediata seria desativar a interface gráfica Aero, mas esta é uma solução extrema, pois o grande barato do Windows Vista é a sua interface gráfica avançada.

O VFP, ao criar um formulário, define algumas propriedades intrínsecas ao mesmo que não estão disponíveis ao desenvolvedor na sua interface gráfica de desenvolvimento. Uma destas propriedades é DoCreate. É nesta propriedade, juntamente com alguns valores definidos na propriedade BorderStyle que reside a raiz do problema.

A propriedade BorderStyle (que define o tipo de borda que desejamos para nossos formulários), pode possuir os seguintes valores: 0 = No border; 1 = Fixed Single; 2 = Fixed Dialog; 3 = Sizable (default). Esta propriedade está facilmente acessível na guia Layout da caixa de propriedades do formulário.

Geralmente alteramos esta propriedade em tempo de desenvolvimento (eu, pelo menos, altero sempre para o valor "2", pois não desejo que os usuários fiquem redimensionando os formulários) e é justamente nesta ação que acionamos, sem imaginar, o problema.

Quando salvamos nossos formulários o VFP grava os valores das propriedades numa seqüência que não podemos prever ou determinar e se, nesta ação, a definição da propriedade DoCreate ocorrer antes da definição da propriedade BorderStyle, estando esta última definida com os valores "1" ou "2", o problema fatalmente ocorrerá. BorderStyle definida como "0" ou "3" não gera o problema.

A solução apresentada pelo Calvin consiste em abrir o formuário salvo (extensão .SCX) e editar o conteúdo do campo "PROPERTIES" de todos os registros que contenha a definição DoCreate = .T.. A idéia é alterar a ordem de execução, fazendo com que a definição da propriedade BorderStyle = 1 ou BorderStyle = 2 ocorra antes de DoCreate = .T..

O próprio Calvin criou um programa em VFP para fazer uma varredura no disco e efetuar esta troca de ordem em todos os seus formulários. Ele disponibilizou o código do programa no blog.

Após entender a solução do Calvin e executar o seu programa, percebi que o problema ainda persistia em meus formuários. Analisando melhor a questão, logo descobri o meu problema específico: meus formulários são baseados numa classe definida numa biblioteca de classes visuais do VFP (extensão .VCX).

O problema persistia por que meus formulários herdam os valores default das propriedades das classes e, por mais que eu alterasse algumas dessas propriedades nos formulários criados, não adiantava, pois na definição da classe a propriedade BorderStyle estava definida com o valor padrão 3 = Sizable.

Moral da historia: Na interface Aero do Windows Vista, o VFP não consegue redesenhar corretamente as bordas dos formulários que possuem a propriedade BorderStyle definida em tempo de projeto com os valores "1" ou "2" por que ao definir estes valores estamos redefinindo o estilo da borda após a definição da propriedade DoCreate = .T. e isto não é permitido pelo Windows ou VFP (ainda não cheguei a conclusão de quem está errado).

Na minha compreensão cronológica dos eventos, deve ocorrer algo assim:

BorderStyle = 3 && padrão do VFP e de minhas classes de formulários
DoCreate = .T. && definida pelo VFP
BorderStyle = 2 && alterado o valor padrão por mim em tempo de projeto

Nesta seqüência o erro ocorreria, pois eu estava redefinindo BorderStyle após DoCreate.

Solucionei o meu problema ao alterar o valor padrão de BorderStyle diretamente em minhas classes base, que passou a ser "2". Depois entrei nos formulários de meus projetos e defini o valor de BorderStyle com o valor padrão de minhas classes (botão direito do mouse com o ponteiro sobre a propriedade BorderStyle e opção Reset to Default).

Depois foi só gerar os executáveis novamente e o problema desapareceu, para minha satisfação.

Referências:
[Você precisa estar registrado e conectado para ver este link.]
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum