CONVERSAO VB6 PARA VS 2008

USUARIO.EXCLUIDOS 16/08/2012 11:21:37
#408022
Na plataforma .Net, o componente PictureBox não oferece os mesmos métodos e propriedades que o equivalente do VB6. No VB6, o PictureBox é um dispositivo OLE, onde é possivel desenhar/imprimir. E no VS2008, qual componente .Net se equivale / permite as mesmas operações?

Obrigado!
PROFESSOR 18/08/2012 22:58:03
#408139
Resposta escolhida
O seu caso é meio [Ô]triste[Ô], desculpe a minha opinião, mas até onde eu entendi, você está convertendo aplicativos que usam forms/pictureboxes como dispositivos de saída gráfica (ou de OLE, como se dizia na época em que o VB6 era utilizável).

Ainda que o que você esteja convertendo seja menos complexo do que uma aplicação gráfica, como, por exemplo, [Ô]relatórios[Ô] desenhados em picturebox, a situação é bastante similar.

Acontece que o componente Picturebox do VB.Net não é um dispositivo de contexto, como o é o do vb6, e não há na .Net componentes nativos com as mesmas características que no VB6. Por componentes, neste caso, estou falando sobre os controles da ToolBox.

No VB6, o [Ô]fastfood[Ô] era criar [Ô]aplicativos orientados á formulários[Ô] (para não dizer POG, como muitos aqui já citaram), e com isso, o uso das PictureBox em módulos [Ô]gráficos[Ô] era o mais comum.

Ao importar aplicativos gráficos (ou que usam picturebox/printer para visualizar relatórios) do VB6, portanto, você terá dois problemas pela frente.

O mais visível é essa incompatibilidade de métodos e propriedades, mas nem é tão importante assim, já que basta criar um BitMap de escopo público e um Graphics para poder converter (não sem um bom trabalho) os [Ô]Line[Ô], [Ô]Print[Ô] [Ô]PSet[Ô] e [Ô]Point[Ô].

O problema mais complexo é o da orientação. Na .Net, esse foco (de um formulário usar os componentes de outros e manter em si mesmos os processos que deveriam ser públicos) precisa ser alterado para um método de desenvolvimento mais disciplinado.

Mas não desanime! A .Net oferece mais e melhores métodos gráficos, e ainda permite o uso das API gráficas do Windows, de modo que nem tudo está perdido! Só que de forma (bastante) diferente...

Basicamente, no VB.Net você terá de usar os componentes da Drawing, criando manualmente a imagem e ir [Ô]desenhando[Ô] sobre essa imagem com os métodos do Graphics.

Só depois de concluída a operação de desenho é que você [Ô]lança[Ô] a imagem á um PictureBox, á um Panel etc., tornando-a visível ao usuário.

No entanto veja, não estou dizendo que será fácil, pois dependendo do quê você esteja convertendo, pode ser uma tarefa bem demorada, maçante até.

Tudo o que se refira aos métodos de desenho da .Net deve / vai ser útil para você, e dessa forma, há farto material desde fóruns e blogs até em sites de empresas de sesenvolvimento.

Em relação á orientação á objetos, se você vêm do VB6, não se apavore também, pois mesmo sendo meio [Ô]duro de engolir[Ô] no começo, enfrente pelo menos algumas semanas, e aos poucos vai acabar percebendo que essa forma de desenvolver é até mais natural e intuitiva.

Pessoalmente, eu indicaria á você começar dando uma boa [Ô]garimpada[Ô] no próprio criador de ambas as linguagens, via MSDN, e, o seu caso em especial, neste link, e fazer uma [Ô]colinha[Ô] das [Ô]dicas[Ô] para ir consultando durante a conversão.

Valew!!
USUARIO.EXCLUIDOS 19/08/2012 14:44:13
#408157
Olá Professor, desde já agradeço pela sua postagem e já de cara percebi que tenho um grande desafio pela frente. Bom... no começo da migração, imaginei que não seria algo tão complexo assim, mas no desenrolar do meu trabalho, comecei a perceber que não é algo tão simples assim e também percebi que não são muitos os programadores que estão passando ou que já passaram por este tipo de situação.

Obrigado!
NILSONTRES 19/08/2012 15:06:25
#408158
Saudades em Professor, me ajudou muito em 2004, me nick era [Ô]NIL[Ô]. Abraço

ANDREY78,
Eu na verdade só utilizei o vb2008 para converter algumas projetos apenas para verificar algumas variaveis como seriam
substituidas, porque migrar mesmo, não rola.
Inicio do zero mesmo.
Tópico encerrado , respostas não são mais permitidas