Removendo o botão ‘fechar’ dos forms no Visual Basic 6

Hoje tive um problema bastante interessante no serviço com o Visual Basic e decidi compartilhar com vocês a solução. Um pedido comum em muitos “chefes de desenvolvimento” de sistemas é remover o botão de fechar dos forms do Windows. Existem duas soluções interessantes para isto, sendo que a segunda é mais focalizada.

A primeira é ir nas propriedades do formulário e colocar como False a opção ControlBox. Isso vai remover os três botões da barra, criando algo similar a uma splash screen:

Bom, mas o problema é que você pode querer travar apenas o botão de fechar e ter um botão de retorno nas telas MDIChild (talvez porquê no botão de retorno tem algum funcionamento específico). Aí achei este texto do DeveloperFusion com um código interessante. Adaptei um pouco:

Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Const MF_BYPOSITION = &H400&

Private Sub Form_Load()
    'Chamando a função para desabilitar o botão de "fechar"
    RemoveMenus
End Sub

Private Sub RemoveMenus()
    Dim hMenu As Long
    hMenu = GetSystemMenu(hWnd, False)
    DeleteMenu hMenu, 6, MF_BYPOSITION
End Sub

O resultado:

Bom, tentando entender, basicamente ele declara essas variáveis e constantes e seta isso na função RemoveMenus (que pode ser outro nome, claro). Aí você chama a função, que desabilita o botão. Conversando com o meu chefe, descobrimos que isso funciona apenas na tela interna, impossibilitando de fazer isso num módulo e chamar a função nas telas que um sistema comercial iria ter esse negócio.

Por fim, fica aí a dica.



Diário C++ - Parte 01

Hora de começar a pensar de verdade no meu futuro profissional na área de desenvolvimento de jogos. Como sou fanático por gamedev e quero entrar na área, tenho de voltar meus conhecimentos de programação pra linguagem mais usada na área: C++.

Bom, preferi postar certos tipos de textos aqui no meu blog pessoal já que, em tese, o meu blog é pessoal. No GamedevBR vou reservar artigos técnicos e com isso vou iniciar mais um tipo de post no blog: o diário C++. De vez em quando vou postar aqui como será os meus estudos normais com esta linguagem, para vocês verem e comentarem sobre a linguagem e possíveis rotas que posso pegar para atingir os meus objetivos.

Como tenho interesse unicamente em C++, o C puro está de fora. Já sou programador profissional há quase 4 anos e não preciso mais aprender lógica e sim a sintaxe da ferramenta, para depois partir para conhecimentos específicos em engines e otimização de aplicações em tempo real.

Para iniciar, vou usar o Code::Blocks como IDE, já que aqui no serviço não posso instalar um Visual Studio Express pelo mesmo ser muito pesado. Isso vou fazer em casa mesmo, já que lá é mais sossegado e lá o meu PC é bem melhor.

Vamos ver se vou conseguir seguir pra valer nos estudos, já que também tenho outros interesses em desenvolvimento de jogos (modelagem, game design). E conciliar todos esses estudos será difícil.

Isso sim é splash-screen!



Vaga para programador C++ na PixelLabs

Segue link para infos de uma proposta de emprego para programador C++:

Pixel Labs: vaga para programador C++

Apesar da vaga ser relacionada com realidade virtual e computação gráfica, quem sabe no futuro possa sair um game da empresa ou mesmo o desenvolvedor ganhar experiência para trabalhar com gamedev.

Dicas de Delphi

Algum tempo atrás, por conta de outra proposta de trabalho eu cheguei a estudar um pouco o Delphi (a contragosto, mas fazê o quê! Parece que no interior tem mais oportunidades em Visual Basic e Delphi do que em Java…). E como eu já tenho experiência de quase 3 anos com programação comercial (mas ainda assim me considero um programador intermediário), quando eu preciso (re)aprender uma linguagem as coisas são mais fáceis, já que eu tenho mais conhecimento em lógica de programação.

E como eu acabei tendo algumas dúvidas quando eu estava programando algumas telas simples no Delphi, decidi compilar neste post todas as respostas. Isso também vai facilitar pros pará-quedistas que vão cair na minha página vindos do Google.

Vamos lá:

Abrindo um MDIChild
Application.CreateForm(TForm1,Form1);
form1.Show;

Fechando um MDI Child
No evento OnClose coloque: Action := caFree;

Durante os meus estudos vou atualizando este post com mais dicas pro Delphi, e quem sabe eu faço um post similar com dicas pro Java!

Vagas para programador C#/C++

Liberei esta notícia na UniDev, sobre uma vaga para programador que tenha conhecimentos em C++, C#, DirectX e XNA:

Vagas de programador de Jogos C#/C++

Só lembrando: este post é de caráter informativo. Eu não trabalho na empresa e não posso dar maiores detalhes (além de que existe a possibilidade da vaga já ter sido preenchida). Na notícia tem o e-mail do resposável, nas qual você pode enviar pedindo sugestões.

Voltando a estudar Lua

Hora de iniciar pra valer os estudos em desenvolvimento de jogos. Apesar da minha pretensão para ser jornalista, o que quero realmente fazer é criação de games. Mesmo que eu entrasse numa faculdade de jornalismo, nas horas vagas eu continuaria com os estudos em linguagens de programação, ferramentas, softwares 3D, e outros.

Quando eu chego para trabalhar sempre perco de 10 a 20 minutos até aparecer algum responsável para abrir a empresa (no meu último emprego eu tinha uma chave própria), e nesse tempo, aproveitava e estudava o artigo A linguagem Lua e suas Aplicações em Jogos, que mostra alguns conceitos básicos da linguagem Lua, uma popular linguagem de programação criada por brasileiros e que foi até destaque na Globo, numa reportagem da Globo News.

Só que o problema é que comecei pelo mais difícil: tentar programar em Lua no Eclipse. Escolhi a LunarEclipse, um plugin para o Eclipse, mas que não vi nenhuma documentação ou tutorial na internet. Ou eu não estou sabendo procurar direito ou alguém já usou, mas não quis postar um tutorial na internet sobre isso.

O problema é que eu não to conseguindo fazer o plugin funcionar para conseguir pelo menos um “Olá Mundo” na tela :cry:

De qualquer jeito vou criar um tutorial para iniciar os estudos no plugin, e vou criar uma versão em inglês do tutorial, para ajudar pessoas de outros países.

Depois que eu passar por esta dificuldade, aí sim poderei aplicar na prática o que tem na teoria. Aí sim que a festa vai começar!

[Via tupinihon]

Introdução ao Java

Muita gente me pergunta dicas e truques para o Java, e como tenho um conhecimento maior desta linguagem, sempre indico sites e livros. Consigo fazer, em Java, um sistema com Hibernate e JSF, gosto de Swing e de Java 3D. Também penso em estudar jMonkeyEngine… acredito que até aqui você não deve ter entendido (ou nem conhece) nenhuma destas siglas, mas não se desespere. Aos poucos você vai aprendendo, isso se você se interessar mesmo em estudar o tal do Java…

Mas o que é o Java? O Java é uma linguagem de programação altamente poderosa onde você poderá criar desde programas simples até páginas de internet e games. Uma das maiores vantagens do Java é que o mesmo é multi-plataforma (desde que você saiba desenvolver, já que se você tentar acessar um recurso nativo do sistema operacional, seu sistema poderá deixar de ser multi e você talvez deverá recompilar o software…) e totalmente gratuito, diferente de outras linguagens que a gente acaba vendo por aí.

Tá, mas onde que eu encontro informações desta linguagem? A seguir vou postar indicações de livros (não postarei material pirata aqui), indicações de blogs e sites para você começar. É claro que eu não vou postar neste post tutoriais avançados da linguagem, já que este post é focado para usuários iniciantes. Também vou, de vez em quando, postar tutoriais diversos sobre a linguagem.

Para programar nesta linguagem, você deverá instalar o JDK. Então acesse o site oficial e baixe o JDK mais atual (até o fechamento deste post é o JDK 6 Update 2). Para instalar, siga o tutorial Instalando o J2SE 5.0 JDK no Windows 2000/XP ou Instalando e configurando o JDK no Linux.

Tutoriais introdutórios

Livros

Desses três livros, recomendo o primeiro. Apesar de ter muito texto, a série de livros do Deitel é muito boa, aborda muita coisa da linguagem e explica direitinho cada pedaço de um programa. Agora, caso você queira tirar certificação, você pode comprar o livro SCJP: Certificação Sun para Programador Java 5 - Guia de Estudo da Kathy Sierra e estudar pelo livro ou pelo curso FJ-19 : Preparatório para Certificação Java da Caelum. Mas caso queira estudar pelo livro, você deverá ter alguma noção da linguagem.

Sites

Destes sites, acabo acessando mais o primeiro, que tem um fórum para os usuários tirarem dúvidas, uma seção excelente de artigos e os usuários sempre postam notícias atualizadas da área.

Blogs

Três blogs excelentes que sempre tem tutoriais e dicas sobre a linguagem (mas o Fragmental, do Phillip Calçado, é mais voltado à análise de projetos). Já no site da Caelum tem duas apostilas excelentes para quem quer começar (que são apostilas dos cursos da empresa):

IDEs

No começo, é recomendável que o usuário aprenda a compilar seus programas no bloco de notas, para depois ele escolher um ambiente de desenvolvimento, também chamada de IDE. As principais são:

Recomendo o Eclipse, já que é uma ferramenta excelente, é gratuito e tem o melhor editor de códigos-fonte que eu já vi. Até hoje nenhuma IDE (isso mesmo: nenhuma!) conseguiu superar o Eclipse em edição de código. O Netbeans está sendo muito utilizado, mas acho ele um pouco lento. Já o IntelliJ é pago, e não cheguei a usar, mas as críticas que eu vejo na internet são sempre muito positivas.

Revistas nacionais

A primeira é bimestral e a segunda é mensal. As duas sempre tem tutoriais e dicas para a linguagem. Algumas vezes a Java Magazine traz reportagens sobre eventos internacionais sobre o Java.

Tecnologias principais do Java

Atualmente, o Java se divide em várias tecnologias diferentes, como o J2SE, J2EE e J2ME. Para mais informações:

J2SE, J2EE e J2ME: uma breve explicação

Você poderá escolher uma das vertentes e focar seus estudos e softwares nelas. Se você pensa em ser um profissional Java, recomendo conhecer o J2EE (mas vai demorar um pouco para você aprender o J2EE, por ser mais complexo e difícil) e talvez o J2ME, mas vai depender do seu foco, ser você pena em desenvolver sistemas comerciais simples (J2SE usando Swing, ou mesmo usando JSP (páginas de internet) acessando um servidor local), aplicações complexas (J2EE) ou mesmo jogos para celular (J2ME).

Caso tenha outras dúvidas (ou queira complementar este post ou mesmo me corrigir), poste nos comentários que eu tentarei ajudar no que for possível (apesar de que eu não sei muito sobre o Java, mas gosto da linguagem e continuo estudando a mesma com afinco!).

Página de referência para o Visual Basic

Bom, não sei se amanhã terei internet liberada (na verdade será quase liberada se tiver :) ) no meu novo emprego, mas, se tiver, decidi abrir uma página extra aqui no blog e postar algumas referências rápidas para o Visual Basic (sim, eu vou aprender esta linguagem :P ), já que terei de consultar esta referência de vez em quando.

Alguns podem achar bobagem isso, mas no começo do estudo de uma linguagem, você aprende a sintaxe na base da decoreba. Lógica eu já tenho (e de sobra :D )

E também pode servir para qualquer um que queira aprender a linguagem, e já tem a lógica de programação embutida na mente (afinal, eu sei Java, que segunda muita gente, é mais difícil do que VB. Será que consigo programar orientado à objetos no VB? :P ). Alguns podem não ter tanta paciência em ler apostilas cheias de textos inúteis, já que quero ir logo pro programa e sair tacando códigos lógicos e vendo o programa funcionar!

É claro que tentarei evitar a POG :lol:

E também vou aprender Lua, mas isso ficará pra daqui a alguns dias!

Update: Mudança de planos - A página agora terá links diversos sobre o VB e sobre ferramentas de auxílio, como o Crystal Reports

Revista online sobre processos ágeis

Mais uma revista online está sendo disponibilizada, e agora enfocando processos ágeis (e por isso recomendo a leitura/análise para desenvolvedores de software): a Visão Ágil. Para baixar a revista, visite o site oficial e depois se inscreva no grupo da revista no Yahoo Grupos (pessoalmente não gostei muito de ter de se cadastrar no grupo, já que muitos usuários não tem um email do Yahoo). Outras informações, visite o post Revista Visão Ágil, do Alexandre Magno. Dica do Guj.