Vírus – Informações Importantes

0

Autoria: Ana Paula Ferraz Nascimento

O que é um vírus?

Um vírus nada mais é do que um programa que tem um único objetivo: causar algum dano no computador de alguém.
Ele se instala em todas as unidades em que é possível gravar dados: disco rígido, disquetes, unidades de rede, ZIPDrive, etc.
Os vírus são muito perigosos, pois podem destruir dados que levaram anos para serem construídos em uma fração de segundo. Imagine como seria terrível se o servidor de sua empresa fosse infectado e todos os arquivos perdidos.

Mas o computador com vírus estraga para sempre?

Não, ainda não existe um vírus que seja capaz de queimar o seu modem, o seu teclado ou o seu computador. Para removê-lo, basta formatar o micro ou apagar fisicamente todos os arquivos existentes, pois dessa forma o vírus também será removido, afinal ele é um programa.

Quais os tipos de arquivos que um vírus ataca?

Isso varia muito. Existem vírus que infectam somente arquivos executáveis (.EXE e .COM), outros somente os arquivos .DOC, .SYS, etc, e existem alguns que infectam todos os arquivos (*.*). Mas os piores mesmo são aqueles que infectam a trilha 0 do seu computador, também conhecida como setor de boot ou MBR.

O que é trilha 0?

Essa é a primeira trilha que existe em qualquer disco rígido e em todos os disquetes. É impossível gravar alguma coisa nela, pois os arquivos começam a ser gravados a partir da trilha 1.
Quer dizer, é possível gravar na trilha 0 sim, mas é necessário desbloquear uma proteção e por fim gravar. Particularmente, eu não sei como fazer isso. O único programa que conheço que faz isso é o anti-vírus ThunderBYTE e, é claro, alguns vírus também o fazem.
A trilha 0 é importantíssima, porque nada funciona sem ela. Sabe quando você liga o computador e aparece a mensagem: “Iniciando o Windows 95” ou “Starting Windows 95”, etc? A trilha 0 encontra-se antes dessa mensagem. Mesmo que você formate a unidade, ela continuará lá, intacta.
Resumindo, se a trilha 0 estiver infectada, será impossível mexer no seu computador. Ele ficará bloqueado, sem poder acessar os arquivos de sistema necessários para o seu funcionamento. (COMMAND.COM, IO.SYS, MSDOS.SYS, etc). A única maneira de inicializar é com o disco de boot.

Como criar um disco de boot?

Insira um disquete na unidade e no Prompt do MS-DOS digite o comando:

C:> FORMAT A: /S

Pronto! O disco de boot foi criado. A opção “/S” serve para copiar os arquivos do seu sistema para o disquete.

Copie também para esse disquete os seguintes arquivos (de preferência copie-os de outro computador, caso você estiver infectado):

FORMAT.COM
DELTREE.EXE
FDISK.EXE
ATTRIB.EXE

Como verificar se minha trilha 0 está infectada ou não?

Os anti-vírus que conheço são o Viruscan e ThunderBYTE. Eles verificam se o setor MBR está infectado. Caso positivo, tanto o Viruscan como o TBAV removerão o vírus e limparão a trilha 0.
O TBAV tem uma opção interessante, que é a seguinte: ele grava informações na trilha 0, o que impede que os vírus se instalem nesse local.
Existe outra maneira de apaga-la:

No prompt do MS-DOS, digite:

C:> FDISK /MBR

Isso irá apagar da trilha zero qualquer informação ali gravada (inclusive o vírus).

Os tipos de vírus existentes

Cumuns: a maioria dos vírus se encaixam aqui. Eles têm a função de infectar programas, aplicativos e outros tipos de arquivos, deixar o micro lento, travá-lo, isso depende da configuração de cada um… são identificados facilmente pelos anti-vírus.

Curiosidade: Quando você executa o anti-vírus para verificar se está tudo em ordem, se tiver algum vírus ele identifica e remove. Mas existem vírus muito poderosos que infectam o próprio anti-vírus quando ele o detecta.

Stealth: “Invisíveis ao radar”. São vírus conhecidos que utilizam uma técnica para não serem detectados pelos anti-vírus.

Residentes: são vírus que se instalam no seu computador, e mesmo que você removê-lo, ele sempre voltará. Isso ocorre porque eles deixam “pequenos fragmentos” espalhados, que ficarão residentes no sistema. Esses míseros bytes são suficientes para reconstruir o vírus novamente. Se esse tipo de vírus atacar o servidor de sua empresa, pode começar a chorar. Na maioria dos casos a solução para isso é uma formatação física da unidade infectada.

MBR( Master Boot Record): são vírus que atacam a trilha 0 (MBR) e/ou infectam o seu computador pelo simples fato de serem copiados !!!! Estes são considerados os mais perigosos de todos. E não adianta formatar o computador, ele permanecerá intacto na trilha 0, e automaticamente se instalará novamente.

Desconhecidos: são vírus recentes, criados há pouco tempo, que ainda não foram parar nos laboratórios de teste das empresas de anti-vírus.

Curiosidade: A cada dia que passa, são criados aproximadamente 20 novos tipos de vírus. Geralmente quem faz isso são pessoas que fazem um mau uso de seus conhecimentos, pelo simples fato de dizerem que são capazes.

Macro: são muito famosos, pois tiram o sossego dos usuários do Word, Excel, Power Point, Acess e Visual Basic. Um documento aparentemente inofensivo pode-se transformar em algo fatal. Varia desde uma simples brincadeira até comandos criminosos. Esses vírus não são executáveis (.EXE ou .COM), suas extensões são .DOC, .XLS, .TXT, .PPT, MDB, etc. São ativados quando você abrir algum desses arquivos em seus respectivos programas. Automaticamente ele irá contaminar o sistema. VEJA COMO É PERIGOSO!!! Esse documento que você está lendo agora poderia ser um vírus de macro. A essas alturas, você já estaria desesperado. Mas me diga uma coisa: você passou o anti-vírus antes de abrir esse documento? 🙂

OBS: Não se preocupe, esse documento não possui macros, portanto não está infectado.

Como se prevenir dos vírus

Os anti-vírus são a maneira mais eficiente de se identificar ou remover um vírus. São também os “guardiões” do seu computador, pois impedem que o vírus entrem no sistema. Porém, se o vírus entrar, dará muito trabalho removê-lo. Ele infectará o próprio anti-vírus e a remoção será muito mais complicada.

Algumas dicas úteis:

• Em primeiro lugar, instale um anti-vírus recente e confiável.

• Tome muito cuidado quando adquirir disquetes de terceiros. Mesmo que a pessoa seja de confiança, o micro dela pode estar infectado sem que vocês saibam. Nesse caso, não deixe de passar o anti-vírus.

Curiosidade: Uma vez, uma empresa americana de softwares vendeu mais de 70.000 disquetes infectados com o vírus Michelangelo. Eles não sabiam que o disquete estava contaminado e a copiadora de disquetes foi reproduzindo-os. Só foram descobrir isso depois que venderam tudo…

• Não confie nos arquivos que vêm anexos nos e-mails ou no ICQ. Essa é
uma das principais portas de entrada para os vírus. Adolescentes covardes adoram enviar e-mails anônimos com vírus para as pessoas. Quando receber algum e-mail suspeito, salve o arquivo no disquete e passe o anti-vírus antes para depois mexer no arquivo.

Curiosidade: Se alguma vez você já ouviu falar de vírus que são enviados através de e-mail, e que infectam seu computador você vai ler a mensagem, pode ficar sossegado. Isso é pura mentira, algo assim é tecnicamente impossível. O máximo que pode acontecer é você receber um documento, e clicar sobre ele para ler. Dessa forma sim, você ficará infectado.

• Se você tem o hábito de ficar fazendo downloads pela Internet, muito
cuidado! Sempre passe o anti-vírus nos arquivos que recebe. Agora se o vírus for desconhecido e o anti-vírus não identificar, daí não tem jeito… tem que arriscar! Nesse caso, copie o arquivo suspeito para o disquete e execute-o em outro computador, para que o servidor de sua empresa não corra riscos.

• Uma vez ou outra, execute o FDISK /MBR.

• Faça uma varredura completa com o anti-vírus pelo menos duas vezes por semana. É demorado, mas lembre-se que é melhor prevenir do que remediar.

Como identificar os vírus

A melhor maneira é o anti-vírus, disso não existe a menor dúvida.

Agora se você passar o anti-vírus e ele não detectar nada, mas você suspeita que o arquivo seja um vírus, observe os seguintes ítens:

• Verifique o tamanho do arquivo. Se ele tiver menos de 3 Kb, as chances de que se trata de um vírus são grandes!

• Através do EDIT no MS-DOS, edite os arquivos suspeitos. As extenções .EXE e .COM contém informações essenciais, e mesmo com o texto truncado e cheio de caracteres estranhos, é possível visualizá-las. Nesse caso, se aparecerem textos de conteúdo ofensivo, pode desconfiar de que é um vírus. É possível (e fundamental) também editar os arquivos de Word, Excel, PowerPoint, Visual Basic, Acess, etc, para ver se consegue descobrir alguma coisa…

• Crie um disco de boot e copie o suposto vírus para ele. Em seguida, reinicie o micro, entre no BIOS e desative o seu disco rígido temporariamente. Insira o disquete na unidade e execute o programa sem medo, pois o seu HD está desativado, portanto o vírus não pode gravar nada nele.

Fui infectado! Como faço para me livrar do vírus?

Se você foi infectado por algum vírus, eu infelizmente tenho que afirmar que você está com um grande problema. Digo isso por experiência própria.
Nem adianta explicar como são os sintomas de um vírus, porque existem mais de 16.000 tipos diferentes espalhados pelo mundo e eles são os mais variados possíveis. Alguns desenham caretas, outros fazem aparecem um monte de caracteres estranhos, o outro faz as letras caírem, geram bips no sistema, aparecem caveirinhas rindo, as letras saem voando, etc. Quando você pegar algum vírus, com certeza vai descobrir que está contaminado, pois acontecem coisas muito estranhas ou até mesmo engraçadas com o seu computador.
Se você possui arquivos importantes gravados, existe uma grande possibilidade de você ter perdido todos. Copiar para o disquete? Tsc, tsc, não adianta… o vírus vai junto! Por isso eu aconselho que você tenha sempre em mãos uma cópia de segurança (backup) de seus dados importantes.
Quando perceber que foi infectado, imediatamente execute o anti-vírus e faça uma varredura completa no disco. Se você deu sorte e o anti-vírus não foi contaminado, ele se encarregará de remover o vírus e deixar tudo como era antes. Agora se o anti-vírus já foi contaminado (o que é mais provável), diga adeus, porque você vai ter que removê-lo manualmente. Não é muita coisa, geralmente são todos os arquivos executáveis (*.EXE, *.COM, *.SYS) do seu computador. Nos casos mais graves, são todos os arquivos (*.*)
Você não tinha o anti-vírus instalado? E foi infectado? Sinto dizer, mas a maioria dos vírus impede que qualquer programa seja instalado.

Removendo o vírus – Parte I

Passe o anti-vírus. Se não der certo, insira um disco de boot na unidade.

Importante: deixe a janela do disquete aberta, caso contrário o vírus irá instalar-se no disquete também!

Reinicie o computador com o disco de boot. Talvez dessa maneira você consiga “enganar” o vírus, pois o sistema será iniciado pela unidade de disquete, e não pelo disco rígido, que nesse caso está infectado.
Você irá trabalhar agora sob MS-DOS. Em primeiro lugar, digite o comando FDISK /MBR, e logo em seguida acesse o diretório em que está instalado o anti-vírus e execute-o.
Se o anti-vírus não tiver sido danificado, ele irá encontrar todos os vírus existentes e irão surgir algumas opções quando o vírus for encontrado:

CLEAN – Limpa os arquivos infectados e deixa os seus arquivos como eram antigamente.

KILL ou DELETE – remove o vírus e o aplicativo infectado.

Removendo o vírus – Parte II

Se o Viruscan, o ThunderBYTE ou o anti-vírus instalado não conseguirem livrá-lo dos vírus, infelizmente terá que ser feita uma formatação física dos dados.
Repita a operação, inserindo o disco de boot com a janela aberta na unidade e reinicie o micro.
No MS-DOS, execute o FDISK /MBR

Em seguida, crie um diretório:

C:> MD BACKUP

Copie para esse diretório todos os arquivos que não deseja apagar (fotos, cliparts, textos, arquivos compactados, etc.)
Evite copiar os arquivos com as extensões EXE, COM, SYS. DOC, XLS, MDB, etc, porque geralmente são esses que são os infectados.
Após fazer isso, comece a deletar todos os diretórios do seu PC, menos o diretório em que estão os arquivos de backup, lógico! Deverá restar somente o diretório de backup.

IMPORTANTÍSSIMO: Na unidade do disco rígido, na raiz principal, C: existem arquivos ocultos. Para removê-los, acesse o disquete o copie o ATTRIB.EXE para a unidade C: e execute o comando:

C:> ATTRIB -R -H *.*

O ATTRIB irá analisar e remover as proteções dos arquivos “somente leitura” e “oculto” . Veja os comandos:

ATTRIB +R ativa o atributo “somente leitura”
ATTRIB -R desativa o atributo “somente leitura”
ATTRIB +H ativa o atributo “oculto”
ATTRIB -H desativa o atributo “oculto”

Depois disso delete os arquivos, pois agora estão visíveis e vulneráveis.
Reinicie o micro novamente com o disco de boot.
Agora comece a copiar os arquivos que estão no diretório BACKUP para os disquetes.
Depois de copiar tudo, insira o disco de boot e copie o FORMAT.COM para a unidade C:.

Digite o comando:

C:> FORMAT C: /S

O seu HD será formatado. A opção /S serve para gerar arquivos de sistema fundamentais para o seu computador (COMMAND.COM, IO.SYS e MSDOS.SYS). Esses arquivos, obviamente, não estão infectados pelos vírus.

Feito isso, reinicie normalmente (sem o disco de boot) e instale seu sistema operacional novamente (Microsoft Windows, Microsoft Office, etc…)

Removendo o vírus – Parte III

Caso você tenha pego um vírus de macro do Word, delete o arquivo infectado e o arquivo NORMAL.DOT que se encontra no diretório do Word. Faça sem receio, porque esse arquivo será automaticamente gerado pelo Word, desta vez limpo e sem o vírus.
Se ainda assim ele continuar lá, delete todos os arquivos gerados pelo Word de seu computador.
Continua lá? Sinto muito…. Infelizmente você deve formatar seu micro. E isso também vale para o Excel, Visual Basic, Acess, PowerPoint, etc…

Visual Basic

0

Autoria: Alanderson de Freitas Marron

HISTÓRICO

O BASIC surgiu já há algum tempo, foi o pontapé inicial na carreira de Bill Gates, quando largou a faculdade com um amigo para fundar a MICROSOFT e fazer em duas semanas um interpretador para o BASIC, primeiro produto a ser comercializado pela Microsoft. Por esta empreitada conseguiu que a IBM, que estava lançando o seu PC e não esperava tanto sucesso, a permissão para fazer o sistema operacional deste computador, o MS-DOS, que marcou o início do monopólio da Microsoft.

No Brasil, muita gente entrou em contato com ele na década passada com os finados computadores MSX, TK90X, TK2000 e CP500, que o utilizavam como linguagem de programação. Nesta época era comum nos programas o uso descarado e extensivo do comando GOTO, que tornava um programa de algumas dezenas de linhas muito confuso e ilegível.

Quando o Windows se tornou padrão, pensava-se que a programação para este
ambiente só seria possível com linguagens como C, sendo impossível alguma pessoa com pouca experiência fazer um programa por mais simples que fosse. Foi aí que surgiu o VB, com um novo BASIC, não mais aquele confuso, mas um estruturado e bem mais poderoso. Tornou-se a linguagem mais utilizada em todo o mundo, sendo considerada uma das causas do sucesso do Windows. Hoje (02/1998) temos em torno de 3 milhões de desenvolvedores de Visual BASIC.

Escrito originalmente em 1987 por Alan Cooper (através de um programa com nome Ruby, que unido ao Quick BASIC deu origem ao Visual BASIC). Foi lançado em 1991 com a versão 1.0. Em outubro de 1992 veio a versão 2.0. Está atualmente (02/98) na versão 5.0 (lançada em 01/96).

OBJETIVO DO DESENVOLVIMENTO DE SOFTWARE

“Gerar soluções em tecnologia de informação para que empresas fiquem mais organizadas, produtivas e competitivas e para que usuários trabalhem menos e com mais comodidade e prazer. Como também desenvolver soluções que venham ajudar nas mais diversas áreas que afetam indivíduos: educação, lazer, cultura, etc.”

NOVIDADES DO VB 4.0

– Versão em 16 e 32 BITs nas edições Standard, Professional e Interprise;
– O VB 4.0 de 16 BITs roda em qualquer Windows enquanto que o de 32 BITs roda apenas no 95 e no NT 3.51 ou superior;
– O VB 4.O de 16 BITs continuará com as APIs do 3.x sem alterações, enquanto que o de 32 terá todas elas alteradas para as de 32 BITs (Case-sensitive e com duas versões para cada função: uma ANSI – sujo nome é acrescido do sufixo “A” e uma versão Unicode – cujo nome é acrescido do sufixo “W” de wide). Mudaram as bibliotecas centrais Kernel passou para Kernel32, User para User32, GDI para GDI32.
(Ex. GetWindowsDirectory da lib Kernel passa para
GetWindowsDirectory A da lib Kernel32);
– Lê ainda .MAK mas agora gera .VBP;
– Botão direito tem mais força;
– Object Browser;
– Custon Controls (OCX no lugar das VBX);
– Não mais trabalha com as VBX. As que trouxer correspondentes atualiza enquanto que os de terceiro devem ser atualizadas com esses;
– Datamanager e Datacontrol mais rápidos e mais fáceis de usar;
– Compilação condicional (um mesmo projeto pode ser desenvolvido para rodar tanto em ambiente de 16 quanto de 32 BITs), desde que as duas versões do VB estejam instaladas;
– Cria agora OLE DLL;
– Compatível com o VBA 2.0;
– Controles:
ImageList (cria coleção de imagens), ListView (lista de itens), RichText, SSTab (painéis com abas), StatusBar (colocar barra de status em aplicativos), ToolBar (cria barras de ferramentas), TreeView (lista ordenada hierarquicamente), TabFrames (abas ou guias).
– Na edição Interprise: aplicações cliente-servidor e para equipes de desenvolvimento; acesso a dados em bases remotas;
– Criação de Módulos de Classes;
– Add-ins (automatizar tarefas do programador);
– 3D para propertie aparência;
– Personalizar propriedades (possibilidade de criar novas propriedades);

NOVIDADES DO VB 5.0

– Novas construções de linguagem (For… Each ou With… End With);
– Public substituído por Global;
– Standard EXE (Abre EXE com Forms, Módulos, etc.);
– ActiveX: EXE, DLL e Control (ActiveX – construtor de servidores OLE); Controles customizados agora podem ser produzidos no VB e utilizados em qualquer programa para Windows que os aceite;
– Propriedade de Formulário StartUp Position (podemos centralizar com ela o form);
– Todas as janelas agora estão integradas em uma só (podendo ser separadas como antes);
– A Caixa de Ferramentas (ToolBox) pode agora receber outras Abas (Tabs), basta clicar com o botão direito sobre a ToolBox – Components – para adicionar;
– Pode abrir mais de um projeto por vez (File – Add Project);
– A janela Propertie agora pode ser listada por ordem alfabética ou por categoria (como no Access);
– Layout do Formulário – Preview do Form;

EDIÇÃO DE CÓDIGO:

– AutoList Members (opção para exibir lista de Métodos e properties ao escrevermos o nome de um objeto;
– Source Safe;
– Auto Quick Info (ao escrever nomes de funções aparecem seus parâmetros);
– Auto Data Tips (ao debugar vê valor da variável onde está o cursor);
– Drag-and-Drop Text Editing (copiar ou mover parte do Código selecionado. Ctrl para copiar);
– Barras de Edição (Botão direito sobre as barras de ferramentas);
– Replace All (cuidado, fazer com muita atenção);
– Compila realmente (coloca para código máquina: Menu Project – Project Propertie – Compile); existem sete tipos de compilação, além de ainda poderem ser gerado os velhos p-codes. Até o VB4, na janela Make EXE File, não restava nada mais a ser feito do que clicar o botão OK, agora você pode “regular” o executável, como:
* produza um compilado o mais rápido possível, embora fique de tamanho maior;
* produza um compilado de tamanho menor, embora fique mais lento;
* produza um compilado que explore melhor o processador Pentium;
* etc.

Num teste feito na versão beta, o executável compilado concluiu um cálculo em 2 segundos, enquanto o interpretado levou um minuto. Mas a coisa não é sempre assim.
– Executável menor e programa mais rápido;
– Gera Código apenas em 32 BITs (diferente do 4.0);
– Novos tipos de dados: Object, Byte, Variant Decimal, entre outros.

OUTRAS NOVIDADES:

– O editor de Código, aquela janela onde você escreve o programa, ficou inteligente, quando você começa a escrever um comando, ele já mostra a sintaxe e escreve para você (basta clicar), não é preciso mais ver a ajuda. Esta novidade foi relatada por um programador americano que testou a versão beta como inacreditável;

– Wizards que ajudam você a fazer o programa. Por exemplo, todo editor de texto tem uma janela principal com os menus arquivo, novo, abrir, salvar… toolbar com a figura da pasta aberta para abrir, figura do disquete para salvar, uma janela de ajuda, etc. Com o wizard, você seleciona um tipo de programa que o VB 5.0 gera as janelas, menus, botões, toolbars que são comuns a aquele tipo de aplicação, cabendo ao programador a alterar a interface segundo as suas necessidades e escrever o Código. Acessados ao abrir o VB5.
– Criação de OCXs para a Internet; do mesmo modo que um programador de Java pode fazer uma applet, o programador de VB pode fazer sua OCX que rode numa página HTML, são estes os chamados controles ActiveX, que só podiam ser feitos em C ou Java.
– Você não vai mais precisar aprender Java para poder criar uma home page interativa, porque com o VB 5, que tem os controles TCP/IP do Internet Control Pack, seus programas vão poder ser rodados dentro do Internet Explorer.
– Controles para INTERNET:
Internet Transfer Control
Winsock e WebBrowser
Única propriedade: MDIChild = False

FAZER DOWNLOAD (RECEBER ARQUIVO VIA INTERNET):
Inet1.Execute “FTP://ftp.microsoft.com”,”GET disclaimer.txt c:windowstempdisclaimer.txt”

FAZER UPLOAD (ENVIAR ARQUIVO VIA INTERNET):
Inet1.Execute “FTP://ftp.microsoft.com”,”PUT riba.txt c:windowstempriba.txt”

– Suporte a vários padrões gráficos, como jpg, gif, gif animado, pcx, tif e gráficos 3D.
– Interface drag n’ drop.
– Suporte a múltiplos DBEngines.
– Suporte a vários resource files.
– Suporte a polimorfismo.
– Suporte a um tipo especial de herança.

OUTRAS INFORMAÇÕES:

Ainda será preciso a runtime vbrun500.dll
Lançamento em janeiro de 96.
Só vão poder ser gerados programas 32-bit.

No menu New Project agora existem várias opções, além disso, é permitido trabalhar com vários projetos ao mesmo tempo, isto quer dizer que é possível fazer um OCX enquanto ao mesmo tempo ele pode estar sendo testado em outro projeto ao mesmo tempo.

A Microsoft já disponibilizou o VB5 Control Creation Edition para download gratuito no seu site, que é uma edição “light” do VB5 e não gera executável. O tamanho é aproximadamente 6 MB, para quem tem um acesso rápido vale a pena.

Entre outras opções, a segunda versão do Visual BASIC para Windows 95 (a primeira foi a 4.0), destacam-se aquelas referentes à criação de arquivos DLL e OCX, que são bibliotecas de comandos e ferramentas voltadas para o Visual BASIC, a ferramenta de criação de formulários referentes à banco de dados, a nova interface, que permite que se trabalhe em mais de um projeto ao mesmo tempo e muitas opções que permitem a reciclagem de Código, diminuindo o trabalho do programador.

Quanto a criação de DLL e OCX, este trabalho foi muito facilitado, uma vez que nas versões anteriores, era necessário se trabalhar com linguagens como o Visual C++ e o Delphi. Agora, existe um Módulo que compila o Código fonte para DLL ou OCX.

Uma das grandes deficiências apontadas por programadores experientes era a dificuldade de se gerar um formulário no estilo Access para o Visual BASIC. Era necessário muito trabalho de interligação entre a tabela Access e os objetos Visual BASIC. Agora, existe um Wizard (assistente) que facilita e muito esta tarefa.

Na interface, houve sensíveis mudanças, com o uso de vários projetos ao mesmo tempo, o que torna a interação entre os projetos muito mais rápida. Neste sentido, a janela de propriedades, velha conhecida de qualquer programador em Visual BASIC, foi remodelada, apresentando as propriedades em ordem alfabética, como nas versões anteriores, ou na versão por categorias, deixando agrupadas propriedades de layout, de dados, etc., como no Microsoft Access, por exemplo.

Aproveitando o assunto de vários projetos ao mesmo tempo, uma das melhores vantagens do Visual BASIC 5.0 foi a interligação entre os projetos: caso um form que esteja sendo usado por mais de um projeto seja alterado, o Visual BASIC avisará ao usuário dessa alteração e de que possivelmente poderá haver erro em algum projeto, uma vez que as propriedades não se cruzarão corretamente.

O QUE É O VISUAL BASIC?

É uma linguagem de programação Visual orientada a objetos (a partir da versão 4.0). Até a versão 3.0 ele era orientado a Eventos.
Aquela primeira frase quer dizer mais ou menos que com o VB é possível fazer programas para Windows utilizando programação orientada a objetos (OOP).

O que são objetos?

Objetos são coisas definidas por CLASSES e que possuem propriedades, Métodos e Eventos. Uma janela, um botão e um banco de dados são objetos. Mas para entender bem o que é um objetos ainda é preciso definir as tais das propriedades, dos Métodos e dos Eventos:
Comecemos pelas Classes. Uma janela é muito diferente de um botão, mas os dois são objetos. Isso acontece porque eles são definidos por Classes diferentes. Classes definem um objeto a grosso modo. Definem suas propriedades, seus Métodos e seus Eventos. Classes são os moldes dos objetos.
Um botão pode ser diferente do outro (maior ou menor, com uma legenda diferente…). Mas como isso é possível se eles pertencem à mesma classe? Porque suas propriedades são diferentes. As propriedades definem características mais específicas dos objetos. Um botão tem, por exemplo, propriedades que determinam sua altura, sua largura e sua legenda.

Um Método é uma coisa, uma função, uma ação que age sobre um objeto. Por exemplo, se tivermos uma lista (tipo as listas de tópicos no “procurar” da ajuda do Windows), adicionamos ou removemos itens através de Métodos. Ou ainda, se quisermos mover um certo objeto pela tela, poderíamos usar um Método.

Por fim, o Evento. Digamos que em um certo programa, pressionamos um botão e um Beep é emitido. Como o programa sabe quando apertamos o botão? Ele sabe porque quando um objeto da classe botão é clicado, é gerado um Evento. E é a esse Evento que está associado o Código (comandos) que produzirá o beep. Ocorrem também Eventos, por exemplo, ao modificarmos o texto de uma caixa de texto ou ao mover o cursor do mouse sobre uma janela.

Só para ficar mais claro, um exemplo não muito nobre: digamos que haja uma classe “Galinha”. Um objeto Galinha poderia ter a propriedade “Idade”, uma propriedade “CorDasPenas” e uma propriedade “Nome”. Ela teria um Método “PoeOvo” e um Método “Cacareja”. E ela geraria Eventos ao dormir ao acordar e ao ser ameaçada.

RODANDO O VB 5.0

Basta clicar em Iniciar – Programas – Visual BASIC 5.0.

Observamos que o Grupo do VB 5.0 tem cinco itens:

1)API Text Viewer

Onde podemos visualizar as APIs do Windows: suas constantes, declarações e tipos de dados. O mais importante desse utilitário é que podemos selecionar qualquer parte daqui e copiar e colar no Código do projeto do VB.

2) O segundo item é o Aplication Setup Wizard
Este utilitário é o Assistente responsável pela geração dos discos (disquete ou Cd) instaladores do programa desenvolvido no VB. Também chega a gerar o executável, se assim o desejemos.

3) Crystal Report é o gerador de relatórios do VB. Desenvolvido pela Seagate (a mesma dos HDs) ele agiliza o desenvolvimento de relatórios, tornando essa tarefa menos trabalhosa que sua construção através de Código. Pode estar no Grupo do VB ou não, depende da instalação (no nosso caso não foi instalado).

Books Online – São arquivos de Help existentes no CD de instalação e que podem ser Instalados ou não no disco rígido e consultados através deste item.

4) Readme, arquivo de Help que traz inúmeras informações importantes:

5) O quinto item é o próprio VB 5.0, que ao ser ativado abre a janela abaixo, onde devemos escolher o tipo de projeto que desejamos criar, abrir um existente ou os mais recentes:

Após escolher a opção padrão Standard EXE aparece a tela abaixo, que é o ambiente de programação do Visual Basic 5.0 Edição Interprise:

Todas as janelas acima (Principal, ToolBox, Projeto, Propriedades e Formulário) são exibidas por default.

* Toolbox – Providencia um conjunto de ferramentas que você usa durante o projeto para colocar controles dentro de seu form (janela de interface com o usuário).

* Menu Bar – Mostra os comandos usados para construir a sua aplicação.

* Form – É a janela na qual você irá construir a interface da sua aplicação. No form você irá adicionar controles , gráficos , figuras que irão criar a aparência final da sua aplicação.

• Project Window – Lista os forms , Módulos de Código.

* Properties Window – Lista as propriedades existentes para um form ou outro controle selecionado. Uma property (propriedade) é um valor ou característica associada a um objeto tais como tamanho , caption ou cor.

A TOOLBOX DO VB5:

(A ToolBox que aparece na próxima página é do VB4).

B) Agora a força do VB, a janela TOOLBOX (Caixa de Ferramentas) – é a janela que traz os Controles (as ferramentas no VB)

– Pointer – Não é um Controle, mas uma ferramenta que serve para mover e dimensionar Controles;
– PictureBox – Exibir figuras ou ícones nos Formulários. Também responde ao Evento click.

– Label – Etiqueta ou rótulo, exibe um texto que não pode ser editado pelo usuário. Uso: Títulos.

– TextBox – Exibe uma área onde o usuário pode digitar texto.

– Frame – Moldura para agrupar Controles para que funcionem de forma lógica.

– CommandButton – Botão de Comando. Executa ação ao ser clicado.

– CheckBox – Pode assumir valores falso ou verdadeiro. Em um mesmo Formulário vários CheckBoxes podem assumir o valor verdadeiro ao mesmo
tempo.

– OptionButton – Pode também assumir valores falso/verdadeiro, mas em um mesmo Formulário somente um OptionButton pode assumir o valor verdadeiro.

– ComboBox – Combina caixa de texto com caixa de listagem. O usuário pode digitar a informação como também pode encolher da lista.

– ListBox – Exibe uma lista de itens que o usuário pode selecionar.

– ScrollBar Horizontal e Vertical – Permite selecionar com o mouse um determinado valor numa faixa de valores.

– Timer – Controla intervalos de tempo determinados pelo programador.

– DriveListBox – Exibe uma lista de drives onde o usuário pode selecionar um.
– DirListBox – Exibe uma lista de diretórios (pastas) e permite que o usuário selecione um.

– FileListBox – Idem para arquivos.

– Shape – Adiciona diversas formas geométricas ao Formulário.

– Line – Adiciona linhas a Formulários.

– Image – Exibe figuras ou ícones e funciona como um CommandButton quando clicado.

– Data – É o DataControl, que permite conectar-se a um Banco de Dados existente para extrair manipular as informações contidas neste.

OLE – Incorpora objetos de outros aplicativos em um Formulário.

– CommonDialog – Exibe um conjunto de caixas de diálogo comuns no Windows, abrir arquivo, imprimir, fontes, salvar, etc.

– ToolBar – Contem uma coleção de Botões e é utilizado para criar Barras de Ferramentas que estão associadas com uma aplicação.

– StatusBar – Cria uma Barra de Status para um programa com até 16 painéis contidos em uma coleção de painéis.

– ProgessBar – Barra que indica o progresso de uma operação.

– ImageList – Contém uma coleção de objetos ListImage. Para exibir imagens.

– DBList – Automaticamente preenche uma lista com campos de um DataControl e opcionalmente passa o campo selecionado para um segundo DataControl. O DBCombo é similar mas permite editar o campo selecionado.
– DBGrid – Exibe e manipula uma série de linhas e colunas representando Registros e Campos de um objeto Recordset.

C) A JANELA DE PROJETO
As características do ambiente Windows (interface gráfica, janelas, objetos, Eventos, mouse, ícones, botões, etc.) são trabalhadas no Visual BASIC. O ponto de partida do para o desenvolvimento do Visual BASIC é uma janela – o Formulário. Realmente uma janela é a interface entre o programa e o usuário. Ela interage com o usuário. Um PROJETO é um conjunto de arquivos que compõem a aplicação. Estes arquivos que compõem a aplicação podem ser visualizados na janela Projeto do VB (Project Window).
Esta é a do VB4

Formulário contem Um Módulo Class contém as defi-
A descrição e o códi- nições características de uma Clas-
go associado a este. se incluindo suas propriedades e Métodos.
Um Módulo padrão
contém declarações e Um arquivo Resource pode conter
procedures. todos os Bitmaps, strings e outros dados de um projeto.
Esta é a do VB5
Para poder compartilhar Código em todo o projeto deve-se colocar este Código em um Módulo e declarar a Procedure como Global.
O ambiente de programação do Visual BASIC provém inúmeras ferramentas para auxiliar no desenvolvimento de aplicações gráficas: Formulários, Caixa de Ferramentas (Controles), Paleta de Cores, Propriedades, Eventos predefinidos, Janela de Módulo interativa e com help on-line, Object Browser, API Viewer, Setup Wizard, etc.
D) A JANELA DE PROPRIEDADES
Esta é do VB4

Esta é uma janela muito útil (economiza muitas linhas de Código e a cada versão vem mais rica.
Todas estas propriedades indicadas (nome, cor de frente, cor de fundo, título, aparência, caixa de controle, habilitada, etc.) são referentes a um objeto, cujo nome aparece na Barra de títulos da janela (Form1 no caso da janela ao lado).

Esta é a janela de Propriedades do VB5: Form Layout (Visualiza-
ção do Projeto)

E) JANELA DO FORMULÁRIO

O Formulário é o principal objeto do VB, é a janela que forma a interface com o usuário. Contêm botões, menus, figuras, etc. Suas Propriedades principais são: BackColor, BorderStyle, Caption, ControlBox, Max e MinButton, Enabled, Height e Width, Icon, MousePointers, Top,StartUp Position, Visible e WindowState (0-Normal, 1-Minimizada e 2-Maximizada).

CRIANDO APLICAÇÕES

* Diferença entre uma Aplicação Tradicional e outra Event-Driven ou seja ativada por Eventos ou Orientada a Objetos.

Em uma aplicação tradicional ou programada de forma procedural , a aplicação por si só controla que porções do Código serão executadas. A execução começa na primeira linha de Código e segue um caminho pré-definido através de toda a aplicação , chamando subrotinas conforme for sendo necessário.

Em uma aplicação controlada por Eventos ou event-driven , uma ação do usuário ou do sistema , ativa um procedimento associado a este Evento. Assim a ordem através do qual o seu Código de programa é executado depende de quais Eventos ocorram , que por sua vez estes Eventos dependem das ações tomadas pelo usuário. Esta é a essência das Interfaces Gráficas e da Programação Ativada por Eventos.

PASSOS PARA A CRIAÇÃO DE UMA APLICAÇÃO:

A. Criar a interface
B. Setar as propriedades dos controles
C. Escrever o Código

A. CRIAR A INTERFACE.

O primeiro passo na construção de uma aplicação Visual BASIC é desenhar os objetos que irão compor a interface. Para inserir o controle no seu form:

1. Clique no botão do controle dentro da toolbox.

2. Mova a seta do mouse para dentro da área do form , a seta vira uma cruz.

3. Ponha a cruz no ponto dentro do form onde irá ficar o canto superior esquerdo do controle escolhido

4. Arraste a cruz até que o controle fique do tamanho desejado (arrastar significa apertar o botão esquerdo do mouse e mante-lo apertado enquanto o objeto é movido com a mudança de posição do mouse)

5. Solte o botão do mouse e o controle aparecerá no form. Caso você dê um duplo clique num Controle da ToolBox ele será desenhado automaticamente em tamanho padrão e no centro do Form.

B. SETAR AS PROPRIEDADES DOS CONTROLES

Propriedades são características que um objeto pode ter. Existem as comuns (p.e.: name) e as particulares a cada objeto.
O próximo passo é setar ( colocar valores de inicialização ) as propriedades dos objetos que você criou. A janela Properties proporciona uma maneira fácil de inicializar as propriedades para todos os objetos do form . Para abrir a janela de propriedades , escolha o comando Properties Window no menu View ou então clique no botão Properties na Barra de Ferramentas ( Toolbar ) ou tecle F4.

OBJECT BOX – Mostra o nome do objeto selecionado. Clique a seta a direita do box para selecionar o form ou nome de controle a partir da lista de objetos presentes no form atual.

SETTINGS BOX – Permite que você edite a inicialização da propriedade selecionada na lista de propriedades. Algumas inicializações podem ser trocadas clicando-se na seta sublinhada existente a direita do box ; será mostrada então uma lista de opções . Você poderá clicar em um item da lista para seleciona-lo.

LISTA DE PROPRIEDADES – A coluna esquerda mostra todas as propriedades para um objeto selecionado, a coluna da direita mostra a inicialização atual para cada uma das propriedades.

C. ESCREVER O CÓDIGO.

MÓDULOS – são objetos que contêm código de programação (procedures, variáveis, constantes, tipos de dados, etc).
A janela de Código é o local onde você escreve o Código Visual BASIC para a sua aplicação. Código consiste em sentenças da linguagem , constantes e declarações. Usando a janela de Código ( Code Window ) , você pode rapidamente ver e editar qualquer parte do seu Código dentro de sua aplicação.

Para abrir a janela de Código você deve clicar duas vezes no form ou no controle para o qual você deseja escrever Código ou então a partir da janela Project , selecione o nome do form e clique no botão View Code.

JANELA DE CÓDIGO
(Code Window)

A janela de Código ( Code Window ) contém os seguintes elementos :

Object Box (Object) – Mostra o nome do objeto selecionado. Clique na seta a direita para mostrar a lista de todos os objetos associados a este form.

Procedures List Box (Proc) – Lista os procedimentos existentes para um objeto. O box mostra o nome do procedimento selecionado – no exemplo acima Click . Clique na seta a direita do box para mostrar todos os procedimentos associados a este objeto.

O CÓDIGO ( ou programa) em uma aplicação Visual BASIC é dividido em pequenos blocos chamados procedures (procedimentos). Um event procedure ( procedimento associado a um Evento ) contém Código que é executado quando um Evento ocorre ( como por exemplo quando o usuário clica em um botão) .

Cada controle tem uma parte do código associada a si. Existem controles que tem apenas propriedades sem a necessidade de código (acontece muito com os Labels), sem qualquer código

CRIANDO UM EVENT PROCEDURE:

1. No Object box , selecione o nome do objeto no form ativo ( form que atualmente tem o foco)

2. Na Procedure List box , selecione o nome do Evento desejado. No exemplo acima a procedure Click já estava selecionada, já que ela é a procedure default para o botão de comando. Note que uma máscara (template) para a escrita do Código para este Evento está sendo mostrada na janela de Código

3. Digite o Código desejado entre as sentenças Private Sub e End Sub e a procedure se parecerá com o texto abaixo.

Private Sub Command1_Click ( )

Text1.text = “Hello World!”

End Sub

CRIAÇÃO DE MENUS

Menus são criados usando a janela Menu Design. Você adiciona itens ao menu em tempo de projeto pela criação de controles de menu e setando propriedades que definirão sua aparência.

EDITOR DE MENUS

(Menu Design)
Para a criação de um Menu devemos ir ao menu Tools – Menu Editor ou teclar Ctrl+E.

1) Começamos digitando o Título (em Caption) do Menu mais à esquerda. Caso desejemos acessar esse menu via Alt e a letra grifada devemos inserir o & antes da letra que será grifada. No exemplo abaixo: &TesteMenu (que aparecerá como TesteMenu);
2) Depois digitamos o nome (em Name) do Menu para referência em Código;
3) Os outros itens não são obrigatórios;
4) Clicar em Next para entrar um novo Menu ou item de Menu. Caso seja um item de Menu devemos clicar na seta para a direita quando aparecerão três pontinhos a esquerda do título do item que ficará abaixo do nome do Menu.
5) Os Menus e os itens de Menus podem ser referenciados em Código através do Evento Click, que deve ser feito no Formulário após teclarmos em OK.

4 – CONECTANDO FORMULÁRIOS

A adição de novos formulários na sua aplicação é feito através da opção File na barra de menu , comando New Form ou clicando no Botão Form.

Comandos para controle do form :

Comando Ação
Load form Carrega o form mas o deixa invisível

Form.Show [modo] Mostra o form se ele estiver invisível, se
ele não estiver carrega então ele primeiro
carrega o form e depois o mostra , estilo
refere-se a se o form que fez a carga do
próximo form , fica parado até a desativação
do novo form (modo =0 ou modeless) ou se
continua a sua execução sem se importar com o
próximo form (modo=1 ou modal)

Unload form O form é descarregado da memória e a sua
execução é encerrada

CONTROLES, MÉTODOS, EVENTOS E PROPRIEDADES

PRINCIPAIS CONTROLES DO VB5

CommandButton (Botão de Comando) – É um dos Controles mais utilizados em programas do Windows, não apenas em VB. Sua função principal é executar comandos quando clicado. O Evento Click é o mais importante para ele. As Propriedades Caption, Name, Enabled são importantes entre outras. A propriedade Enabled indica se o botão responderá ao Evento Click ou não.

PictureBox (Caixa de Imagem) – Este Controle é utilizado para exibir figuras nos Formulários e também responde ao Evento Click. A propriedade Picture é a que abre a caixa de diálogo para indicarmos o path do ícone ou da figura que queremos exibir.

Label (Etiqueta ou Rótulo) – Exibir um texto onde o usuário não possa alterar. Sua propriedade principal é a Caption (que é o texto que o Controle exibirá). Outras Propriedades de formatação do texto: FontName, FontBold, Alignment, etc.

TextBox (Caixa de Texto) – Exibir um texto onde o usuário possa editar. Sua propriedade principal é o Text (que é o texto que o Controle contem). As Propriedades de formatação do texto são idênticas ao Label.

CheckBox (Caixa de Verificação) – Útil quando necessitamos informar ao sistema que determinadas informações são verdadeiras ou falsas. Em um mesmo Formulário vários CheckBoxs podem assumir o valor verdadeiro ao mesmo tempo. Algumas Propriedades: Visible, Enabled e Caption.

OptionButton (Botão de Opção ou botão de rádio) – Com este Controle somente uma das opções pode assumir o valor verdadeiro em um mesmo conjunto. Para Ter mais de um conjunto verdadeiro temos que utilizar o Controle Frame.

ListBox (Caixa de Listagem) – Exibir e selecionar uma lista de itens. As Propriedades ListCount e ListIndex são utilizadas para identificar os itens da lista. Os Métodos AddItem e RemoveItem são utilizados para adicionar e remover itens.

ComboBox (Caixa de Combinação) – Combinação de uma TextBox com uma ListBox. Pode-se editar um texto na parte superior ou selecionar um item da lista. Propriedades idênticas as da ListBox.

ScrollBar (Barra de Rolagem) Vertical e Horizontal – Estes controles assumem valos máximos ou mínimos de acordo com as propriedades Max e Min, respectivamente. Estes controles podem receber um deslocamento pequeno (propriedade SmallChange), que ocorre quando se clica nas setas e um deslocamento grande (propriedade LangeChange), que ocorre quando se clica na barra. O controle recebe o valor da posição atual.

Timer (Temporizador) – Útil para se controlar intervalos de tempo. Evento mais importante é o Timer e a propriedade mais importante é o Interval (que determina em milisegundos o intervalo de tempo d controle).

Shape (Formas Geométricas) – Adiciona figuras geométricas aos Formulários. Com a Propriedade Shape escolhemos o tipo de figura (forma). Outras Propriedades BorderColor, BorderStyle e BackColor.

Line (Linha) – Adicionar linhas geométricas a formulários. Propriedades BorderColor, BorderWidth, BorderStyle, X1, X2, Y1 e Y2.

Image (Imagem) – Exibe ícones ou figuras e também responde ao Evento Click. Diferentemente do Controle Picture este controle tem a Propriedade Stretch que ajusta o tamanho da imagem para preencher a moldura.

Data Control – Conectar-se a um Banco de Dados para extrair e manipular informações deste BD. Propriedades mais importantes DatabaseName e RecordSource. Controles como TextBox podem ser vinculados a um DataControl através das Propriedades DataField e DataSource.

DBList – Automaticamente preenche uma lista com campos de um DataControl e opcionalmente passa o campo selecionado para um segundo DataControl.

DBCombo é similar mas permite editar o campo selecionado. Propriedades importantes: DataField, DataSource, BoundColumn e RowSource.

OLE – Incorpora e aninha objetos de outros aplicativos em um formulário. As Propriedades Class, OLETypeAllowed e SourceDoc definem o objeto.

EVENTOS COMUNS

O Visual BASIC apresenta alguns Eventos de objetos que são usados freqüentemente, e se apresentam na maior parte dos objetos de um form. Abaixo segue uma relação dos principais e suas respectivas funções:

• Click: É um Evento que executa determinadas ações especificadas pelo programador quando alguém clica sobre alguma coisa.

• Dblclick: Executa determinadas ações especificadas pelo programador quando alguém clica duas vezes sobre algum objeto.

• Resize: executa algum comando pré estabelecido quando o usuário redimensiona o form.

• Load: executa ordens sempre que o programa for carregado na memória.

• Gotfocus: quando um objeto, um botão por exemplo, apenas ganha o foco, sem executar as suas funções em outros Eventos.

• Lostfocus: quando o foco passa para um outro objeto. Quando um objeto perde o foco.

• Keypress: quando é pressionada alguma tecla, geralmente em caixas de texto, são acionados determinados comandos.

• Mousemove: sempre que se move o ponteiro do mouse, algo será ativado. Um exemplo prático, são os protetores de tela, que são desativados quando mexemos o mouse.

PROPRIEDADES GERAIS

As principais propriedades dos objetos do Visual BASIC, que estão presentes em praticamente todos os objetos do Visual BASIC, são as seguintes:

• Caption – Nos botões, form, e frames, altera o seu título a ser exibido no form.

• Enabled – Presente em todos os objetos, permite que os objetos sejam acessados, caso ela esteja definida como False. • Visible – Torna o objeto invisível caso esta propriedades esteja configurada como False.

• Font – presente em objetos como textbox, label, botões command e botões check e option. Permite que seja alterada a fonte de um objeto. Que agora no VB5 configura tudo sobre fonte.

• Name – altera o nome do objeto, para fins de referência durante a programação.

• Forecolor, Backcolor – define a cor da fonte e do fundo de uma textbox e uma label, por exemplo.

• Propriedades do form: Height (altura do form), Weight (largura do form), Maxbutton (ativa ou desativa a presença do botão Maximizar), Minbutton (ativa ou desativa presença do botão Minimizar), Left (altera a distância do form a partir da extrema esquerda do vídeo) e Top (altera a distância do form a partir do topo do vídeo).

Em geral, todas as propriedades dos objetos presentes no Visual BASIC são bastante intuitivas, no que se refere aos seus nomes. Isto pode ser notado claramente nas propriedades Visible, Enabled, Name, entre outras.

Bem, já que sabendo o que são Classes, Propriedades, Métodos, Eventos e Objetos, vamos usá-los! Inicie o VB. Você certamente já notou que o VB cria uma janela automaticamente. Bem, esta janela é um objeto. Você pode ver suas propriedades na janela “Properties” (se esta janela não estiver visível, use o menu View / Properties ou a tecla F4). Na verdade nem todas as propriedades estão listadas.

Note que a janela Properties tem, logo abaixo da barra de título, uma “caixa de seleção” dizendo “Form1 Form”. Esta caixa lista todos os objetos colocados na janela ativa. O texto em negrito “Form1” indica o nome do objeto. O texto ao lado, “Form”, indica a classe à qual pertence o objeto. Logo abaixo há a lista das propriedades. À esquerda ficam os nomes das propriedades e a direita os seus respectivos valores.

Note que no VB a janela é chamada de Form (a partir de agora uma janela que você criar será chamada de Form). Então, quer ver os Eventos que um Form possui? Dê-lhe um duplo clique. Abre-se uma janela de edição. Aliás, em janelas como estas que o seu programa será escrito. No topo desta janela há duas “caixas de seleção”; a primeira (“Object:”) lista os objetos que estão na janela. A Segunda ( “Proc:”), lista todos os Eventos do objeto. Dando um duplo clique no form, a janela de edição se abrirá. O Evento “Load” do Form estará selecionado. Já haverá 2 linhas incluídas: “Private Sub Form_Load()”e “End Sub”. “Private” por default é coisa do VB4 em diante.

Aquela 1ª linha inicia um subprocedimento; a Segunda termina o mesmo subprocedimento. Qualquer coisa que você colocar entre aquelas duas linhas será executado quando aquele form for carregado na memória (porque o Evento é o Load-Carrega).

EXEMPLO DE UM PROGRAMA

Vamos fazer um programinha: você clica em um botão e o título da janela passa a ser “O Botão Foi Clicado”; dê um duplo-clique no form e o botão se moverá na tela.

Como exemplo serve! A primeira coisa a fazer é criar um botão. Para um botão de tamanho “normal”, dê um duplo-clique na ferramenta “CommandButton” na caixa de ferramentas (toolbox). Deixe o botão deste tamanho, no meio da tela. No VB cada objeto tem um nome; quando você cria um controle (um objeto como um botão, uma barra de rolagem, etc.), o VB lhe dá um nome “genérico” automaticamente. O nome do objeto é uma propriedade. Vamos trocar o nome do botão para “MeuBotão” e o do form para “MinhaJanela”. Clique em uma área vazia do form e vá para a janela das propriedades. Ache a propriedade “Name” e troque-a para “MinhaJanela”. Da mesma forma, troque o Name do botão para “MeuBotão”.

Vamos agora trocar a legenda do botão para “Clique-me”. Ache a propriedade “Caption” do botão e troque para “Clique-me”. Essas propriedades que você alterou foram alteradas durante o Design Time, ou seja, enquanto o programa estava sendo criado (e não executado). Você já deve imaginar que para trocar o título da janela deveríamos trocar a sua propriedade “caption”. Certo, mas isto só deve acontecer ao clicar o botão. Dê um duplo-clique no botão que você criou (para abrir a janela de edição). O Código (ou seja, os comandos) para trocar o caption do form deverá ser colocado no Evento Click do botão; assim, estes comandos só serão executados quando o botão for clicado.

Ao criar um controle, a propriedade que tem o foco é a Caption, ou seja, logo que criamos um Label (p.e.) podemos imediatamente digitar seu Caption (mesmo que a janela de propriedades não esteja visível).

Para alterar uma propriedade durante o Run-Time (enquanto o programa é executado), o VB usa a seguinte sintaxe:

Objeto.Propriedade = NovoValor

Então para trocar o caption do form usaríamos o seguinte Código (note que o Evento é o click):

Private Sub MeuBotão_Click ()
MinhaJanela.Caption = “O Botão Foi Clicado”
End Sub

Veja bem: como o valor do caption é um texto, deve estar entre aspas. Com isto você já é capaz de se virar com as propriedades e ter uma boa noção sobre os Eventos. Agora vamos aos Métodos:

Para mover o botão vamos usar o Método Move do botão. Como a movimentação acontecerá ao duplo-clicar o form, o Código vai no Evento DblClick do Form. A seguinte sintaxe é usada no VB para Métodos:

Objeto.Método Atributos (Nem sempre há atributos)

Para mover o botão, usaremos o seguinte Código (lembre-se sempre de colocar o Código em seu devido Evento):

Private Sub MinhaJanela_DblClick ()
MeuBotão.Move 100, 100
End Sub

Os atributos 100, 100 vão colocar o botão perto do canto superior esquerdo do form. Execute o programa (tecla F5 ou o botãozinho do tipo play na barra de ferramentas). Clique o botão e depois dê um duplo clique no form. Se tudo funcionou direito, parabéns.

O VB tem dezenas de Classes com centenas, milhares de propriedades, Métodos e Eventos. É muito difícil falar sobre todos em pouco espaço. Mas todos eles estão muito bem explicados no help on line do VB. Procure Methods, Properties e Events e brinque bastante com eles. Brinque também com outros controles, não só botões. Comece a usar Labels (“etiquetas” que mostram um texto), PictureBoxes (para mostrar desenhos) e outros.

VARIÁVEIS

O QUE SÃO VARIÁVEIS?

Bem, variáveis são coisas que, em programação, servem para armazenar dados temporariamente na memória. Digamos que você queira, fazer uma “calculadora”; os números serão armazenados em variáveis.

Como eu crio uma variável?

Normalmente não é preciso criar uma variável; basta usá-la que ela é criada automaticamente. Uma variável é identificada por um nome. Este nome deve obedecer às seguintes regras:

– Não pode haver repetição de nomes;

– Deve começar com uma letra;

– Não pode conter espaços, pontos, vírgulas e outros caracteres do tipo: !, $, %.

– Deve ter, no máximo, 255 caracteres.

Muitíssimas vezes você usará variáveis para guardar valores de propriedades. E depois poderá atribuir o valor da variável a uma outra propriedade. A sintaxe é esta:

Variável = Objeto.Propriedade => Coloca na variável o valor da
propriedade

Objeto.Propriedade = Variável => Coloca na propriedade o valor da
variável

EXEMPLO DE MÁQUINA DE SOMAR

Para dar um exemplo, vamos fazer uma “máquina de somar”: em um form coloque duas “text boxes”, uma “label” e um botão. Nas caixas de texto serão colocados os números. Um clique no botão e a soma aparecerá na “label”. Vamos usar os nomes padrão dos controles (já que o projeto é pequeno). Troque a caption do botão para “Soma” e apague o texto das text boxes.

Todo o Código estará no Evento Click do botão:

Private Sub Command1_Click ()
Numero1 = Val(Text1.Text)
Numero2 = Val(Text2.Text)
Soma = Numero1 + Numero2
Label1.Caption = Str(Soma)
End Sub

Acho que até deu para entender. Mas o que são aqueles “Val (…)” e “Str (…)”?

Val e Str são funções. Funções são comandos que retornam algum dado ou valor. Seguidamente uma função requer atributos (que são colocados entre parênteses). Eis o porquê de usar essas funções: o VB diferencia números de textos. Mas “12” pode ser um texto. Normalmente, quando algo está entre aspas, é considerado texto. A propriedade “Text” (assim como a “Caption”) sempre contém um texto. Uma soma entre os textos “1” e “1” resultaria em “11”! Por isso, usamos a função Val, que pega um texto e transforma-o em um valor numérico. A função Str, que aparece depois faz o contrário, pega um número e transforma em uma string (texto).

Note que você também pode colocar um valor numa variável diretamente:

Valor = 10 ou Msg = “Isto aqui é uma string.”

DECLARANDO VARIÁVEIS

É possível (e importante) “declarar” variáveis, ou seja, dizer ao programa que você irá usá-las antes que elas sejam “automaticamente criadas”.

Mas para que “declarar” se o processo é automático?
Em algumas linguagens é obrigatório (C e Java).

Principalmente por dois motivos: velocidade e economia de memória Existem vários tipos de dados no VB (veja tabela na próxima página). Cada um destes tipos tem uma limitação em termos de valores que pode adquirir, mas também se diferenciam pela quantidade de memória que ocupam.

CONSTANTES:
CORES:
vbBlack, vbRed, vbGreen, vbBlue, etc.

TIPOS DE DADOS DO VB5

Data type Storage size Range
Byte 1 byte 0 to 255
Boolean 2 bytes True or False
Integer 2 bytes -32,768 to 32,767
Long
(long integer) 4 bytes -2,147,483,648 to 2,147,483,647
Single
(single-precision floating-point) 4 bytes -3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double
(double-precision floating-point) 8 bytes -1.79769313486232E308 to
-4.94065645841247E-324 for negative values;
4.94065645841247E-324 to 1.79769313486232E308 for positive values
Currency
(scaled integer) 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Decimal 14bytes +/-79,228,162,514,264,337,593,543,950,335 c/ no decimal point;
+/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001
Date 8 bytes January 1, 100 to December 31, 9999
Object 4 bytes Any Object reference
String
(variable-length) 10 bytes + string length 0 to approximately 2 billion
String
(fixed-length) Length of string 1 to approximately 65,400
Variant
(with numbers) 16 bytes Any numeric value up to the range of a Double
Variant
(with characters) 22 bytes + string length Same range as for variable-length String
User-defined

(using Type) Number required by elements The range of each element is the same as the range of its data type.
Note Arrays of any data type require 20 bytes of memory plus 4 bytes for each array dimension plus the number of bytes occupied by the data itself. The memory occupied by the data can be calculated by multiplying the number of data elements by the size of each element. For example, the data in a single-dimension array consisting of 4 Integer data elements of 2 bytes each occupies 8 bytes. The 8 bytes required for the data plus the 24 bytes of overhead brings the total memory requirement for the array to 32 bytes.
A Variant containing an array requires 12 bytes more than the array alone.

Quando você não declara uma variável, ela é considerada do tipo Variant. Note que este tipo ocupa pelo menos 16 bytes de memória, bem mais que os outros. A sintaxe para declarar uma variável pode mudar um pouco, dependendo do “escopo” que você deseja. (“escopo” é a disponibilidade da variável em cada um dos “níveis” do programa – veja o próximo capítulo). Generalizando, a sintaxe é esta:

ComandoDeDeclaração NomeDaVariável as TipoDeDado

De um modo geral, o “ComandoDeDeclaração” será o comando “Dim”. Por exemplo, se quiser criar uma variável do tipo Integer chamada MinhaVariavel, usaríamos:

Dim MinhaVariavel as Integer

Mas, será que faz muita diferença gastar 2, 4, 8 ou 16 bytes da memória? Hoje os computadores têm *muita* memória.

Tudo bem, em programas pequenos isto não será uma diferença crucial, mas em um programa maior, com centenas de variáveis, isto pode fazer a diferença. Além disto, devemos lembrar que o Windows pode trabalhar com vários programas abertos ao mesmo tempo; e se seu programa for “gordo” poderá atrapalhar a performance dos outros.

Além disto, quanto menos memória ocupa um certo tipo de dado, mais rapidamente ele é processado. Por isso, procure sempre usar o “menor” tipo de dado possível. Mas lembre-se: se você ultrapassar o limite da variável acontecerá um erro (tente criar uma variável do tipo Byte e atribua a ela um valor maior que 255).

ESCOPO
OS NÍVEIS DE UM PROGRAMA

Vamos começar criando um programa que use 2 forms.

Vamos fazer de conta que temos um excelente programa e queremos fazer uma janela “Sobre” para ele. Primeiro coloque um botão (botSobre – este será seu name) no form que o VB cria para nós. Ajuste o caption deste botão para “Sobre…”

Mas normalmente o “Sobre…” vai em um menu.

Continuando. Nosso “Sobre” será educado. Ele agradecerá ao usuário por ter usado o programa. E o chamará pelo nome. Então, ainda nesta primeira janela, coloque uma caixa de texto (chame-a de txtNome) e deixe-a em branco (apague todo seu text). Além disto, crie um outro botão (chame-o de botPergunta) e coloque nele um caption de “?”. Este botão mostrará uma caixa de mensagem com o nome do usuário e serve apenas para mostrar os tais dos “níveis” do programa.

Adiante. Vamos colocar algum Código no Evento Change da txtNome. O vento change ocorre cada vez que o texto de uma TextBox muda.

Private Sub txtNome_Change()
Dim Nome As String
Nome = txtNome.Text ‘A variável Nome recebe a propriedade Text da
End Sub ‘txtNome

É fácil descobrir o que isto faz: cada vez que o texto da txtNome muda, ele é guardado na variável “Nome”. Normalmente só leríamos o valor da caixa quando realmente precisássemos dele, mas para o exemplo terá de ser assim.

No botPergunta coloque o seguinte:

Private Sub botPergunta_Click()
Dim Nome as String
MsgBox Nome
End Sub

MsgBox, é um comando que mostra uma caixa de mensagem. Seu uso mais simples é MsgBox “Texto”, onde Texto pode ser uma variável string ou o texto em si (colocado entre aspas).
Já sei! Quando clicarmos no “?”, vai aparecer uma caixa de mensagem contendo o nome escrito na caixa de texto.

Por quê?

Fácil. O texto da caixa de texto está na variável “Nome”. Depois, a MsgBox diz para mostrar o conteúdo da variável Nome!

Então execute e veja se dá certo.

A caixa de mensagem aparece vazia!

É por causa dos “níveis” do programa. Quando declaramos uma variável com um Dim, dentro de um subprocedimento (como fizemos agora), a variável só existe dentro daquele subprocedimento. Ela não está disponível para outras “Subs”. Além disto, quando a Sub que a continha acaba de ser executada, o valor da variável se perde, mesmo para futuras “chamadas” da mesma Sub (Este segundo problema pode ser solucionado declarando a variável com o comando Static, e não Dim).

Vamos solucionar nosso problema. Primeiro, vá nas duas Subs que criamos e recorte (Ctrl+X) a linha “Dim Nome as String” de ambas. Agora dê um duplo clique no Form (até agora só estamos usando um) para mostrar a janela de edição. Na “Caixa de Seleção” Object, no canto superior esquerdo, escolha “General”. Note que caixa “Proc:” vira “Declarations”. Agora, abaixo, cole (Ctrl+V) a linha Dim Nome as String. E teste o programa de novo. Deve ter funcionado. Quando declaramos variáveis na seção Declarations de um Form, aquela variável estará disponível para todas as Subs daquele Form.

E a segunda janela?

OK, crie um segundo Form. Basta clicar no primeiro botão da barra de ferramentas ou usar o menu Insert | Form. Coloque neste novo form o nome de JanSobre. Nele coloque uma Label (“lblObrigado”). No Evento Load deste form coloque o seguinte Código:

lblObrigado.Caption = Nome & “, obrigado por utilizar este programa.”

Uma OBSzinha: “&” é um operador que junta duas Strings em uma só (operadores são comandos que realizam operações – lógicas, matemáticas…-, como +, -, AND e o próprio &. ). Podemos usar “+” no lugar de “&”.

E na seção Declarations deste Form, coloque Dim Nome as String. Agora vamos “ligar” os dois forms. Volte ao primeiro form e inclua o seguinte Código ao botSobre:

Private Sub botSobre_Click()
janSobre.Show vbModal
End Sub

Isto mostrará a janSobre quando o botão for clicado. vbModal indica ao VB que esta janela será “Modal”. Depois, retire o vbModal e note a diferença. OBS: Em versões do VB anteriores à 4.0, use o número 1 no lugar de vbModal.

Analisando todas estas novas subs, a que conclusão chegastes?

Bem, a caption do lblObrigado deverá mostrar algo como: “João, obrigado por utilizar este programa.” Mas se der errado de novo não me surpreendo. Já deu para notar que adoras mostrar como não fazer… Mas vou executar.

E aí?

Deu errado. A Label mostrou apenas “, obrigado por utilizar este programa.”

É normal. Lembras que uma variável declarada na seção Declarations de um Form está disponível para todas as Subs do seu próprio form. Nós estamos usando dois forms; essencialmente é o mesmo problema que tivemos alguns parágrafos acima. E para problemas semelhantes, soluções semelhantes: declarar a variável em um nível “mais alto”. Só nos resta o terceiro e mais abrangente nível de programação: o nível que abrange todo o programa (o módulo).

Crie um Module. Use o menu Insert | Module, ou aquele botão da barra de ferramentas que parece uma aranha fantasiada para o carnaval. Neste module (as versões anteriores à 4.0 do VB chamavam de Global Module, ou algo assim), inclua a declaração da variável Nome:

Public Nome as String

Note que declaramos usando “Public”, que informa ao VB que esta variável será “Pública”, disponível para todas as Subs de todos os Forms deste programa. Agora, retire as duas linhas “Dim Nome as String” que estão nas seções Declarations de cada Form. Execute.

Funcionou!

Então, só para uma aparência mais bonitinha, aí vai um esquema dos níveis do programa:

Falta responder o que é escopo!

Escopo são os níveis do programa. Por exemplo, aqueles dois erros que tivemos durante o capítulo foram causados porque as variáveis estavam “fora de escopo”.

ESTRUTURAS E LOOPS

Loops e estruturas permitem que um Código VB (ou de qualquer outra linguagem) seja repetido várias vezes. Permitem também analisar dados e tomar decisões diferentes dependendo do resultado. Na verdade loops são criados por estruturas (as estruturas de loop).

Afinal, como é que eu faço para utilizar uma estrutura?

Não é difícil; as estruturas são criadas através de alguns grupos de comandos. A seguir listo e comento as estruturas disponíveis no VB.

If… Then… Else…

Isto, em bom português, quer dizer Se… Então… Senão… Eis um exemplo de como utilizá-la:

If MinhaVariavel <= 4 Then
Beep
ElseIf MinhaVariavel = 5 Then
Beep
Beep
Else
Beep
Beep
Beep
End If

Neste exemplo, se a MinhaVariavel for menor ou igual (<=) a 4, então um beep será emitido. O "bloco" ElseIf (em verde) é opcional. Ele serve para dizer que se MinhaVariavel for igual a 5, algo será feito (no caso, dois beeps serão emitidos). Podem ser incluídos quantos ElseIf forem desejados, mas talvez seja melhor usar a estrutura Select Case (veja adiante) do que vários ElseIf. O bloco em azul (Else), também opcional, será executado somente se nenhum dos blocos anteriores (If e ElseIf) for executados. End If finaliza a estrutura.
Select Case

Vamos direto ao exemplo:

Select Case MinhaVariavel
Case 0
Beep
Case Is <= 5
Beep
Beep
Case Else
Beep
Beep
Beep
End Select

Esta estrutura, inicialmente, “seleciona” o valor de MinhaVariavel. Depois verifica vários casos (quantos forem desejados). Caso MinhaVariavel seja igual a 0, um beep será emitido. Caso seja menor ou igual a 5, teremos dois beeps. O bloco Case Else, que é opcional e está em azul, será executado somente caso nenhum dos blocos case anteriores tenha sido executado. End Select finaliza a estrutura.

Do… Loop

Esta estrutura executa um certo grupo de comandos até (Until) ou enquanto (While) que uma certa condição é verdadeira. Por exemplo:

Randomize Timer
Contador = 0
Do While MinhaVariavel <> 5 ‘Enquanto MinhaVariavel <>5
Contador = Contador + 1
Aleatório = Int (Rnd * 10) ‘Sorteia número inteiro entre 0 e 9
If Aleatório = 5 Then
MinhaVariavel = 2
End If
Loop
MsgBox Str(Contador)

Aqui há algumas observações interessantes: a primeira é que é possível colocar estruturas dentro de outras. Aqui, tivemos uma If… Then… dentro de uma Do… Loop. Isto é chamado de estruturas aninhadas.

Quando o computador chega na linha Do While… ele verifica se a condição (MinhaVariavel <> 5 ) é verdadeira. Se for ele seguirá até encontrar o comando Loop. Aí ele volta à linha Do While… e o ciclo se repete enquanto a condição for verdadeira (quando for falsa, a execução segue na linha logo abaixo de Loop. Se tivéssemos usado Do Until ao invés de Do While, o loop seria executado até que a condição se tornasse verdadeira.
Continuando a análise: as linhas em azul criam um número aleatório. Note que se este número for 5, MinhaVariavel receberá o valor de 2 (que é diferente de 5 – satisfaz a condição do loop; na próxima vez que a execução chegar no Do While, o loop será encerrado). A variável Contador, inicializada em 0, é acrescida de 1 a cada execução do loop. No final, uma caixa de mensagem (MsgBox) é exibida mostrando quantas vezes o loop precisou ser executado.
Lembre-se que para testar este exemplo é preciso colocar o Código no Evento de algum objeto (como no Click de um botão).
Mais uma coisinha: dentro de uma estrutura Do… Loop pode ser colocado o comando Exit Do. Quando um Exit Do for encontrado, a execução automaticamente vai para a linha logo a seguir do Loop, independentemente da condição estar falsa ou verdadeira.
For… Next

A estrutura For… Next é ideal para realizar tarefas repetitivas. Que tal somar todos os números pares de 50 a 100 (50+52+54+…+100)?

For Cont = 50 To 100 Step 2
Soma = Soma + Cont
Next Cont
MsgBox Str(Soma)

Não é difícil entender este programinha: O laço (laço é o mesmo que loop) iniciado pelo For utiliza uma variável (que eu chamei de Cont) que inicia em 50. Quando a execução chega no Next, volta à linha For… Ali, Cont será incrementado de 2 (“Step x” identifica de quanto será o incremento. A ausência do Step x é equivalente a Step 1). Quando Cont passar de 100 e a execução chegar à linha For Cont…, a execução continua a partir da linha logo após o Next Cont. É possível sair do loop antes que a variável contador chegue ao valor planejado. Basta que o computador veja o comando Exit For.
Bem, basicamente é só isso.
Na verdade existem outras estrutura.

OBSERVAÇÃO
Conhecendo o uso básico de objetos, o uso básico de variáveis as estruturas do VB e os níveis do programa, você já estará pronto para fazer programas bem bonitinhos. Como já disse antes, não pretendo analisar cada detalhe, cada controle do VB.

Tentar, errar, corrigir, errar de novo, corrigir de novo. Fazer programinhas simples, depois alguns mais complexos. Abrir exemplos e alterar. É assim que se chega lá.

SUBPROCEDIMENTOS E FUNÇÕES

Mas voltando aos subprocedimentos: você já sabe que quando o usuário interage com o seu programa (clicando em um botão, por exemplo) é gerado um Evento. Para responder a este Evento é executado um suprocedimento.
EXEMPLO
Então um subprocedimento é tudo aquilo que colocamos entre as linhas “Private Sub…” e “End Sub” de um “respondedor de Eventos”?

Bom, aquilo é um subprocedimento sim. Mas subprocedimentos não é só isto. Na verdade existem dois tipos de subprocedimentos: Subs e Functions.

Vamos a um exemplo (outro daqueles inúteis). Em um Form (Form1), coloque uma ScrollBar (horizontal ou vertical, tanto faz). Ajuste seu Name para “BarraRol”, seu Max para 15 e seu LargeChange para 5.

Abrindo um pequeno parênteses: as propriedades Max e Min de uma ScrollBar determinam o valor máximo e mínimo, respectivamente, que a ScrollBar pode possuir. A propriedade SmallChange determina de quanto será o incremento (ou decremento) quando uma daquelas setinhas nas pontas da ScrollBar é clicada. LargeChange determina de quanto será o incremento (ou decremento) quando a ScrollBar for clicada fora das setinhas ou daquela “caixinha” que pode ser arrastada. Coloque no Form1 também uma Label (LabelValor) e ajuste seu Caption para 0. Agora, ao Evento Change da BarraRol, acrescente o seguinte Código:

Private Sub BarraRol_Change()
LabelValor.Caption = Str(BarraRol.Value)
End Sub

Neste exemplo criamos uma Sub (note que todo o Código está delimitado pelas linhas Private Sub… e End Sub).

E aquele “Private” tem algo a ver com escopo?

Tem sim. Agora inclua um botão (Zerador será seu name). Quando ele for clicado a ScrollBar irá “zerar”:

Private Sub Zerador_Click()
BarraRol.Value = 0
End Sub

Certo. Agora, vamos incrementar. Coloque um Shape (é aquele botão da caixa de ferramentas com o desenho de um circulo e dois quadradinhos coloridos) no Form1. Nomeie este Shape como Figura e seu FillColor para azul (&H00FF0000&) e seu FillStyle para 0 (Solid). O Shape fica azul.

Digamos que a cor deste Shape mude a cada vez que o botão for clicado e cada vez que a ScrollBar tenha seu valor modificado. Como faríamos isto?

Daria para colocar o Código necessário nos subprocedimentos BarraRol_Change e Zerador_Click.

Daria, mas estaríamos escrevendo o mesmo Código duas vezes. Isto não é muito interessante. A melhor solução é criar um subprocedimento (uma Sub) que não esta diretamente associado a um Evento. Para fazer isto vá até a janela de edição do Form1 (dando um duplo clique em qualquer controle ou no próprio Form1). Na caixa de seleção “Object” escolha General. Aí, entre com o seguinte Código:

Private Sub MudaCor()
Figura.FillColor = Figura.FillColor Xor &HFFFFFF
End Sub

Note que ao terminar de escrever a primeira linha o VB automaticamente inclui o “End Sub”. O que este subprocedimento faz é uma operação lógica XOR entre a cor atual do Shape e o número &HFFFFFF (255 em hexadecimal). Este novo valor é atribuído à cor do Shape. Devido às características do operador XOR, a cor ficará variando entre o azul original e o amarelo.
Agora só falta fazer com que esta Sub seja “chamada” nos momentos adequados. Isto é feito alterando as Subs BarraRol_Change e Zerador_Click. Elas Ficarão assim:
Private Sub BarraRol_Change()
LabelValor.Caption = Str(BarraRol.Value)
MudaCor
End Sub

Private Sub Zerador_Click()
BarraRol.Value = 0
MudaCor
End Sub

Na verdade só incluímos a chamada à Sub MudaCor que acabamos de criar.
Outra coisinha: uma Sub pode ser escrita tanto na seção General de um Form como em um Module.

E aquela história de escopo?

Ah, sim. Subprocedimentos também têm escopo. Um subprocedimento (seja Sub ou Function), quando declarado como Private pode ser “chamado” apenas por subprocedimentos que estejam no mesmo Form ou Module que ele. Para permitir que seu subprocedimento seja chamável de qualquer ponto do programa declare-o como Public (é idêntico ao que fazemos com variáveis).

APROFUNDANDO

Talvez você esteja pensando o que faz aquele par de parênteses vazios ao lado de cada nome de subprocedimento.

Dentro daqueles parênteses colocamos algum parâmetro que será utilizado pelo subprocedimento. Vamos tornar nosso programa-exemplo ainda mais fantástico: Quando a Sub MudaCor for chamada pela ScrollBar, a espessura da borda do Shape ficará com uma espessura igual ao seu Value. Quando for chamada pelo Botão, a borda ficará maior ainda (Uau!).
A primeira coisa a fazer é rescrever a Sub MudaCor:

Private Sub MudaCor(MeuValor As Byte)
Dim c As Byte
Figura.FillColor = Figura.FillColor Xor &HFFFFFF
Figura.BorderWidth = MeuValor
End Sub

Agora sim! Temos alguma coisa dentro dos parênteses!
Aquilo que está entre os parênteses significa o seguinte: quando esta Sub for chamada, deverá ser passado um valor (no caso um número, um Byte). Este valor estará disponível para a Sub na forma de uma variável (no exemplo, “MeuValor”). Não é difícil compreender isto analisando o exemplo. A estes valores “passados” a um subprocedimento damos o nome de argumento.
O próximo passo é alterar os outros subprocedimentos (os associados a Eventos) para que eles forneçam o argumento necessário:

Private Sub BarraRol_Change()
LabelValor.Caption = Str(BarraRol.Value)
MudaCor BarraRol.Value
End Sub

Private Sub Zerador_Click()
BarraRol.Value = 1
MudaCor 30
End Sub

Na primeira Sub é passado como argumento a propriedade Value da BarraRol. Na segunda é passado um número (30) diretamente.
Ainda é preciso ajustar o Min da BarraRol para 1. Isto evitará que o programa tente dar à Border do Shape um valor igual a 0 (o que geraria um erro).

Ainda é interess

Visual Basic – Funções Internas

0

Autoria: Alanderson de Freitas Marron

ABS
Categoria: Função Matemática
Finalidade: Retorna o valor absoluto de um número.
Sintaxe: ABS(Número)
Em que:
• Número – Qualquer valor numérico válido. Se Número contém Null, o valor retornado pela função será Null também. Caso Número seja igual a zero, este será o valor de retorno da função.
Exemplo:
Teste = ABS(2.99) ‘Teste = 2.99
Teste = ABS(-2.99) ‘Teste = 2.99
Array
Categoria: Funções de Array
Finalidade: Retorna um dado Variant contendo um Array.
Sintaxe: Array(Lista de Argumentos)
Em que:
• Lista de Argumentos – Consiste em uma série de argumentos separados por vírgulas. Se nenhum argumento for fornecido à função, será criado um array de comprimento zero.
Exemplo:
MeuArray(“Jan”,”Fev”,“Mar”,“Abr”) ‘MeuArray(2) = “Fev”
MeuArray(1,3,5,7) ‘MeuArray(3) = 5
Asc
Categoria: Funções de Conversão de Dados
Finalidade: Retorna o código ASCII corresponde quente do primeiro caractere da string indicada.
Sintaxe: ASC(String)
Em que:
• String – O argumento string é qualquer expressão de caracteres válida. Se a string especificada não contiver caracteres, ocorrerá um erro de Run-Time.
Exemplo:
Teste = Asc(“A”) ‘Teste = 65
Teste = Asc(“a”) ‘Teste = 97
Teste = Asc(“ASCII”) ‘Teste = 65
Atn
Categoria: Funções Matemáticas
Finalidade: Calcula o Arco Tangente de um número.
Sintaxe: Atn(Número)
Em que:
• Número – A função Atn retorna o número de radianos referentes ao arco tangente do ângulo especificado.
Exemplo:
Teste = Atn(30) ‘Teste = 1.53747533091665
Teste = Atn(45) ‘Teste = 1.54857776146818
Cbool
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão em Boolean.
Sintaxe: CBool(Expressão)
Em que:
• Expressão – Se o valor da expressão resultante for zero, o valor False será retornado pela função Cbool; caso contrário, a resposta será True.
Exemplo:
Primeiro = 10
Segundo = 10
Valor = 0

Teste = Cbool(Primeiro = Segundo) ‘Teste = True
Teste2 = Cbool(Valor) ‘Teste2 = False
Cbyte
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão em Byte.
Sintaxe: CByte(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido.
Exemplo:
Dim Teste as Double

Teste = 222.3322
MeuByte = CByte(Teste) ‘MeuByte = 222
CCur
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão em Currency.
Sintaxe: CCur(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido ou expressão string.
Exemplo:
Dim Dado as Double

Dado = 656.123456
Dado = Dado * 2
MinhaMoeda = Ccur(Dado) ‘MinhaMoeda = 1312.2469
CDate
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão no tipo de dados Date.
Sintaxe: CDate(Data)
Exemplo:
Hoje = “June 18, 1999″
DataCurta = CDate(Hoje) ‘DataCurta = 18/06/99
CDbl
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão em Double.
Sintaxe: CDbl(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido ou expressão string.
Exemplo:
Dim MinhaMoeda As Currency
MinhaMoeda = 255.123456
Dado = CDbl(MinhaMoeda) ‘Dado = 255.1235
CDec
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão em Decimal.
Sintaxe: CDec(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido ou expressão string.
Exemplo:
Dim ValorTeste
MeuValor = 3.05E+15
ValorTeste = CDec(MeuValor) ‘ValorTeste= 3050000000000000
Choose
Categoria: Funções de Verificação
Finalidade: Seleciona e retorna um valor de uma lista de argumentos existente em função do índice passado.
Sintaxe: Choose(index, choice-1[, choice-2, … [,choice-n]])
Em que:
• Index – Expressão numérica ou campo que resulta em um valor entre 1 e o número de escolhas disponíveis.
• Choice – Expressão Variant contendo uma das possíveis escolhas.
Exemplo:
Teste = Escolha(2) ‘Teste = “Valor2”
Função Escolha:
Function Escolha(Indice As Integer)
Escolha = Choose(Indice, “Valor1”, “Valor2”, “Valor3”)
End Function
Chr
Categoria: Funções de Conversão de Dados
Finalidade: Retorna o caractere correspondente ao código ASCII informado.
Sintaxe: Chr(Código ASCII)
Exemplo:
Teste = Chr(65) ‘Teste = A
Teste = Chr(97) ‘Teste = a
Teste = Chr(64) ‘Teste = @
CInt
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão no tipo de dados Inteiro.
Sintaxe: CInt(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido ou expressão string.
Exemplo:
Dim Duplo As Double
Duplo = 8765.4321
Teste = CInt(Duplo) ‘Teste = 8765
CLng
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão no tipo de dados Longo.
Sintaxe: CLng(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido ou expressão string.
Exemplo:
Dim Dado As Double
Dado = 65432.123
Teste = CLng(Dado) ‘Teste = 65432
Command
Categoria: Funções de Sistema Operacional
Finalidade: Retorna o argumento informado na linha de comando utilizado na inicialização do Visual Basic ou de um programa executável desenvolvido nesta linguagem.
Sintaxe: Command
Exemplo:
Inicie a criação de um aplicativo qualquer e inclua os comandos abaixo na procedure Form_Load. A seguir, selecione o comando Options… no menu Tools, escolhendo em seguida a aba Advanced. Inclua o seguinte argumento na caixa de texto Command Line Arguments: Start. A seguir, execute seu aplicativo com e sem este argumento e veja o que acontece.
Dim Msg

If Command = “” Then
Msg = “Não existe uma linha de comando”
Else
Msg = “A linha de comando é: ” & Command
End If

MsgBox Msg
Cos
Categoria: Funções Matemáticas
Finalidade: Calcula o cosseno de um ângulo.
Sintaxe: Cos(Número)
Em que:
• Número – Pode ser qualquer expressão numérica válida que expresse um ângulo em radianos.
Exemplo:
Const PI = 3.14159265
Teste = Cos(PI) ‘Teste = -1
Teste = Cos(PI/2) ‘Teste = 1.79489651491878E-09
CSng
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão no tipo de dados Single.
Sintaxe: CSng(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido ou expressão string.
Exemplo:
Dim Teste As Double
Teste = 22.12345678
Teste = CSng(Teste) ‘Teste = 22.12346
CStr
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão no tipo de dados String.
Sintaxe: CStr(Expressão)
Em que:
• Expressão – O argumento da função poderá ser qualquer valor numérico válido ou expressão string.
Exemplo:
Dim Dado As Double
Dado = 555.4321
Teste = CStr(Dado) ‘Teste = “555.4321”
CurDir
Categoria: Funções de Sistema Operacional
Finalidade: Retorna a pasta (ou diretório) atual.
Sintaxe: CurDir[(Drive)]
Em que:
• Drive – Expressão string que especifica uma unidade de disco existente. Se a unidade não for especificada ou se a string for de tamanho zero, a função CurDir retornará o caminho (Path) para o drive atual.

Exemplo:
Teste = CurDir ‘Teste = C:WINDOWS
CVar
Categoria: Funções de Conversão de Dados
Finalidade: Converte uma expressão no tipo de dados Variant.
Sintaxe: CVar(Expressão)
Em que:
Expressão – Qualquer valor numérico válido ou expressão string.
Exemplo:
Dim Inteiro As Integer
Inteiro = 2222
Teste = CVar(Inteiro & “000”) ‘Teste = “2222000”
CVErr
Categoria: Funções de Conversão de Dados
Finalidade: Retorna o número do erro especificado pelo usuário
Sintaxe: CVErr(Número do Erro)
Você pode utilizar a função CVErr para definir seus próprios números de erro. Como você já deve ter notado ao longo de nosso estudo, sempre que ocorre um erro em tempo de execução, o VB exibe um bloco de diálogo que mostra o número do erro ocorrido e a mensagem correspondente a esse erro. Você também pode criar suas próprias mensagens de erro e com isso controlar o comportamento de seu aplicativo no caso da ocorrência de situações indesejadas. Você pode utilizar a função IsError para avaliar o erro ocorrido e tomar as devidas providências.
Exemplo:
Dado = TxtIn.TEXT ‘Entrada de Dado
Teste = CalculoGeral(Dado)

If IsError(Teste) Then ‘Se Teste é um Número de erro
Teste = CStr(Teste) ‘Converto no tipo de dados String
End If

TxtOut.TEXT = Teste

Função CalculoGeral:
Function CalculoGeral(Número)

If IsNumeric(Número) Then ‘Se é número processo normalmente
CalculoGeral = Número * 100
Else
CalculoGeral = CVErr(1000) ‘Define Número de Erro igual a 1000
End If

End Function
Date
Categoria: Funções de Data e Hora
Finalidade: Retorna a Data atual do sistema.
Sintaxe: Date
Exemplo:
Teste = Date ‘Teste = 04/10/99
DateAdd
Categoria: Funções de Data e Hora
Finalidade: Retorna um valor Variant contendo a data especificada acrescida do intervalo de tempo fornecido à função.
Sintaxe: DateAdd(Intervalo, Número, Data)
Em que:
• Intervalo – Expressão do tipo string indicando o intervalo de tempo a ser adicionado à data especificada. Pode ser horas, dias, semanas, meses, anos, etc., conforme especificado na seção ajustes, logo em seguida.
• Número -Expressão numérica indicando o número de intervalos de tempo que você deseja acrescer à data indicada. Ele pode ser positivo para indicar datas futuras ou mesmo negativo, obtendo datas já ocorridas.
• Data – Data ou nome de variável do tipo Date que será utilizada para o cálculo da função.
Ajustes:
Ajuste Descrição
yyyy Year (Ano)
q Quarter (Trimestre)
m Month (Mês)
y Day of year (Dia do Ano)
d Day (Dia)
w Weekday (Dia da Semana)
ww Week (Semana)
h Hour (Hora)
n Minute (Minuto)
s Second (Segundo)

Exemplo:
REM Acresce três anos à data atual
Teste = DateAdd(“yyyy”, 3, #10/04/99#) ‘Teste = 04/10/02

REM Diminui 6 meses da data atual
Teste = DateAdd(“m”, -6, #10/04/99#) ‘Teste = 04/04/99

REM Soma uma semana à data atual
Teste = DateAdd(“ww”, 1, #10/4/99#) ‘Teste = 11/10/99

Para efeito de cálculo, o VB considera os anos bissextos, de modo que o mês de fevereiro será considerado com 28 ou 29 dias de acordo com a data especificada e o intervalo de tempo informado.
DateDiff
Categoria: Funções de Data e Hora
Finalidade: Retorna o intervalo de tempo decorrido entre duas datas de acordo com a unidade de tempo especificada.
Sintaxe: DateDiff(Intervalo, Data1, Data2[, firstdayofweek[, firstweekofyear]])
Em que:
• Intervalo – Expressão do tipo string indicando o intervalo de tempo que será calculado entre Data1 e Data2. Pode ser horas, dias, semanas, meses, anos, etc., conforme especificado na seção ajustes, logo em seguida.
• Data1, Data2 – As duas datas entre as quais será calculado o intervalo de tempo decorrido.
• Firstdayofweek – Uma constante que define o primeiro dia da semana. Caso você não especifique, o domingo será considerado como primeiro dia. Veja a seção ajustes, logo em seguida, para maiores detalhes.
• Firstweekofyear – Esta constante define a primeira semana do ano. Se você não especificar este argumento, será considerada como a primeira do ano a semana em que ocorre o dia 1º de janeiro.
Ajustes:
Para Intervalo:
Ajuste Descrição
yyyy Year (Ano)
q Quarter (Trimestre)
m Month (Mês)
y Day of year (Dia do Ano)
d Day (Dia)
w Weekday (Dia da Semana)
ww Week (Semana)
h Hour (Hora)
n Minute (Minuto)
s Second (Segundo)
Para Firstdayofweek:
Ajuste Descrição
0 O atual do sistema
1 Domingo (default)
2 Segunda
3 Terça
4 Quarta
5 Quinta
6 Sexta
7 Sábado
Para Firstweekofyear:
Ajuste Descrição
0 O atual do sistema (se houver)

1 A semana em que ocorre dia 1º de janeiro

2 A primeira semana que tem pelo menos 4 dias do novo ano
3 A primeira semana que contiver sete dias do novo ano
Exemplo:
REM Dias decorridos de 1/1/99 até 4/10/99:
Teste = DateDiff(“d”, #1/1/99#, #10/4/99#) ‘Teste = 276

REM Horas decorridas entre 1/10/99 até 4/10/99:
Teste = DateDiff(“h”, #10/1/99#, #10/4/99#)‘Teste = 72

Se Data2 for menor que a Data1, o número de intervalos decorridos será negativo.
A opção Firstdayofweek afeta os cálculos efetuados com base nos intervalos de tempo “w” (dia da semana) e “ww” (Semana).
DatePart
Categoria: Funções de Data e Hora
Finalidade: Retorna a parte especificada de uma determinada data.
Sintaxe: DatePart(Intervalo, Data[, Firstdayofweek[, Firstweekofyear]])
Em que:
• Intervalo – Expressão do tipo string indicando o intervalo de tempo que será retornado pela função. Veja a seção Ajustes em seguida.
• Data – A data a ser avaliada pela função.
• Firstdayofweek – Uma constante que define o primeiro dia da semana. Caso você não especifique, o domingo será considerado como primeiro dia. Veja a seção ajustes, logo em seguida, para maiores detalhes.
• Firstweekofyear – Esta constante define a primeira semana do ano. Se você não especificar este argumento, será considerada como a primeira do ano a semana em que ocorre o dia 1o de janeiro.
Ajustes:
Esta função utiliza os mesmos ajustes da função DateDiff.
Exemplo:
REM Calcula a semana atual da data indicada
Teste = DatePart(“ww”, #10/4/99#) ‘Teste = 41
DateSerial
Categoria: Funções de Data e Hora
Finalidade: Retorna a data para o dia, mês e ano especificados.
Sintaxe: DateSerial(Ano, Mês, Dia)
Em que:
• Ano – Número entre 100 e 9999 inclusive.
• Mês – Qualquer expressão numérica.
• Dia – Qualquer expressão numérica.
Exemplo:
REM Retorna a data de 1º de maio de 1999
Teste = DateSerial(99, 5, 1) ‘Teste = 01/05/99
DateValue
Categoria: Funções de Data e Hora
Finalidade: Retorna uma data.
Sintaxe: DateValue(Data)
Em que:
• Data – Expressão string representando uma data. O VB pode manipular datas que vão de 1/1/100 até 31/12/9999! Você também pode utilizar qualquer expressão que represente data, hora ou ambas.
Exemplo:

REM Converte uma string numa data
Teste = DateValue(“6/22/99”) ‘Teste = 22/06/99
Day
Categoria: Funções de Data e Hora
Finalidade: Retorna um número de 1 a 31 representando o dia do mês.
Sintaxe: Day(Data)
Exemplo:
Teste = Day(#4/10/99#) ‘Teste = 10
DDB
Categoria: Funções Financeiras
Finalidade: Calcula a depreciação de um ativo pelo método do Declínio de Balanço.
Sintaxe: DDB(Cost, Salvage, Life, Period[, Factor])
Em que:
• Cost – Custo inicial do bem.
• Salvage – Valor do bem ao final de sua vida útil.
• Life – Vida útil do bem.
• Period – Período de depreciação.
• Factor – Taxa de declínio do balanço.
Exemplo:
Teste = DDB(1000, 100, 5, 1) ‘Teste = 400
Dir
Categoria: Funções de Sistema Operacional
Finalidade: Retorna o nome dos arquivos ou diretórios que combinam com o padrão especificado ou atributo de arquivo, ou volume de um drive.
Sintaxe: Dir[(Pathname[, Attributes])]
Em que:
• Pathname – Expressão string que especifica o nome do arquivo. Essa string também pode conter o caminho completo (drive e diretório) do arquivo procurado. Se o caminho não for encontrado, Null será retornado.
• Attributes – Constante ou expressão numérica que indica os atributos do arquivo selecionado. Se omitido, somente serão retornados os arquivos normais, ou seja, arquivos ocultos de sistema e diretórios não serão exibidos.
Ajustes:
Ajuste Descrição
0 Normal
2 Hidden (Oculto)
4 System (Sistema)
8 Volume
16 Diretório
Exemplo:
Teste = Dir(“C:WINDOWSWIN.INI”) ‘Teste = “WIN.INI”
Para múltiplos arquivos:
Teste = Dir(“C:WINDOWS*.INI”)
List1.AddItem Teste

Do While Teste <> Empty
Teste = Dir
List1.AddItem Teste
Loop

Quando você utiliza caracteres curinga como * e ?, o VB retorna o primeiro nome de arquivo que atende às condições de busca indicadas na função Dir. A partir daí, basta chamar a função Dir sem argumentos para que os próximos arquivos que atendem à condição proposta sejam exibidos.
Quando não existirem mais arquivos, a função Dir retornará uma string de comprimento zero.
DoEvents
Categoria: Funções de Sistema Operacional
Finalidade: Interrompe momentaneamente a execução de seu aplicativo para que o sistema operacional possa processar outros eventos pendentes.
Sintaxe: DoEvents( )
Exemplo:
For a = 1 To 30000
If a Mod 1000 = 0 Then ‘Se o loop foi repetido 1000 vezes.
DoEvents ‘Passa o controle para o sistema operacional.
End If
Next a

Quando seu aplicativo realiza tarefas muito demoradas, o sistema operacional deixa de processar a ocorrência de alguns eventos, que ficam pendentes em uma fila de execução.
É mais ou menos o que ocorre quando você dá dois cliques sobre o ícone do VB para inicializá-lo. Enquanto o seu micro vai carregando este aplicativo, as teclas que você está acionando e os cliques de mouse dados sobre a tela são ignorados pelo Windows. Depois que a sua aplicação já está carregada é que o Windows processa os eventos pendentes.
A função DoEvents também retorna o número de formulários abertos no Windows.
Environ
Categoria: Funções de Sistema Operacional
Finalidade: Retorna a string associada a uma variável de ambiente do sistema operacional (como Path e Prompt, por exemplo).
Sintaxe: Environ({Envstring | Número})
Em que:
• Envstring – Expressão string contendo o nome da variável de ambiente.
• Número – Expressão numérica correspondente à ordem da variável na tabela de variáveis de ambiente.
Exemplo:
Teste = Environ(“PATH”)
REM Teste = C:WINDOWS;C:WINDOWSCOMMAND;C:;C”:DOS;C:UTIL

Teste = Environ(“TEMP”) ‘Teste = C:WINDOWSTEMP

Se a variável de ambiente especificada não for encontrada, a função Environ retornará uma string de comprimento zero.
Error
Categoria: Funções de Sistema Operacional
Finalidade: Retorna a mensagem de erro que corresponde a um dado número de erro.
Sintaxe: Error[(Errornumber)]
Em que:
• Errornumber – Qualquer número de erro válido para o Visual Basic. Um número de erro corresponde ao valor da propriedade Number do objeto Err, e seus valores válidos vão de 0 a 65535, inclusive. Quando combinado com a propriedade Name do objeto Err, esse número representa uma mensagem de erro particular. Se Errornumber é um número de erro válido, porém indefinido, a função Error retorna a string definida pelo usuário. Se Errornumber não é um número de erro válido, um erro ocorre. Se Errornumber é omitido, a mensagem correspondente ao erro de Run-time mais recente é exibida. Se nenhum erro de Run-time ocorreu recentemente ou o número do erro for 0, a função Error retornará uma string de comprimento zero.
Exemplo:
Teste = Error(5) ‘Teste = Invalid procedure call
Teste = Error(6) ‘Teste = Overflow
Teste = Error(7) ‘Teste = Out of memory
Para erros indefinidos:
Teste = Error(4)
Rem Teste = Application-defined or object-defined error
Exp
Categoria: Funções Matemáticas
Finalidade: Retorna o valor de e (base de um logaritmo natural) elevado a uma potência qualquer.
Sintaxe: Exp(Número)
Em que:
• Número – Qualquer expressão numérica válida.
Exemplo:
Teste = Exp(1) ‘Teste = 2.71828182845905
Teste = Exp(2) ‘Teste = 7.38905609893065
Teste = Exp(-2) ‘Teste = 0.13533528323661
O valor de e é aproximadamente 2,718282. Se o valor do número for superior a 709,782712893, ocorrerá um erro de overflow.
FileDateTime
Categoria: Funções de Acesso a Arquivos
Finalidade: Retorna a data e hora em que o arquivo foi criado ou modificado pela última vez.
Sintaxe: FileDateTime(Pathname)
Em que:
• Pathname – Expressão string que especifica o nome do arquivo. Essa string também pode conter o caminho completo (drive e diretório) do arquivo procurado.
Exemplo:
Teste = FileDateTime(“C:WINDOWSWIN.COM”)
REM Teste = 15/05/98 20:01:00
FileLen
Categoria: Funções de Acesso a Arquivos
Finalidade: Retorna um valor Long contendo o tamanho do arquivo especificado em bytes.
Sintaxe: FileLen(Pathname)
Em que:
• Pathname – Expressão string que especifica o nome do arquivo. Essa string também pode conter o caminho completo (drive e diretório) do arquivo procurado.
Exemplo:
Teste = FileLen(“C:WINDOWSWIN.COM”) ‘Teste = 25271
Fix
Categoria: Funções Matemáticas
Finalidade: Retorna a parte inteira de um número.
Sintaxe: Fix(Número)
Em que:
• Número – Qualquer expressão numérica válida. Se número contém Null, o valor de retorno será Null também.
Exemplo:
Teste = Fix(12.556) ‘Teste = 12
Teste = Fix(-12.556) ‘Teste = -12
Teste = Fix(1.6) ‘Teste = 1
Format
Categoria: Funções de Data e Hora
Finalidade: Formata uma expressão de acordo com as instruções definidas pelo usuário.
Sintaxe: Format(Expressão[, Formato[, Firstdayofweek[, Firstweekofyear]]])
Em que:
• Expressão – Qualquer expressão válida.
• Formato – Uma expressão de formato definida pelo usuário. Veja na seção Ajustes em seguida, os formatos existentes.
• Firstdayofweek – Uma constante que define o primeiro dia da semana. Veja a função DateDiff para maiores detalhes.
• Firstweekofyear – Esta constante define a primeira semana do ano. Veja a função DateDiff para maiores detalhes.
Ajustes:
Números:
Nome do Formato Descrição
General Number Exibe o número como ele é, ou seja, sem separadores de milhares.
Currency Exibe o número com separadores de milhares, símbolo de moeda e dois dígitos à direita do ponto decimal.
Fixed Exibe pelo menos um dígito à esquerda e dois à direita do ponto decimal.
Standard Exibe o número com separadores de milhares, com pelo menos um dígito à esquerda e dois à direita do ponto decimal.
Percent Exibe o número multiplicado por 100 e com o símbolo de porcentagem(%) exibido à sua direita. Sempre exibe duas casas decimais.
Scientific Usa a notação científica padrão.

Yes/No Exibe “No” se o número for zero. Caso contrário, exibe “Yes”.
True/False Exibe “False” se o número for zero. Caso contrário, exibe “True”.
On/Off Exibe “Off” se o número for zero. Caso contrário, exibe “On”.
Data e Hora:
Nome do Formato Descrição
General Date Para números reais exibe a data e hora, como em 22/6/96 08:33 PM. Se o número não possuir nenhuma parte fracionária, exibe somente a data, como em 22/6/96. Se não houver parte inteira, exibe apenas a hora, como em 08:33 PM. A exibição da data obedece aos ajustes atuais de seu sistema.
Long Date Exibe a data de acordo com o ajuste atual de seu sistema para datas longas. Ex. Sábado, 22 de junho de 1996.
Medium Date Exibe a data de acordo com o ajuste atual de seu sistema para datas médias. Ex. 22-Jun-96.
Short Date Exibe a data de acordo com o ajuste atual de seu sistema para datas curtas. Ex. 22/06/96.
Long Time Exibe a hora de acordo com o ajuste atual de seu sistema para horas longas. Ex. 20:33:51.
Medium Time Exibe a hora de acordo com o ajuste atual de seu sistema para horas médias. Ex. 08:33 PM.
Short Time Exibe a hora de acordo com o ajuste atual de seu sistema para horas curtas. Ex. 20:33.
Exemplo:
Teste = Format(12345678, “General Number”)
REM Teste = 12345678

Teste = Format(12345678, “Currency”)
REM Teste = R$12.345.678.00

Teste = Format(12345678, “Fixed”)
REM Teste = 12345678.00

Teste = Format(12345678, “Standard”)
REM Teste = 12.345.678.00
Teste = Format(12345678, “Scientific”)
REM Teste = 1.23E+07

Teste = Format(12345678, “Yes/No”)
REM Teste = Yes

Teste = Format(#22/6/96#, “Long Date”)
REM Teste = Sábado, 22 de Junho de 1996

Teste = Format(#22/6/96#, “Medium Date”)
REM Teste = 22-Jun-96

Teste = Format(#22/6/96#, “Short Date”)
REM Teste = 22/06/96

Teste = Format(“20:33”,”Long Time”)
REM Teste = 20:33:00

Teste = Format(“20:33”,”Medium Time”)
REM Teste = 08:33 PM

Teste = Format(“20:33”,”Short Time”)
REM Teste = 20:33
FV
Categoria: Funções Financeiras
Finalidade: Calcula o Valor Futuro de uma anuidade ou prestação.
Sintaxe: FV(Rate, Nper, Pmt[, Pv[, Type]])

Em que:
• Rate – Taxa de juros no período.
• Nper – Número total de pagamentos.
• Pmt – Pagamento a ser feito em cada período.
• Pv – Valor presente de uma série de pagamentos.
• Type – Número indicando quando os pagamentos serão feitos. Use 0 se os pagamentos ocorrem no fim do período e 1 se os pagamentos serão feitos antecipadamente. Se omitido, 0 é assumido.
Exemplo:
Rem Quanto obterei se depositar $100 por seis meses a
REM uma taxa de 2% ao mês?
Teste = FV(0.02, 6, -100) ‘Teste = 630.81

Rem Resposta: $ 630.81
GetAttr
Categoria: Funções de Acesso a Arquivos
Finalidade: Retorna um número que representa os atributos de um arquivo ou diretório.
Sintaxe: GetAttr(Pathname)
Em que:
• Pathname – Expressão string que especifica o nome do arquivo. Essa string também pode conter o caminho completo (drive e diretório) do arquivo procurado. Se o caminho não for encontrado, Null será retornado.
Valores de Retorno:
Valor Descrição
0 Normal
1 Read-Only (Somente Leitura)
2 Hidden (Oculto)
4 System (Sistema)
16 Diretório
32 O arquivo foi alterado após o último backup
Exemplo:
Teste = GetAttr(“C:IO.SYS”) ‘Teste = 7
Rem O Arquivo IO.SYS é Read-only, Hidden e System ao mesmo tempo
Rem por isso 1 + 2 + 4 = 7

Teste = GetAttr(“C:WINDOWS”) ‘Teste = 16
Hex
Categoria: Funções de Conversão de Dados
Finalidade: Retorna uma string representando o valor hexadecimal de um número.
Sintaxe: Hex(Número)
Em que:
• Número – Qualquer expressão numérica válida.
Exemplo:
Teste = Hex(15) ‘Teste = F
Teste = Hex(5) ‘Teste = 5
Teste = Hex(255) ‘Teste = FF
Hour
Categoria: Funções de Data e Hora
Finalidade: Retorna o número da hora (de 0 a 23) de uma hora especificada.
Sintaxe: Hour(Time)
Em que:
• Time – Qualquer expressão numérica ou string que possa representar um intervalo de tempo. Se Time contém Null, o valor de retorno da função será Null também.
Exemplo:
Teste = Hour(#8:33:17 PM#) ‘Teste = 20
IIf
Categoria: Funções de Verificação
Finalidade: Retorna uma de duas partes, dependendo da avaliação de uma expressão.
Sintaxe: IIf(Expressão, Truepart, Falsepart)

Em que:
• Expressão – Expressão a ser avaliada.
• Truepart – Valor ou expressão retornada se a expressão avaliada for verdadeira.
• Falsepart – Valor ou expressão retornada se a expressão avaliada for falsa.
Exemplo:
Dado = 100
Teste = IIf(Dado > 10, “Maior que Dez”,“Menor que Dez”)
Rem Teste = “Maior que Dez”
InputBox
Categoria: Funções de Sistema Operacional
Finalidade: Exibe uma caixa de diálogo para que o usuário possa digitar uma resposta qualquer. Após escolher um dos botões disponíveis, o VB retorna o valor digitado.
Sintaxe: InputBox(Prompt[, Title][, Default][, Xpos][, Ypos])
Em que:
• Prompt – Expressão string que será exibida como mensagem na caixa de diálogo. O comprimento máximo da mensagem é de 1024 caracteres. Você pode quebrar a mensagem em várias linhas utilizando a combinação de caracteres de retorno de carro Chr(13) e mudança de linha Chr(10), como em (Chr(13) & Chr(10)).
• Title – Expressão string que será exibida na barra de título da caixa de diálogo. Se você omitir este argumento, o nome exibido na barra de título será o nome de sua aplicação.
• Default – Expressão string que será retornada como default caso o usuário não digite nenhum dado na caixa de diálogo. Se você omitir este argumento, a textbox da caixa de diálogo será exibida vazia.
• Xpos – Expressão numérica que especifica em twips a distância horizontal entre a borda esquerda da tela e da caixa de diálogo. Se você omitir este argumento, a caixa de diálogo será centralizada horizontalmente.
• Ypos – Expressão numérica que especifica em twips a distância vertical entre a borda superior da caixa de diálogo e o topo da tela. Se você omitir este argumento, a caixa de diálogo será centralizada verticalmente.
InStr
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna a posição da primeira ocorrência de uma string dentro de outra.
Sintaxe: InStr([Início, ]String1, String2[, Compare])
Em que:
• Início – Expressão numérica que indica a posição inicial de cada busca. Se omitido, a busca começa desde a primeira posição.
• String1 – String em que é feita a procura.
• String2 – Expressão string que está sendo procurada.
• Compare – Especifica o tipo de comparação a ser efetuado entre as strings.
Exemplo:
Teste = InStr(“Casa”, “as”) ‘Teste = 2
Rem A string “as” foi localizada a partir da segunda posição em “Casa”

Teste = InStr(“Casamento”, “t”) ‘Teste = 8
Rem A string “t” foi localizada na oitava posição de “Casamento”

Teste = InStr(“Casa”, “z”) ‘Teste = 0
Rem A string “z” não foi localizada em “Casa”
Int
Categoria: Funções Matemáticas
Finalidade: Retorna a parte inteira de um número.
Sintaxe: Int(Número)
Em que:
• Número – Qualquer expressão numérica válida. Se número contém Null, o valor de retorno será Null também.
Exemplo:
Esta função opera de forma idêntica à função Fix.
IsArray
Categoria: Funções de Verificação
Finalidade: Retorna um valor Boolean indicando se uma determinada variável é um Array.
Sintaxe: IsArray(Varname)
Em que:
• Varname – Qualquer variável de memória.
Exemplo:
Dim MeuArray(2) As Integer, Nome as String
Teste = IsArray(Nome) ‘Teste = False
Teste = IsArray(MeuArray) ‘Teste = True
IsDate
Categoria: Funções de Verificação
Finalidade: Retorna um valor Boolean indicando se uma determinada expressão pode ser convertida em uma data.
Sintaxe: IsDate(Expressão)
Em que:
• Expressão – Qualquer data ou string que possa ser reconhecida como uma data ou hora válida.
Exemplo:
Dado = “22/6/96”
Mens = “hoje”
Teste = IsDate(Dado) ‘Teste = True
Teste = IsDate(Mens) ‘Teste = False
IsEmpty
Categoria: Funções de Verificação
Finalidade: Retorna um valor Boolean indicando se uma determinada variável foi inicializada ou não.
Sintaxe: IsEmpty(Expressão)
Em que:
• Expressão – Qualquer expressão numérica ou string que possa ser reconhecida como um nome de variável.
Exemplo:
Teste = IsEmpty(Dado) ‘Teste = True
Dado = Null
Teste = IsEmpty(Dado) ‘Teste = False
IsError
Categoria: Funções de Verificação
Finalidade: Retorna um valor Boolean indicando se uma determinada expressão é um valor de erro.
Sintaxe: IsError(Expressão)
Em que:
• Expressão – Deve ser do tipo de dados Variant.
Exemplo:
MeuErro = CVErr(212)
Teste = IsError(MeuErro) ‘ Teste = True

MeuErro = 212
Teste = IsError(MeuErro) ‘ Teste = False
IsMissing
Categoria: Funções de Verificação
Finalidade: Retorna um valor Boolean indicando se um argumento opcional foi passado para uma procedure ou não.
Sintaxe: IsMissing(Nome do Argumento)
Em que:
• Nome do Argumento – Nome de um argumento opcional em uma procedure.
A função IsMissing retorna um valor True se o argumento especificado não foi passado à função; caso contrário, a resposta será False.
Exemplo:
Function Calcula(Optional Valor)
If IsMissing(valor) Then
MsgBox(“Não recebi o argumento valor!”)
Exit
Else
Valor = ((Valor / 100) + 1) ^ 1.12
Calcula = Valor
End If
End Function
IsNull
Categoria: Funções de Verificação
Finalidade: Retorna um valor Boolean indicando se uma expressão contém dados inválidos (Null).
Sintaxe: IsNull(Expressão)
Em que:
• Expressão – Qualquer valor numérico ou expressão string.
Se a expressão avaliada tiver dados inválidos (Null), a função resultará em True; caso contrário, o valor retornado será False.
Exemplo:
Dado = “”
Teste = IsNull(Dado) ‘Teste = False

Dado = Null
Teste = IsNull(Dado) ‘Teste = True.
IsNumeric
Categoria: Funções de Verificação
Finalidade: Retorna um valor Boolean indicando se uma determinada expressão pode ser avaliada como um valor numérico.
Sintaxe: IsNumeric(Expressão)
Em que:
• Expressão – Qualquer valor numérico ou expressão string.
Exemplo:
Dado = “100”
Teste = IsNumeric(Dado) ‘Teste = True

Dado = “cem “
Teste = IsNumeric(Dado) ‘Teste = False
LBound
Categoria: Funções de Array
Finalidade: Retorna o menor elemento da dimensão especificada de um determinado Array.
Sintaxe: LBound(Arrayname[, Dimensão])
Em que:
• Arrayname – Nome da variável array.
• Dimensão – Número que indica que dimensão do array está sendo inspecionada. Utilize 1 para a primeira dimensão, 2 para a segunda e assim por diante.
Exemplo:
Dim Dado(5 To 10)
Teste = LBound(Dado, 1) ‘Teste = 5
LCase
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma string convertida em letras minúsculas.
Sintaxe: LCase(String)
Em que:
• String – Qualquer expressão string válida.
Somente as letras maiúsculas serão convertidas em minúsculas. Os demais caracteres, como letras minúsculas, números e sinais, permanecem inalterados.
Exemplo:
Dado = “CAIXA ALTA”
Teste = LCase(Dado) ‘Teste = “caixa alta”
Left
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna o número especificado de caracteres a partir do lado esquerdo de uma string.
Sintaxe: Left(String, Comprimento)
Em que:
• String – Expressão string da qual os caracteres serão retornados. Comprimento – Expressão numérica indicando quantos caracteres serão retornados. Se igual a 0, uma string de tamanho zero será retornada. Se o comprimento for maior que o número de caracteres da string, toda ela será retornada.

Exemplo:
Dado = “Visual Basic 4.0”
Teste = Left(Dado, 1) ‘Teste = “V”
Teste = Left(Dado, 6) ‘Teste = “Visual”
Teste = Left(Dado, 10) ‘Teste = “Visual Bas”
Len
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna o número de caracteres em uma string ou o número de bytes requeridos para armazenar uma variável.
Sintaxe: Len(String | Varname)
Em que:
• String – Qualquer expressão string válida. Se a string contém Null, Null é retornado.
• Varname – Qualquer nome de variável válido. Se Varname contém Null, Null é retornado. Se Varname é do tipo de dados Variant, Len trata a variável como uma string, retornando o número de caracteres que ela contém.
Exemplo:
Dado = “Estudo de Len”
Teste = Len (Dado) ‘Teste = 13
Teste = Len(“Visual”) ‘Teste = 6
Teste = Len(“Visual Basic”) ‘Teste = 12
LoadPicture
Categoria: Funções de Sistema Operacional
Finalidade: Carrega uma imagem dentro de um objeto Form object, Controle PictureBox ou controle Image.
Sintaxe: LoadPicture([Stringexpression])
Em que:
• Stringexpression – Nome do arquivo gráfico a ser carregado.
Os formatos de arquivo suportados pelo Visual Basic são os seguintes: Bitmap (.BMP), Icon (.ICO), Run-Length Encoded (.RLE) e Metafile (.WMF).
Exemplo:
Rem Para exibir a imagem como fundo de um Form, PictureBox ou controle
Rem Image atribua a figura à propriedade Picture.
Form1.Picture = LoadPicture(“PARTY.BMP”)

Rem Para atribuir um ícone a um formulário ajuste a propriedade Icon:
Form1.Icon = LoadPicture(“PHONE01.ICO”)
Log
Categoria: Funções Matemáticas
Finalidade: Calcula o logaritmo natural de um número.
Sintaxe: Log(Número)
Em que:
• Número – Qualquer expressão numérica válida maior que zero.
Exemplo:
Teste = Log(0) ‘Teste = 1
Teste = Log(5) ‘Teste = 1.6094379124341
LTrim
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma cópia de uma string eliminando os espaços em branco existentes entre o início da string e o primeiro caractere.
Sintaxe: LTrim(String)
Em que:
• String – Qualquer expressão string válida. Se a string contém Null, Null é retornado.
Exemplo:
Dado = “ Casa”
Teste = LTrim(Dado) ‘Teste = “Casa”
Mid
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna o número especificado de caracteres de uma string.
Sintaxe: Mid(String, Start[, Length])
Em que:
• String – Qualquer expressão string válida. Se a string contém Null, Null é retornado.
• Start – Posição inicial a partir da qual os caracteres serão selecionados. Se a posição inicial for maior que o número de caracteres da string, uma string de tamanho zero será retornada.
• Length – Número de caracteres que serão selecionados. Se omitido, todos os caracteres desde a posição inicial especificada até o fim dela serão selecionados.
Exemplo:
Dado = “Visual Basic”
Teste = Mid(Dado,1, 3) ‘Teste = “Vis”
Teste = Mid(Dado,4) ‘Teste = “ual Basic”
Teste = Mid(Dado,5,5) ‘Teste = “al Ba”
Minute
Categoria: Funções de Data e Hora
Finalidade: Retorna o número de minutos da hora especificada (de 0 a 59)
Sintaxe: Minute(Time)
Em que:
• Time – Qualquer expressão numérica ou string que possa representar um intervalo de tempo. Se Time contém Null, o valor de retorno da função será Null também.
Exemplo:
Teste = Minute(#8:33:17 PM#) ‘Teste = 33
Month
Categoria: Funções de Data e Hora
Finalidade: Retorna o número do mês de uma determinada data (de 1 a 12).
Sintaxe: Month(Data)
Em que:
• Data – A data a ser avaliada pela função.
Exemplo:
Teste = Month(#22/06/96#) ‘Teste = 6
MsgBox
Categoria: Funções de Sistema Operacional
Finalidade: Exibe uma mensagem em um quadro de diálogo e espera que o usuário escolha um dos botões disponíveis. Após a seleção, o VB retorna um valor indicando o botão escolhido.
Sintaxe: MsgBox(Prompt[, Buttons][, Title])
Em que:
• Prompt – Expressão string que será exibida como mensagem na caixa de diálogo. O comprimento máximo da mensagem é de 1024 caracteres. Você pode quebrar a mensagem em várias linhas, utilizando a combinação de caracteres de retorno de carro Chr(13) e mudança de linha Chr(10), como em (Chr(13) & Chr(10)).
• Buttons – Expressão numérica que é a soma dos valores que especificam o número e tipo de botões a serem exibidos. Você também pode especificar o estilo de ícone a ser usado, o botão default e a modalidade da caixa de mensagem. Se omitido, o valor default para os botões é zero.
• Title – Expressão string que será exibida na barra de título da caixa de diálogo. Se você omitir este argumento, o nome exibido na barra de título será o nome de sua aplicação.
Ajustes:
Aparência:
Ajuste Descrição
0 Exibe somente o botão OK (default)
1 Exibe botões OK e Cancel
2 Exibe botões Abort, Retry e Ignore
3 Exibe Yes, No e Cancel
4 Exibe os botões Yes e No
5 Exibe Retry e Cancel

16 Exibe ícone de Parada Crítica
32 Exibe ícone de Pergunta
48 Exibe ícone de Atenção
64 Exibe ícone de Informação

0 O primeiro botão é default
256 O segundo botão é default
512 O terceiro botão é default

0 Aplicação modal. O usuário deve responder à mensagem exibida antes de prosseguir com a execução da aplicação atual.
4096 Sistema modal. Todas as aplicações são suspensas até o usuário responder à message box.

O primeiro grupo de valores descreve o número e o tipo de botões exibidos. O segundo grupo (16, 32, 48, 64) descreve o estilo do ícone exibido. O terceiro grupo (0, 256, 512) determina que botão é o default. O quarto e último grupo (0, 4096) determina a modalidade da caixa de diálogo. Você deve selecionar um número de cada grupo e somar todos para obter a aparência desejada para sua Message Box.
Valores de Retorno:
Valor Botão Escolhido
1 OK
2 Cancel
3 Abort
4 Retry
5 Ignore
6 Yes
7 No
Exemplo:
Rem Exibe botões OK e Cancel e ícone de Parada Crítica
Teste = MsgBox(“Teste”, 17, “MsgBox”)

Rem Exibe Yes/No numa janela de Atenção com o primeiro botão default
Teste = MsgBox(“Teste”, 68, “MsgBox”)
Now
Categoria: Funções de Data e Hora
Finalidade: Retorna a data e hora atuais do seu sistema.
Sintaxe: Now
Exemplo:
Teste = Now ‘Teste = 22/06/96 20:33:30
Oct
Categoria: Funções de Conversão de Dados
Finalidade: Retorna uma string representando o valor octal de um número.
Sintaxe: Oct(Número)
Em que:
• Número – Qualquer expressão numérica ou string válida.
Exemplo:
Teste = Oct(8) ‘Teste = 10
Teste = Oct(459) ‘Teste = 713
QBColor
Categoria: Funções de Sistema Operacional
Finalidade: Retorna o valor da cor RGB correspondente ao número de cor informado.
Sintaxe: QBColor(cor)
Em que:
Cor – Número de 0 a 15 conforme descrito na seção ajustes.
Ajustes:
Número Cor Número Cor
0 Black 8 Gray
1 Blue 9 Light Blue
2 Green 10 Light Green
3 Cyan 11 Light Cyan
4 Red 12 Light Red
5 Magenta 13 Light Magenta
6 Yellow 14 Light Yellow
7 White 15 Bright White
Exemplo:
Form1.BackColor = QBColor(Cor)
RGB
Categoria: Funções de Sistema Operacional
Finalidade: Retorna um número representando uma cor do padrão RGB.
Sintaxe: RGB (Red, Green, Blue)
Em que:
• Red – Número entre 0 to 255, inclusive, que representa o componente vermelho de uma cor.
• Green – Número entre 0 to 255, inclusive, que representa o componente verde de uma cor.
• Blue – Número entre 0 to 255, inclusive, que representa o componente azul de uma cor.
Exemplo:
Commdialog.Color = RGB(255, 0, 0)
Right
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna o número especificado de caracteres a partir do lado direito de uma string.
Sintaxe: Right(String, Comprimento)
Em que:
• String – Expressão string da qual os caracteres serão retornados.
• Comprimento – Expressão numérica indicando quantos caracteres serão retornados. Se igual a 0, uma string de tamanho zero será retornada. Se o comprimento for maior que o número de caracteres da string, toda ela será retornada.
Exemplo:
Dado = “Visual Basic 4.0”
Teste = Right(Dado, 1) ‘Teste = “0”
Teste = Right(Dado, 6) ‘Teste = “ic 4.0”
Teste = Right(Dado, 10) ‘Teste = “ Basic 4.0”
Rnd
Categoria: Funções Matemáticas
Finalidade: Retorna um número aleatório (randômico).
Sintaxe: Rnd[(Número)]

Em que:
• Número – Qualquer expressão numérica válida.
Esta função retorna um valor menor que 1 e maior ou igual a zero.
Exemplo:
Teste = Rnd
Rtrim
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma cópia de uma string, eliminando os espaços existentes entre o último caractere da string e o fim dela.
Sintaxe: RTrim(String)

Em que:
• String – Qualquer expressão string válida. Se a string contém Null, Null é retornado.
Exemplo:
Dado = “Casa ”
Teste = LTrim(Dado) ‘Teste = “Casa”
Second
Categoria: Funções de Data e Hora
Finalidade: Retorna o número de segundos da hora especificada (de 0 a 59).
Sintaxe: Second(Time)
Em que:
• Time – Qualquer expressão numérica ou string que possa representar um intervalo de tempo. Se Time contém Null, o valor de retorno da função será Null também.
Exemplo:
Teste = Second(#8:33:17 PM#) ‘Teste = 17
Sgn
Categoria: Funções Matemáticas
Finalidade: Retorna um inteiro conforme o sinal do número.
Sintaxe: Sgn(Número)
Em que:
• Número – Qualquer expressão numérica válida.
Ajustes:
Se Número: Sgn Retorna:
Maior que zero 1
Igual a zero 0
menor que zero -1
Exemplo:
Teste = Sgn(12) ‘ Teste = 1
Teste = Sgn(-2.4) ‘ Teste = -1
Teste = Sgn(0) ‘ Teste = 0
Shell
Categoria: Funções de Sistema Operacional
Finalidade: Inicia a execução de um programa qualquer.
Sintaxe: Shell(Pathname[, Windowstyle])
Em que:
• Pathname – Nome do programa a ser executado. Pode incluir eventuais argumentos na linha de comando. Também pode incluir o diretório e drive onde está localizado o executável. Você também pode informar o nome do documento se ele tiver sua extensão associada a um executável no Windows (exemplo: .TXT abre o Notepad).
• Windowstyle – Número que corresponde ao estilo da janela em que o programa será executado. Se omitido, o programa será executado minimizado.
Ajustes:
Valor Descrição
0 A janela é oculta e o foco é passado para essa janela.
1 A janela tem o foco e é restaurada para seu tamanho e posição originais.
2 A janela é exibida como um ícone com foco.
3 A janela é maximizada com foco.
4 A janela é restaurada ao seu mais recente tamanho e posição. A janela corrente permanece ativa.
6 A janela é exibida como um ícone. A janela corrente permanece ativa.
Exemplo:
Teste = Shell(“C:WINDOWSNOTEPAD.EXE”, 1)
Sin
Categoria: Funções Matemáticas
Finalidade: Calcula o seno de um número.
Sintaxe: Sin(Número)
Em que:
• Número – Qualquer expressão numérica válida que expresse um ângulo em radianos.
Exemplo:
Teste = Sin(1.25) ‘Teste = 0.948984619355586
Teste = Sin(.79) ‘Teste = 0.710353272417608
Space
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma string com o número de espaços em branco especificado pelo usuário.
Sintaxe: Space(Número)
Em que:
• Número – A quantidade de espaços em branco que você quer incluir na string.
Exemplo:
Dado = “Passo”
Teste = Dado & Space(2) & Dado ‘Teste = “Passo Passo”
Sqr
Categoria: Funções Matemáticas
Finalidade: Calcula a raiz quadrada de um número.
Sintaxe: Sqr(Número)
Em que:
• Número – Qualquer expressão numérica válida maior ou igual a zero.
Exemplo:
Teste = Sqr(16) ‘Teste = 4
Str
Categoria: Funções de Conversão de Dados
Finalidade: Retorna uma string representando o valor de um número.
Sintaxe: Str(Número)
Em que:
• Número – Qualquer expressão numérica válida.
Exemplo:
Teste = Str(123) ‘ Teste = ” 123″
Teste = Str(2000) ‘ Teste = “2000”
StrComp
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna um valor indicando o resultado de uma comparação de strings (se maior, igual ou menor).
Sintaxe: StrComp(String1, String2[, Compare])
Em que:
• String1 – Qualquer expressão string válida.
• String2 – Qualquer expressão string válida.
• Compare – Especifica o tipo de comparação a ser efetuado.
Ajustes:
Se: StrComp Retorna:
String1 é Menor que String2 -1
String1 é igual à String2 0
String1 é maior que String2 1
String1 ou String2 é Null Null

Exemplo:
Dado1 = “ABCD”
Dado2 = “abcd”
Teste = StrComp(Dado1, Dado2, 1) ‘ Teste = 0.
Teste = StrComp(Dado1, Dado2, 0) ‘ Teste = -1.
Teste = StrComp(Dado2, Dado1) ‘ Teste = 1.
StrConv
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma string convertida de acordo com a operação especificada pelo usuário.
Sintaxe: StrConv(String, Conversion)
Em que:
• String – A string a ser convertida.
• Conversion – A soma dos valores que especificam o tipo da conversão a ser feita.
Ajustes:
Valor Descrição
1 Converte a string em caracteres maiúsculos.
2 Converte a string em caracteres minúsculos.
3 Converte a primeira letra de cada palavra da string em maiúscula.

Exemplo:
Dado = “visual basic”
Teste = StrConv(dado, 3) ‘Teste = “Visual Basic”
String
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma string com caracteres repetidos no comprimento especificado pelo usuário.
Sintaxe: String(Número, Caractere)
Em que:
• Número – Comprimento da string a ser retornada.
• Caractere – Código do caractere ou expressão string cujo primeiro caractere será utilizado para construção da nova string.
Exemplo:
Teste = String(5, “*”) ‘Teste = “*****”
Teste = String(5, 42) ‘Teste = “*****”.
Teste = String(10, “ABC”) ‘Teste = “AAAAAAAAAA”.
Tan
Categoria: Funções Matemáticas
Finalidade: Calcula a tangente de um número.
Sintaxe: Tan(Número)
Em que:
• Número – Qualquer expressão numérica válida que expresse um ângulo em radianos.
Exemplo:
Teste = Tan(.79) ‘Teste = 1.00924628838275
Time
Categoria: Funções de Data e Hora
Finalidade: Retorna a hora atual do sistema.
Sintaxe: Time
Exemplo:
Teste = Time ‘Teste = 23:44:07
Timer
Categoria: Funções de Data e Hora
Finalidade: Retorna o número de segundos decorridos desde à 0:00h (de 0 a 59).
Sintaxe: Timer
Exemplo:
Teste = Timer ‘Teste = 85591.6
TimeSerial
Categoria: Funções de Data e Hora
Finalidade: Retorna um Variant com o valor da hora, minuto e segundo especificado.
Sintaxe: TimeSerial(Hora, Minuto, Segundo)
Em que:
• Hora – Número entre 0 e 23 inclusive.
• Minuto – Qualquer expressão numérica.
• Segundo – Qualquer expressão numérica.
Exemplo:
REM Retorna a hh:mm:ss de 20:13:45
Teste = TimeSerial(20, 13, 45) ‘Teste = 20:13:45
TimeValue
Categoria: Funções de Data e Hora
Finalidade: Retorna um valor de hora.
Sintaxe: TimeValue(Tempo)
Em que:
• Tempo – Expressão string representando uma hora entre 0:00:00 e 23:59:59 inclusive. Você também pode utilizar qualquer expressão que represente uma indicação de tempo dentro da faixa de valores válidos. O VB também aceita a notação AM/PM como em 2:00PM.
Exemplo:
REM Converte uma string num horário
Teste = TimeValue(“14:00:23”) ‘Teste = 14:00:23
Trim
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma cópia de uma string, eliminando os espaços existentes entre o início da string e o primeiro caractere, e o último caractere da string e o fim dela.
Sintaxe: Trim(String)
Em que:
• String – Qualquer expressão string válida. Se a string contém Null, Null é retornado.
Exemplo:
Dado = “ Casa ”
Teste = LTrim(Dado) ‘Teste = “Casa”
TypeName
Categoria: Funções de Verificação
Finalidade: Retorna uma string que informa qual é o tipo de dados da variável analisada.
Sintaxe: TypeName(Varname)
Em que:
Varname – Qualquer variável de memória.
Ajustes:
String Retornada: Variável Contém:
Byte Byte
Integer Integer
Long Long integer
Single Single
Double Double
Currency Currency
Date Date
String String
Boolean Boolean
Error Um valor de erro
Empty Não inicializada
Null Dado Inválido
Object Um objeto que suporta OLE

Exemplo:
Dim Dado As Integer
Teste = TypeName(Dado) ‘Teste = “Integer”
Ubound
Categoria: Funções de Array
Finalidade: Retorna o maior elemento da dimensão especificada de um determinado array.
Sintaxe: UBound(Arrayname[, Dimensão])
Em que:
• Arrayname – Nome da variável array.
• Dimensão – Número que indica que dimensão do array está sendo inspecionada. Utilize 1 para a primeira dimensão, 2 para a segunda e assim por diante.
Exemplo:
Dim Dado(5 To 10)
Teste = UBound(Dado, 1) ‘Teste = 10
UCase
Categoria: Funções de Manipulação de Strings
Finalidade: Retorna uma string convertida em letras maiúsculas.
Sintaxe: UCase(String)
Em que:
• String – Qualquer expressão string válida.
Somente as letras minúsculas serão convertidas em maiúsculas. Os demais caracteres, como números e sinais, permanecem inalterados.
Exemplo:
Dado = “caixa alta”
Teste = UCase(Dado) ‘Teste = “CAIXA ALTA”
Val
Categoria: Funções de Conversão de Dados
Finalidade: Retorna os números contidos em uma string.
Sintaxe: Val(String)
Em que:
• String – Qualquer expressão string válida.
Exemplo:
Teste = Val(“2457”) ‘Teste = 2457.
Teste = Val(” 2 45 7″) ‘Teste = 2457.
Teste = Val(“24 and 57”) ‘Teste = 24.
VarType
Categoria: Funções de Verificação
Finalidade: Retorna um valor indicando o subtipo de uma variável.
Sintaxe: VarType(Varname)
Em que:
• Varname – Qualquer variável de memória válida.
Ajustes:
Valor Descrição da Variável
0 Empty
1 Null
2 Integer
3 Long integer
4 Single
5 Double
6 Currency
7 Date
8 String
9 OLE Automation object
10 Error
11 Boolean
12 Variant (usada somente com arrays de Variants)
13 Não OLE Automation object
17 Byte
8192 Array

Exemplo:
Dim Dado As Integer
Teste = VarType(Dado) ‘Teste = 2
Weekday
Categoria: Funções de Data e Hora
Finalidade: Retorna o número do dia da semana (1 – Domingo, etc.).
Sintaxe: Weekday(Data, [Firstdayofweek])
Em que:
• Data – Expressão string ou numérica representando uma data. Se Data contém Null, Null é retornado.
• Firstdayofweek – Uma constante que define o primeiro dia da semana. Caso você não especifique, o domingo será considerado como primeiro dia. Veja a seção Ajustes da função DateDiff para maiores detalhes.
Exemplo:
Teste = WeekDay(#6/22/96#) ‘Teste = 7
Year
Categoria: Funções de Data e Hora
Finalidade: Retorna o número do ano de uma determinada data.
Sintaxe: Year(Data)
Em que:
• Data – Expressão string ou numérica representando uma data. Se Data contém Null, Null é retornado.
Exemplo:
Teste = Year(#6/22/96#) ‘Teste = 1996

Windows 95 Introdução

0

Autoria: Daniel Lauro Pinto

O Windows 95 é um sistema operacional gráfico de 32bits, multitarefa preenptiva e plug and play que aproveita melhor os recursos das máquinas de 386 para cima. A arquitetura de 32bits e uma interface totalmente redesenhada para garantir maior facilidade de uso colocam o produto anos-luz do Windows 3.1 e 3.11 para Workgroups que são seus antecessores. Como diferença básica, a versão 95 constitui realmente um sistema operacional, uma vez que não depende do MS-DOS para funcionar . Quem ainda tem programas em DOS e Windows 3.1 ou 3.11 em casa ou na empresa poderá rodá-lo sem problemas dentro do novo ambiente. Naturalmente, essas aplicações de 16 bits não poderão desfrutar os melhores benefícios que a estrutura de 32 bits, mais arrojada, tem a oferecer. De todo modo, mantém-se a compatibilidade.
Segundo a Microsoft, a interface do Windows 95 foi criada tendo como meta atender ao mesmo tempo às necessidades dos iniciantes e dos usuários mais avançados ou profissionais.
Uma vez adotado o Windows 95, a migração para aplicativos de 32 bits torna-se praticamente obrigatória. Embora o sistema operacional Permita a criação de nomes longos de arquivos, com até 255 caracteres, as versões atuais dos programas de 16 bits continuarão a trabalhar com apenas 8 caracteres para nome e 3 caracteres para extensões. As caixas de dialogo abrir e salvar das aplicações para Windows 95 permitem que o usuário execute operações tais como renomear, copiar e excluir arquivos é uma espécie de mini gerenciador de arquivos, tarefa impossível de para os aplicativos de 16 bits. Características desse tipo decorrem das novas capacidades do sistema operacional e são comuns a todos os programas que trazem o selo de compatibilidade com Windows 95.
Com a entrada do Windows 95 alguns programas que são compatíveis com o Windows 3.x não iram rodar na versão de 32 bits, com por exemplo o Fotostaler, CorelDraw 6.0, são 300 software na relação dos não compatíveis com o Windows 95 e todos os driver de periféricos com exceção do driver da placa de som e do scanner, um exemplo desse ocorrido é a impressora HP 660 que foi lançada na mesma data que o Windows 95 e na relação de driver de impressora do Windows 95 não tem o driver desta impressora, se o usuário tentar usar o driver de 16 bits no sistema operacional de 32 bits simplesmente não ira funcional. O Usuário que tem esta impressora terá que passar duas vezes antes de migrar para o Windows 95.
Na verdade, o que muitos consumidores estão descobrindo é que a migração para o Windows 95 não é uma tarefa simples. Por ser sistema operacional e não um programa qualquer, a compra de software deve ser considerada sob diversos aspectos. Uma das questões mais importantes a ser analisada na migração de software diz à sua performance. Até pouco tempo atrás, as versões que surgem sempre eram mais rápidas que suas antecessoras. Com o Windows 95 e seus aplicativo, a história muda um pouco. As atualizações trazem tantos recursos adicionais que freqüentemente requerem mais capacidade de hardware para manter a performance antiga. O Windows 95 não foge à regra. Por motivos de compatibilidade e de mercado, o produto foi feito para rodar em máquinas a partir do padrão 386 DX com 4 MB de memória RAM que é a configuração mínima para rodar o Windows 95, mas a plataforma recomendável é o micro 486 DX2 66 com 8 MB de RAM, e a configuração ideal para rodar o Win 95 é um 486 DX4 100 de 16 MB de RAM com HD de 850 MB e placa de vídeo PCI com 2 MB.
Se a máquina estiver mais de um ou dois anos de vida, certamente estará abaixo desse padrão. A conseqüência da defasagem será sentida na primeira vez que o Windows95 for executado. Além de uma performance inadequada, dependendo da configuração do micro, não será possível utilizar todos os recursos que este sistema operacional oferece. Exemplo : quem tem um micro 386 DX com 4 MB RAM não vai poder usar muitas das vantagens, como acesso a Internet, à multitarefa preemptiva e ao correio eletrônico.
Se o usuário quiser melhou desempenho, não adianta reclamar, 8 MB de RAM é o mínimo desejável para qualquer máquina que se disponha a rodar o Windows 95. Aliás, esse já era o patamar com o 3.x. Com mas memória, o tempo de acesso ao disco é reduzido, melhorando sensivelmente a performance do micro. Dependendo da forma como se faz a instalação , o Windows 95 pode precisar de 65 MB adicionais no Winchester. As novas versões de 32 bits são bem maiores que os antigos programas da versão 3.x, o que demandará mais espaço em disco. Mesmo quando existe a área necessária, deve-se considerar a velocidade do disco. Quem costuma atualizar o micro aos poucos pode ver-se numa situação contraditória: ter uma CPU rápida, como DX4 100 MHz, e um disco antigo.
Windows 95 é inegavelmente mais produtivo e agradável de usar que o seu antecessor, de 16 bits. Esse, no entanto, não é maior atrativo. Uma série de novos recursos torna mais fácil a vida o usuário. Tarefas que antes eram executadas somente em grandes empresas podem agora ser implementadas até em casa. Os recursos de rede local, a comunicação direta via cabo e o módulo de comunicação por fax são três dos mais importantes componentes Windows 95. lnstalar uma rede local está mais fácil do que nunca, até mesmo para o usuário doméstico. Agora ele pode conectar dois micros e uma impressora e terminar com abriga do “agora sou eu que uso o micro”.
Em linhas gerais, quase todos os recursos do software são mais fáceis de operar que seus equivalentes na versão anterior. Antes de chegar a essa fase, contudo, há uma pedra no caminho.
Windows 95 também incorpora um conjunto tecnologias que, somadas às inovações de sua interface, vão significar um autêntica revolução no uso de micros padrão PC. A mais marcante dessas tecnologias é o chamado Plug and Play, ou ligue e use. Desenvolvido conjuntamente por várias empresas de peso do setor – entre as quais Microsoft, Compaq e Intel -, 0 Plug and Play é uma especificação técnica que exigirá adesão em massa de fabricantes de hardware.
O objetivo básico dessa tecnologia é tomar as peças de hardware inteligentes, de tal modo que qualquer usuário possa adicioná-las a seu micro sem se preocupar com problemas de configuração.
Micro utilizado também precise estar conforme os preceitos técnicos do Plug and Play, assim como o periférico que se deseje adicionar.
A maioria dos problemas de configuração de hardware no PC ocorre quando mais de um periférico tenta usar o mesmo canal de, comunicação com o microprocessador. Resultado: pelo menos um deles não funcionara. Hoje, transtornos desse tipo são praticamente certos quando se tenta instalar, por exemplo uma placa fax modem ou de som A solução, manual, exige conhecimento técnico acima da capacidade e do interesse do usuário comum, envolvendo testes de tentativas e erro e a troca de pequenos conectores(jumpers). Com o Plug and Play, a configuração passa a ser automática, é feita por software.
Para isso, é necessário que existam três itens compatíveis com o Plug and Play: dispositivo a ser instalado, o Bios (programa básico do computador que vem gravado na placa-mãe).0 dispositivo traz informações que identificam. Entre elas está a lista de canais que ele pode usar. O Bios e o sistema operacional Plug and Play, como o Windows 95, varrem constantemente o sistema para verificar a presença de novo hardware.
Quando uma placa é adicionada, o Bios a identifica e obtém a informação do canal que ela utiliza a as eventuais alternativas. Se o novo componente tende a entrar em conflito com outro, o Windows rearranja o sistema ajustando a situação, Isso podei ser obtido pelo uso de uma das alternativas do item recém-chegado ou pela realocação de canais para outros itens. Tudo isso sem a menor intervenção do usuário. Com as placas hoje disponíveis o Windows apenas avisa que existe o conflito, e onde já que o hardware não suporta a configuração automática.
Com Windows 95, espera-se que uma verdadeira enxurrada de equipamentos e periféricos Plug and Play seja lançado no mercado.
Outra grande característica do Windows 95 é por se de 32 bits. 32 bits é uma característica que os processadores 386 DX para cima tem. Essa característica é modo que eles tem de endereçamento a memória em blocos de 32 bits, agilizando o processamento do programa que esta sendo executado.
Outras vantagens dos sistemas operacionais de 32 bits estão associadas pelos técnicos a três expressões de difícil compreensão, mesmo para iniciados: multitarefa real, multithread e preemptividade A primeira é mais simples. Indica a capacidade do sistema de aceitar a execução simultânea de mais de uma aplicação. Deve-se, no entanto, dar ênfase ao adjetivo real, a fim de diferenciar o que ocorre nos sistemas de 32 bits no Windows 3.1 de 16. Neste, várias aplicações podem rodar conjuntamente, mas, como qualquer usuário pode notar, há momentos em que uma delas se torna senhora absoluta da máquina. Quando se formata um disco, por exemplo, enquanto essa tarefa não se conclui não é possível usar o micro para outra atividade. Isso acontece porque, embaixo do Windows de 16 bits, está o DOS, um sistema concebido para administrar uma coisa de cada vez. Livres do DOS, o Windows 95 têm fôlego suficiente para permitir que o usuário formate um disquete, envie uma mensagem de fax, imprima uma carta e ainda continue escrevendo um relatório tudo ao mesmo tempo. Naturalmente, quanto mais poderosa a sua máquina, mais performance ele obterá nesse acúmulo de operações. Ai está a multitarefa real.
0 item preemptividade é um pouco mais complexo, a começar pela palavra, de origem Jurídica, ligada à idéia de tomar posse. Para entendê-lo, pode-se usar a mesma comparação dos sistemas de 32 bits com o Windows 3.l. Durante a inicialização de um programa ou na formatação de um disquete, o sistema de 16 bits fica inteiramente dedicado àquela tarefa.
O Windows 95 têm ainda uma característica que pode trazer expressivos benefícios para o usuário. Trata-se do multithreading. Sem um nome equivalente em português, esse recurso corresponde a uma espécie de multitarefa dentro do aplicativo. Exemplos de uso dessa característica já começa aparecer no mercado. 0 processador de texto Word 7.0, de 32 bits, realize a impressão de documentos como um processo (thread) isolado das outras atividades do programa. Assim o Usuário não perde tempo, podendo imprimir enquanto continua a escrever.
Com relação ao gerenciamento de memória, todos os micros computadores funcionam com 640 KB de memória a onde são executados os programas, acima dos 640 Kb até o 1° MB ou seja 380 KB existe uma área de memória alta a onde o sistema operacional coloca os driver e uma parte secundária do sistema operacional para liberar o máximo possível de memória base ( 640 KB ) e são necessários para execução das instruções dos programas, acima da 1° um MB é utilizada para o armazenamento de dados dos programas que estão sendo executados.
Essas características são necessária para manter uma compatibilidade completa para todos os programas usados no XT, sendo que essas características são exclusivas da parte do Hardware
No Windows 95 também funciona da mesma forma, mas é o próprio sistema operacional quem gerência a memória principal, na inicialização do Windows 95, ele faz um verificação dos componentes instalados e organiza a memória automaticamente deixando espaço suficiente para execução das instruções na memória base, mas e bom lembrar que esse gerenciamento de memória só vale para o Windows 95 ou seja para parte gráfica dele, se o usuário quiser rodar um aplicativo DOS dentro do Windows 95 não ira funcionar, o sistema operacional comunicará o usuário que não poderá usar o aplicativo por falta de memória. Para executar um aplicativo em DOS o usuário terá que sai do Windows 95 e ir para o prompt do DOS e contar com a sorte de der memória para rodar o aplicativo. O Windows 95 não tem um software de gerenciamento de memória manual com o Memmaker, para obter este gerenciador de memória o usuário terá que instalar o DOS 6.x antes de instalar o Windows 95.
Uma outra inovação do Windows 95 é o gerenciamento de memória secundária, ou seja do disco rígido. Quando o Windows 95 estiver gravando arquivos no disco rígido e o espaço livre em disco acaba, antes dele informar que o sistema esta extremamente com falta de memória ele faz uma procura no disco afim de encontrar arquivos que o usuário provavelmente não ira usar mas e estes arquivos se encontram na lixeira do Windows 95 que uma das novidades, se estiver algum arquivo na lixeiro o sistema informara o tamanho total dos arquivos e perguntará se deseja apagar paga que o processo continue.
Como tudo na vida não é uma maravilha, ai vai oito motivos para usar e oito motivos para não usar o Windows 95:

OITO MOTIVOS PARA USAR …

1) – Assistentes de instalação – Auxiliam o usuário na instalação de hardware e software. Detectam os periféricos da máquina e ajudam a encontrar e resolver conflitos entre componentes.

2) – Desinstaladores de programas – Permitem a remoção complete de aplicativos instalados no disco rígido por meio de um registro dos componentes copiados para o Winchester durante a instalação dos software

3)- Correio eletrônico – Inédito no sistema operacional da Microsoft, esse recurso possibilita, de forma simples e rápida, a implementação de um sistema de E-mail a partir do programa Excbange

4)- Recursos de fax – Um dos pontos altos do programa. Gerência todo o processo de criação, envio e recebimento de fax, além de criar folhas de rosto. Elimina a necessidade de um software especifico

5)- Multimídia – Um recurso chamado AutoPlay execute um CD de música automaticamente quando ele é inserido no driver. Foram aperfeiçoados os programas de gravação e mixesagem de arquivos de som.

6)- Recursos de rede – até o mais simples dos mortais vai poder implantar uma rede local. Em menos de 15 minutos consegue-se configurar uma pequena rede com o uso do assistente de instalação.

7)- Plug and Play – Está tecnologia acaba com os problemas de instalação de placas e outros periféricos, pois autoconfigura os componentes e põe fim aos conflitos de endereço e interrupção de memória.
8) – Facilidade de uso – 0 sistema foi desenvolvido com esse objetivo. Os recursos do mouse foram expandidos, permitindo que a maioria das tarefas de configuração e manipulação de arquivos seja feita com o botão direito

… E OITO PARA NÃO USAR

1)- Incompatibilidade – Quase 300 programas apresentam algum tipo de conflito com o Windows 95. Se as aplicações mais importantes do usuário estiverem entre elas, é melhor adiar a migração

2) – Investimento em hardware – Uma máquina com mais de dois anos de vida certamente exigirá uma atualização, que poderá custar até dez vezes o preço do sistema operacional.

3) – Treinamento – Um gasto inevitável para quem compra o Windows 95 é com a reciclagem na operação de sistema operacional. Isso pode consumir duas vezes o valor do software.

4)- Satisfação com a versão 3.1- Se o usuário se sente bem atendido pela verão de 16 bits do Windows e seus aplicativos. Além disso, a mudança pode causar dores de cabeça

5) – Investimento em software – 0 usuário certamente vai ser obrigado a adquirir versões específicas de programas para o novo sistema operacional. Os utilitários de disco são os primeiros candidatos

6) – Maturação – 0 aparecimento de bugs na primeira versão de um programa é inevitável. Se você prefere não correr riscos com a sua máquina, o melhor é esperar a segunda geração do Windows 95.

7)- Nova máquina – Se o usuário pretende trocar de micro nos próximos meses, não deve comprar o Windows 95 agora. Com certeza, ele virá acompanhando o novo equipamento.

8)- Falta de aplicativos – A lista de programas que usam arquitetura de 32 bits ainda é pequena. Se a maioria dos seus softwares não está nessa relação, o melhor é esperar mais um pouco.

Windows 95 S. Operacional

0

Autoria: Bruno Moreira

O Windows 95 é um sistema operacional gráfico de 32bits, multitarefa preenptiva e plug and play que aproveita melhor os recursos das máquinas de 386 para cima. A arquitetura de 32bits e uma interface totalmente redesenhada para garantir maior facilidade de uso colocam o produto anos-luz do Windows 3.1 e 3.11 para Workgroups que são seus antecessores. Como diferença básica, a versão 95 constitui realmente um sistema operacional, uma vez que não depende do MS-DOS para funcionar . Quem ainda tem programas em DOS e Windows 3.1 ou 3.11 em casa ou na empresa poderá rodá-lo sem problemas dentro do novo ambiente. Naturalmente, essas aplicações de 16 bits não poderão desfrutar os melhores benefícios que a estrutura de 32 bits, mais arrojada, tem a oferecer. De todo modo, mantém-se a compatibilidade.
Segundo a Microsoft, a interface do Windows 95 foi criada tendo como meta atender ao mesmo tempo às necessidades dos iniciantes e dos usuários mais avançados ou profissionais.
Uma vez adotado o Windows 95, a migração para aplicativos de 32 bits torna-se praticamente obrigatória. Embora o sistema operacional Permita a criação de nomes longos de arquivos, com até 255 caracteres, as versões atuais dos programas de 16 bits continuarão a trabalhar com apenas 8 caracteres para nome e 3 caracteres para extensões. As caixas de dialogo abrir e salvar das aplicações para Windows 95 permitem que o usuário execute operações tais como renomear, copiar e excluir arquivos é uma espécie de mini gerenciador de arquivos, tarefa impossível de para os aplicativos de 16 bits. Características desse tipo decorrem das novas capacidades do sistema operacional e são comuns a todos os programas que trazem o selo de compatibilidade com Windows 95.
Com a entrada do Windows 95 alguns programas que são compatíveis com o Windows 3.x não iram rodar na versão de 32 bits, com por exemplo o Fotostaler, CorelDraw 6.0, são 300 software na relação dos não compatíveis com o Windows 95 e todos os driver de periféricos com exceção do driver da placa de som e do scanner, um exemplo desse ocorrido é a impressora HP 660 que foi lançada na mesma data que o Windows 95 e na relação de driver de impressora do Windows 95 não tem o driver desta impressora, se o usuário tentar usar o driver de 16 bits no sistema operacional de 32 bits simplesmente não ira funcional. O Usuário que tem esta impressora terá que passar duas vezes antes de migrar para o Windows 95.
Na verdade, o que muitos consumidores estão descobrindo é que a migração para o Windows 95 não é uma tarefa simples. Por ser sistema operacional e não um programa qualquer, a compra de software deve ser considerada sob diversos aspectos. Uma das questões mais importantes a ser analisada na migração de software diz à sua performance. Até pouco tempo atrás, as versões que surgem sempre eram mais rápidas que suas antecessoras. Com o Windows 95 e seus aplicativo, a história muda um pouco. As atualizações trazem tantos recursos adicionais que freqüentemente requerem mais capacidade de hardware para manter a performance antiga. O Windows 95 não foge à regra. Por motivos de compatibilidade e de mercado, o produto foi feito para rodar em máquinas a partir do padrão 386 DX com 4 MB de memória RAM que é a configuração mínima para rodar o Windows 95, mas a plataforma recomendável é o micro 486 DX2 66 com 8 MB de RAM, e a configuração ideal para rodar o Win 95 é um 486 DX4 100 de 16 MB de RAM com HD de 850 MB e placa de vídeo PCI com 2 MB.
Se a máquina estiver mais de um ou dois anos de vida, certamente estará abaixo desse padrão. A conseqüência da defasagem será sentida na primeira vez que o Windows95 for executado. Além de uma performance inadequada, dependendo da configuração do micro, não será possível utilizar todos os recursos que este sistema operacional oferece. Exemplo : quem tem um micro 386 DX com 4 MB RAM não vai poder usar muitas das vantagens, como acesso a Internet, à multitarefa preemptiva e ao correio eletrônico.
Se o usuário quiser melhou desempenho, não adianta reclamar, 8 MB de RAM é o mínimo desejável para qualquer máquina que se disponha a rodar o Windows 95. Aliás, esse já era o patamar com o 3.x. Com mas memória, o tempo de acesso ao disco é reduzido, melhorando sensivelmente a performance do micro. Dependendo da forma como se faz a instalação , o Windows 95 pode precisar de 65 MB adicionais no Winchester. As novas versões de 32 bits são bem maiores que os antigos programas da versão 3.x, o que demandará mais espaço em disco. Mesmo quando existe a área necessária, deve-se considerar a velocidade do disco. Quem costuma atualizar o micro aos poucos pode ver-se numa situação contraditória: ter uma CPU rápida, como DX4 100 MHz, e um disco antigo.
Windows 95 é inegavelmente mais produtivo e agradável de usar que o seu antecessor, de 16 bits. Esse, no entanto, não é maior atrativo. Uma série de novos recursos torna mais fácil a vida o usuário. Tarefas que antes eram executadas somente em grandes empresas podem agora ser implementadas até em casa. Os recursos de rede local, a comunicação direta via cabo e o módulo de comunicação por fax são três dos mais importantes componentes Windows 95. lnstalar uma rede local está mais fácil do que nunca, até mesmo para o usuário doméstico. Agora ele pode conectar dois micros e uma impressora e terminar com abriga do “agora sou eu que uso o micro”.
Em linhas gerais, quase todos os recursos do software são mais fáceis de operar que seus equivalentes na versão anterior. Antes de chegar a essa fase, contudo, há uma pedra no caminho.
Windows 95 também incorpora um conjunto tecnologias que, somadas às inovações de sua interface, vão significar um autêntica revolução no uso de micros padrão PC. A mais marcante dessas tecnologias é o chamado Plug and Play, ou ligue e use. Desenvolvido conjuntamente por várias empresas de peso do setor – entre as quais Microsoft, Compaq e Intel -, 0 Plug and Play é uma especificação técnica que exigirá adesão em massa de fabricantes de hardware.
O objetivo básico dessa tecnologia é tomar as peças de hardware inteligentes, de tal modo que qualquer usuário possa adicioná-las a seu micro sem se preocupar com problemas de configuração.
Micro utilizado também precise estar conforme os preceitos técnicos do Plug and Play, assim como o periférico que se deseje adicionar.
A maioria dos problemas de configuração de hardware no PC ocorre quando mais de um periférico tenta usar o mesmo canal de, comunicação com o microprocessador. Resultado: pelo menos um deles não funcionara. Hoje, transtornos desse tipo são praticamente certos quando se tenta instalar, por exemplo uma placa fax modem ou de som A solução, manual, exige conhecimento técnico acima da capacidade e do interesse do usuário comum, envolvendo testes de tentativas e erro e a troca de pequenos conectores(jumpers). Com o Plug and Play, a configuração passa a ser automática, é feita por software.
Para isso, é necessário que existam três itens compatíveis com o Plug and Play: dispositivo a ser instalado, o Bios (programa básico do computador que vem gravado na placa-mãe).0 dispositivo traz informações que identificam. Entre elas está a lista de canais que ele pode usar. O Bios e o sistema operacional Plug and Play, como o Windows 95, varrem constantemente o sistema para verificar a presença de novo hardware.
Quando uma placa é adicionada, o Bios a identifica e obtém a informação do canal que ela utiliza a as eventuais alternativas. Se o novo componente tende a entrar em conflito com outro, o Windows rearranja o sistema ajustando a situação, Isso podei ser obtido pelo uso de uma das alternativas do item recém-chegado ou pela realocação de canais para outros itens. Tudo isso sem a menor intervenção do usuário. Com as placas hoje disponíveis o Windows apenas avisa que existe o conflito, e onde já que o hardware não suporta a configuração automática.
Com Windows 95, espera-se que uma verdadeira enxurrada de equipamentos e periféricos Plug and Play seja lançado no mercado.
Outra grande característica do Windows 95 é por se de 32 bits. 32 bits é uma característica que os processadores 386 DX para cima tem. Essa característica é modo que eles tem de endereçamento a memória em blocos de 32 bits, agilizando o processamento do programa que esta sendo executado.
Outras vantagens dos sistemas operacionais de 32 bits estão associadas pelos técnicos a três expressões de difícil compreensão, mesmo para iniciados: multitarefa real, multithread e preemptividade A primeira é mais simples. Indica a capacidade do sistema de aceitar a execução simultânea de mais de uma aplicação. Deve-se, no entanto, dar ênfase ao adjetivo real, a fim de diferenciar o que ocorre nos sistemas de 32 bits no Windows 3.1 de 16. Neste, várias aplicações podem rodar conjuntamente, mas, como qualquer usuário pode notar, há momentos em que uma delas se torna senhora absoluta da máquina. Quando se formata um disco, por exemplo, enquanto essa tarefa não se conclui não é possível usar o micro para outra atividade. Isso acontece porque, embaixo do Windows de 16 bits, está o DOS, um sistema concebido para administrar uma coisa de cada vez. Livres do DOS, o Windows 95 têm fôlego suficiente para permitir que o usuário formate um disquete, envie uma mensagem de fax, imprima uma carta e ainda continue escrevendo um relatório tudo ao mesmo tempo. Naturalmente, quanto mais poderosa a sua máquina, mais performance ele obterá nesse acúmulo de operações. Ai está a multitarefa real.
0 item preemptividade é um pouco mais complexo, a começar pela palavra, de origem Jurídica, ligada à idéia de tomar posse. Para entendê-lo, pode-se usar a mesma comparação dos sistemas de 32 bits com o Windows 3.l. Durante a inicialização de um programa ou na formatação de um disquete, o sistema de 16 bits fica inteiramente dedicado àquela tarefa.
O Windows 95 têm ainda uma característica que pode trazer expressivos benefícios para o usuário. Trata-se do multithreading. Sem um nome equivalente em português, esse recurso corresponde a uma espécie de multitarefa dentro do aplicativo. Exemplos de uso dessa característica já começa aparecer no mercado. 0 processador de texto Word 7.0, de 32 bits, realize a impressão de documentos como um processo (thread) isolado das outras atividades do programa. Assim o Usuário não perde tempo, podendo imprimir enquanto continua a escrever.
Com relação ao gerenciamento de memória, todos os micros computadores funcionam com 640 KB de memória a onde são executados os programas, acima dos 640 Kb até o 1° MB ou seja 380 KB existe uma área de memória alta a onde o sistema operacional coloca os driver e uma parte secundária do sistema operacional para liberar o máximo possível de memória base ( 640 KB ) e são necessários para execução das instruções dos programas, acima da 1° um MB é utilizada para o armazenamento de dados dos programas que estão sendo executados.
Essas características são necessária para manter uma compatibilidade completa para todos os programas usados no XT, sendo que essas características são exclusivas da parte do Hardware
No Windows 95 também funciona da mesma forma, mas é o próprio sistema operacional quem gerência a memória principal, na inicialização do Windows 95, ele faz um verificação dos componentes instalados e organiza a memória automaticamente deixando espaço suficiente para execução das instruções na memória base, mas e bom lembrar que esse gerenciamento de memória só vale para o Windows 95 ou seja para parte gráfica dele, se o usuário quiser rodar um aplicativo DOS dentro do Windows 95 não ira funcionar, o sistema operacional comunicará o usuário que não poderá usar o aplicativo por falta de memória. Para executar um aplicativo em DOS o usuário terá que sai do Windows 95 e ir para o prompt do DOS e contar com a sorte de der memória para rodar o aplicativo. O Windows 95 não tem um software de gerenciamento de memória manual com o Memmaker, para obter este gerenciador de memória o usuário terá que instalar o DOS 6.x antes de instalar o Windows 95.
Uma outra inovação do Windows 95 é o gerenciamento de memória secundária, ou seja do disco rígido. Quando o Windows 95 estiver gravando arquivos no disco rígido e o espaço livre em disco acaba, antes dele informar que o sistema esta extremamente com falta de memória ele faz uma procura no disco afim de encontrar arquivos que o usuário provavelmente não ira usar mas e estes arquivos se encontram na lixeira do Windows 95 que uma das novidades, se estiver algum arquivo na lixeiro o sistema informara o tamanho total dos arquivos e perguntará se deseja apagar paga que o processo continue.
Como tudo na vida não é uma maravilha, ai vai oito motivos para usar e oito motivos para não usar o Windows 95:

OITO MOTIVOS PARA USAR …

1) – Assistentes de instalação – Auxiliam o usuário na instalação de hardware e software. Detectam os periféricos da máquina e ajudam a encontrar e resolver conflitos entre componentes.

2) – Desinstaladores de programas – Permitem a remoção complete de aplicativos instalados no disco rígido por meio de um registro dos componentes copiados para o Winchester durante a instalação dos software

3)- Correio eletrônico – Inédito no sistema operacional da Microsoft, esse recurso possibilita, de forma simples e rápida, a implementação de um sistema de E-mail a partir do programa Excbange

4)- Recursos de fax – Um dos pontos altos do programa. Gerência todo o processo de criação, envio e recebimento de fax, além de criar folhas de rosto. Elimina a necessidade de um software especifico

5)- Multimídia – Um recurso chamado AutoPlay execute um CD de música automaticamente quando ele é inserido no driver. Foram aperfeiçoados os programas de gravação e mixesagem de arquivos de som.

6)- Recursos de rede – até o mais simples dos mortais vai poder implantar uma rede local. Em menos de 15 minutos consegue-se configurar uma pequena rede com o uso do assistente de instalação.

7)- Plug and Play – Está tecnologia acaba com os problemas de instalação de placas e outros periféricos, pois autoconfigura os componentes e põe fim aos conflitos de endereço e interrupção de memória.
8) – Facilidade de uso – 0 sistema foi desenvolvido com esse objetivo. Os recursos do mouse foram expandidos, permitindo que a maioria das tarefas de configuração e manipulação de arquivos seja feita com o botão direito

… E OITO PARA NÃO USAR

1)- Incompatibilidade – Quase 300 programas apresentam algum tipo de conflito com o Windows 95. Se as aplicações mais importantes do usuário estiverem entre elas, é melhor adiar a migração

2) – Investimento em hardware – Uma máquina com mais de dois anos de vida certamente exigirá uma atualização, que poderá custar até dez vezes o preço do sistema operacional.

3) – Treinamento – Um gasto inevitável para quem compra o Windows 95 é com a reciclagem na operação de sistema operacional. Isso pode consumir duas vezes o valor do software.

4)- Satisfação com a versão 3.1- Se o usuário se sente bem atendido pela verão de 16 bits do Windows e seus aplicativos. Além disso, a mudança pode causar dores de cabeça

5) – Investimento em software – 0 usuário certamente vai ser obrigado a adquirir versões específicas de programas para o novo sistema operacional. Os utilitários de disco são os primeiros candidatos

6) – Maturação – 0 aparecimento de bugs na primeira versão de um programa é inevitável. Se você prefere não correr riscos com a sua máquina, o melhor é esperar a segunda geração do Windows 95.

7)- Nova máquina – Se o usuário pretende trocar de micro nos próximos meses, não deve comprar o Windows 95 agora. Com certeza, ele virá acompanhando o novo equipamento.

8)- Falta de aplicativos – A lista de programas que usam arquitetura de 32 bits ainda é pequena. Se a maioria dos seus softwares não está nessa relação, o melhor é esperar mais um pouco.

Windows NT

0

Autoria: Silvia de Oliveira Nunes

WINDOWS NT
O Sistema Operacional da Microsoft

Windows NT, o sistema operacional da Microsoft, deu o seu pontapé inicial em novembro de 1989, em uma recém lançada CPU Risc, e ostentando uma interface de futura geração. A CPU era o processador 860 da Intel e a interface era o OS/2 da IBM. Mais tarde, a Microsoft voltou-se ao Mips R4000, juntamente com as CPUs uni e multiprocessadoras 80×86 da Intel e, é claro, para o Windows.
Graças a um planejamento cuidadoso, o NT é um camaleão. Inspirado no Macintosh, seu microkernel adapta-se prontamente a qualquer CPU e hospeda vários sistemas operacionais estendidos em camadas: DOS para 16 e 32 bits, Windows de 16 bits, OS/2 de 16 bits (apenas no modo caracter e 80×86), Posix e um híbrido Windows-OS/2 de 32 bits (ver figura).

Rodando em um uniprocessador ou em um multiprocessador, em sistema Cisc ou Risc, o kernel do NT tem a mesma visão do hardware subjacente graças a um abstrato chamado HAL (hardware abstraction layer – camada de abstração de hardware). Há um HAL para sistemas uniprocessados 386/486 com bus de AT e outro para uniprocessados R4000. Fabricantes de sistemas inovadores devem escrever HALs para dar suporte ao NT em seus sistemas. A NCR produziu dois: um para o processador quádruplo 3450 e um para o sistema de oito processadores 3550. A Compaq escreveu uma HAL para o processador dual Systempro e a Wise possui uma para o processador triplo 7000i. A HAL faz o sistema de bus, a controladora DMA (direct memory access – Acesso direto à Memória), o controlador de interrupção, os sistemas temporizadores e modelo de memória de cada máquina parecer como os do núcleo. Também libera o suporte necessário para o SMP (multiprocessamento simétrico) do Windows NT.
A HAL, entretanto, não faz mágicas. O sistema SMP exige que os processadores tenham conjuntos de instruções, visões de memória física e acesso a dispositivos todos idênticos. Além disso, o hardware deve fornecer coerência de cache e os processadores têm de ser capazes de se interromperem mutuamente. A HAL não pode criar simetria fora de um conjunto assimétrico de partes.
O kernel, ancorado no topo da HAL, gerencia mudanças de arranjo e de contexto, suporte de exceção e interrupção e sincronização de multiprocessador. Não é paginável ou sujeito a preempção.
A arquitetura baseada em objeto, a marca de qualidade do NT, deriva do kernel, que oferece duas classes de objetos primitivos. Objetos escalonadores como, por exemplo, indicadores (threads), eventos, semáforos (mutex e temporizadores), mantendo um estado de sinal, suporte escalonado e atividades de sincronização. Objetos de controle (processos, interrupções e dispositivos de fila) carregam estruturas de dados usadas por controladores de dispositivos e o executivo NT, que é a interface para subsistemas do modo usuário como o Win32.
O kernel reserva alguns desses objetos para uso interno e exporta outros (processos, indicadores, eventos e semáforos) para o executivo, que os empacota em metade do subsistema do modo usuário. Quando um programa do Win32 pede ao executivo para criar um desses objetos, o executivo encapsula o novo objeto que recebeu do kernel – por exemplo, atribuindo-lhe nome e descritor de segurança.
O kernel mantém estruturas de dados que suportem escalonamento, tais como uma fila de indicadores que estejam prontos para rodar e uma matriz que descreva indicadores em execução e suas prioridades. No sistema SMP de n-processadores, o kernel garante que os n maiores, indicadores de prioridade, serão executados.
O escalonamento do NT é dirigido por evento. Quando algo interessante acontece a um indicador de usuário (mensagem ou notificação de que uma operação assíncrona de entrada e saída terminou), sua base de prioridade recebe um impulso temporário e, então, reestabelece gradualmente seu estado normal. Este mecanismo ajuda o NT a acomodar as demandas imprevisíveis colocadas pelos usuários e pelos dispositivos. Nos períodos de tranqüilidade, o kernel cria eventos artificiais para manter as coisas animadas. Quando transfere (preempts) um indicador para rodá-lo com maior prioridade, atribui o indicador pronto a qualquer processador disponível, embora favoreça a CPU na qual o indicador rodou por último, no caso do cache secundário da CPU conter dados ainda válidos para esse indicador.
O executivo coloca à disposição um cardápio de serviços básicos comuns a todas as emulações de sistemas operacionais depositadas em seu topo. Isto inclui segurança, gerenciamento de memória, entrada e saída, sistemas de arquivos e IPC (comunicações interprocessos). Como o kernel, o executivo roda com prerrogativa supervisora. Ao contrário do kernel, ele é multi-indicativo e preemptível. O NT atinge um paralelismo substancial em máquinas SMP, mesmo quando está executando aplicativos monoindicadores, porque o trabalho de suporte a esses aplicativos se dissemina, de forma equilibrada, por todos os processadores disponíveis.
*
A HAL, o kernel e o executivo rodam no modo supervisor. Os subsistemas de emulação de sistema operacional, entretanto, rodam no modo usuário. Cada um desses “ambientes servidores” (Win32, Os/2 e Posix) tem seu próprio espaço de endereçamento privado e protegido. O aplicativo Win32 é um cliente em relação ao subsistema Win32 e deve fiar-se no IPC para usar seus serviços. O Win32, em contrapartida, mantém uma relação cliente-servidor com o executivo do NT. O Windows 3.x agrupa seus serviços em três módulos: GDI (gráfico) Kernel (suporte geral) e User (janela de gerenciamento). O NT preserva esse arranjo, mas divide os módulos em lado-do-cliente-DLLs (que mapeia no espaço de endereçamento dos aplicativos Win32) e lado-do-servidor-DLLs (que roda em seus próprios espaços de endereçamento). O lado cliente do módulo User permite que as aplicações acionem funções API (CreateWindow). Mas o lado servidor desse módulo implementa a função. Essa implementação se baseia nos serviços do executivo (gerenciamento de memória e segurança). Como a janela é um dos objetos aos quais o NT agrega segurança, a chamada CreateWindow chamará, no final das contas, o gerenciador de objetos e o subsistema de segurança do executivo.
Hardware suportado
As plataformas inicialmente suportadas pelo NT são Intel, mono ou multiprocessada; Risc; e o chip Alpha, da Digital. O sistema já está rodando em máquinas com até quatro chips 486. Ele, porém, não suporta o MPA (Multiprocessamento assimétrico), em que cada chip se especializa em alguns tipos de threads. No MPS (simétrico) todos os processadores executam qualquer thread.
A compatibilidade nas variadas arquiteturas
Na verdade, para atender a arquiteturas diferentes, como Risc, Intel e o Alpha (o chip da Digital, de 64 bits), há mais de um tipo de NT. Mas segundo a Microsoft, as aplicações podem ser migradas entre plataformas com relativa facilidade. As rotinas ligadas ao código do processador são diferentes em cada kernel, mas o código de alto nível é mantido. Ou seja, a compatibilidade com diferentes tipos de processadores é implementada no HAL (que faz o controle de interrupções, DMA, clock, timers, etc.) e os drivers do NT não precisam de modificações em função da arquitetura. Nas aplicações já escritas para o Win32, basta recompilar (com o NT SDK – Software Development Kit). Os programas feitos para DOS ou Windows de 16 bits rodam em qualquer plataforma, graças a uma camada de emulação de chip Intel x86.
O acesso ao hardware pelas aplicações
Resumindo, o NT se coloca como uma camada entre o hardware e os subsistemas operacionais. O kernel, que é o coração de qualquer sistema operacional, assume o controle exclusivo da máquina e sobre ele trabalham os subsistemas (Win32, Posix, OS/2, DOS e Windows 3.x). Quando uma aplicação de qualquer um desses ambientes pede para acessar o hardware, ela vai a seu sistema nativo, que em circunstâncias convencionais seria o gestor do procedimento da máquina. Mas, numa estação NT, as mensagens do Unix, do OS/2 ou do DOS são recebidas pela camada NT Executive, que determina, segundo deus próprios critérios operacionais, a forma e o momento de acesso ao hardware.

Windows NT 2

0

Autoria: Rafael Gomes Nogueira

WINDOWS NT
O Sistema Operacional da Microsoft

Windows NT, o sistema operacional da Microsoft, deu o seu pontapé inicial em novembro de 1989, em uma recém lançada CPU Risc, e ostentando uma interface de futura geração. A CPU era o processador 860 da Intel e a interface era o OS/2 da IBM. Mais tarde, a Microsoft voltou-se ao Mips R4000, juntamente com as CPUs uni e multiprocessadoras 80×86 da Intel e, é claro, para o Windows.
Graças a um planejamento cuidadoso, o NT é um camaleão. Inspirado no Macintosh, seu microkernel adapta-se prontamente a qualquer CPU e hospeda vários sistemas operacionais estendidos em camadas: DOS para 16 e 32 bits, Windows de 16 bits, OS/2 de 16 bits (apenas no modo caracter e 80×86), Posix e um híbrido Windows-OS/2 de 32 bits (ver figura).

Rodando em um uniprocessador ou em um multiprocessador, em sistema Cisc ou Risc, o kernel do NT tem a mesma visão do hardware subjacente graças a um abstrato chamado HAL (hardware abstraction layer – camada de abstração de hardware). Há um HAL para sistemas uniprocessados 386/486 com bus de AT e outro para uniprocessados R4000. Fabricantes de sistemas inovadores devem escrever HALs para dar suporte ao NT em seus sistemas. A NCR produziu dois: um para o processador quádruplo 3450 e um para o sistema de oito processadores 3550. A Compaq escreveu uma HAL para o processador dual Systempro e a Wise possui uma para o processador triplo 7000i. A HAL faz o sistema de bus, a controladora DMA (direct memory access – Acesso direto à Memória), o controlador de interrupção, os sistemas temporizadores e modelo de memória de cada máquina parecer como os do núcleo. Também libera o suporte necessário para o SMP (multiprocessamento simétrico) do Windows NT.
A HAL, entretanto, não faz mágicas. O sistema SMP exige que os processadores tenham conjuntos de instruções, visões de memória física e acesso a dispositivos todos idênticos. Além disso, o hardware deve fornecer coerência de cache e os processadores têm de ser capazes de se interromperem mutuamente. A HAL não pode criar simetria fora de um conjunto assimétrico de partes.
O kernel, ancorado no topo da HAL, gerencia mudanças de arranjo e de contexto, suporte de exceção e interrupção e sincronização de multiprocessador. Não é paginável ou sujeito a preempção.
A arquitetura baseada em objeto, a marca de qualidade do NT, deriva do kernel, que oferece duas classes de objetos primitivos. Objetos escalonadores como, por exemplo, indicadores (threads), eventos, semáforos (mutex e temporizadores), mantendo um estado de sinal, suporte escalonado e atividades de sincronização. Objetos de controle (processos, interrupções e dispositivos de fila) carregam estruturas de dados usadas por controladores de dispositivos e o executivo NT, que é a interface para subsistemas do modo usuário como o Win32.
O kernel reserva alguns desses objetos para uso interno e exporta outros (processos, indicadores, eventos e semáforos) para o executivo, que os empacota em metade do subsistema do modo usuário. Quando um programa do Win32 pede ao executivo para criar um desses objetos, o executivo encapsula o novo objeto que recebeu do kernel – por exemplo, atribuindo-lhe nome e descritor de segurança.
O kernel mantém estruturas de dados que suportem escalonamento, tais como uma fila de indicadores que estejam prontos para rodar e uma matriz que descreva indicadores em execução e suas prioridades. No sistema SMP de n-processadores, o kernel garante que os n maiores, indicadores de prioridade, serão executados.
O escalonamento do NT é dirigido por evento. Quando algo interessante acontece a um indicador de usuário (mensagem ou notificação de que uma operação assíncrona de entrada e saída terminou), sua base de prioridade recebe um impulso temporário e, então, reestabelece gradualmente seu estado normal. Este mecanismo ajuda o NT a acomodar as demandas imprevisíveis colocadas pelos usuários e pelos dispositivos. Nos períodos de tranqüilidade, o kernel cria eventos artificiais para manter as coisas animadas. Quando transfere (preempts) um indicador para rodá-lo com maior prioridade, atribui o indicador pronto a qualquer processador disponível, embora favoreça a CPU na qual o indicador rodou por último, no caso do cache secundário da CPU conter dados ainda válidos para esse indicador.
O executivo coloca à disposição um cardápio de serviços básicos comuns a todas as emulações de sistemas operacionais depositadas em seu topo. Isto inclui segurança, gerenciamento de memória, entrada e saída, sistemas de arquivos e IPC (comunicações interprocessos). Como o kernel, o executivo roda com prerrogativa supervisora. Ao contrário do kernel, ele é multi-indicativo e preemptível. O NT atinge um paralelismo substancial em máquinas SMP, mesmo quando está executando aplicativos monoindicadores, porque o trabalho de suporte a esses aplicativos se dissemina, de forma equilibrada, por todos os processadores disponíveis.
*
A HAL, o kernel e o executivo rodam no modo supervisor. Os subsistemas de emulação de sistema operacional, entretanto, rodam no modo usuário. Cada um desses “ambientes servidores” (Win32, Os/2 e Posix) tem seu próprio espaço de endereçamento privado e protegido. O aplicativo Win32 é um cliente em relação ao subsistema Win32 e deve fiar-se no IPC para usar seus serviços. O Win32, em contrapartida, mantém uma relação cliente-servidor com o executivo do NT. O Windows 3.x agrupa seus serviços em três módulos: GDI (gráfico) Kernel (suporte geral) e User (janela de gerenciamento). O NT preserva esse arranjo, mas divide os módulos em lado-do-cliente-DLLs (que mapeia no espaço de endereçamento dos aplicativos Win32) e lado-do-servidor-DLLs (que roda em seus próprios espaços de endereçamento). O lado cliente do módulo User permite que as aplicações acionem funções API (CreateWindow). Mas o lado servidor desse módulo implementa a função. Essa implementação se baseia nos serviços do executivo (gerenciamento de memória e segurança). Como a janela é um dos objetos aos quais o NT agrega segurança, a chamada CreateWindow chamará, no final das contas, o gerenciador de objetos e o subsistema de segurança do executivo.
Hardware suportado
As plataformas inicialmente suportadas pelo NT são Intel, mono ou multiprocessada; Risc; e o chip Alpha, da Digital. O sistema já está rodando em máquinas com até quatro chips 486. Ele, porém, não suporta o MPA (Multiprocessamento assimétrico), em que cada chip se especializa em alguns tipos de threads. No MPS (simétrico) todos os processadores executam qualquer thread.
A compatibilidade nas variadas arquiteturas
Na verdade, para atender a arquiteturas diferentes, como Risc, Intel e o Alpha (o chip da Digital, de 64 bits), há mais de um tipo de NT. Mas segundo a Microsoft, as aplicações podem ser migradas entre plataformas com relativa facilidade. As rotinas ligadas ao código do processador são diferentes em cada kernel, mas o código de alto nível é mantido. Ou seja, a compatibilidade com diferentes tipos de processadores é implementada no HAL (que faz o controle de interrupções, DMA, clock, timers, etc.) e os drivers do NT não precisam de modificações em função da arquitetura. Nas aplicações já escritas para o Win32, basta recompilar (com o NT SDK – Software Development Kit). Os programas feitos para DOS ou Windows de 16 bits rodam em qualquer plataforma, graças a uma camada de emulação de chip Intel x86.
O acesso ao hardware pelas aplicações
Resumindo, o NT se coloca como uma camada entre o hardware e os subsistemas operacionais. O kernel, que é o coração de qualquer sistema operacional, assume o controle exclusivo da máquina e sobre ele trabalham os subsistemas (Win32, Posix, OS/2, DOS e Windows 3.x). Quando uma aplicação de qualquer um desses ambientes pede para acessar o hardware, ela vai a seu sistema nativo, que em circunstâncias convencionais seria o gestor do procedimento da máquina. Mas, numa estação NT, as mensagens do Unix, do OS/2 ou do DOS são recebidas pela camada NT Executive, que determina, segundo deus próprios critérios operacionais, a forma e o momento de acesso ao hardware.

Word

0

Autoria: Janaina Carla Rosa

Definição e Aplicação

O Word é um aplicativo da Microsoft utilizado especialmente para a criação e processamento de textos. Com ele pode – se elaborar cartas, circulares, panfletos, bboletins e jornais de bairros ou comunidades, contratos, etc. Além de poder criar textos, você pode formata-los de forma eficiente, possibilitando a criação de documentos agradáveis de se ler.

Formatação de Texto

Todos os tipos de caracteres ( fontes ) instaladas no sistema, estão disponíveis para que você possa utilizar em seus trabalhos, bem como também tamanho, tipo, estilo, cor, etc.
Seus textos precisam de uma roupagem diferente para cada determinado assunto que vai ser apresentado.
No texto abaixo poderemos notar alguns tipos de formatação:

Nada de Pijama

Pouca gente percebe, mas as roupas ter uma certa influencia psicológica no nosso estado de espírito. Quer exemplos! Não existem mulheres que, para driblar o baixo astral, se ventem como princesas! Não é verdade que, de maneira geral, as pessoas respeitam mais um homem de terno e gravata do que outro de jeans e camiseta! Pois é. A mesma coisa vela para o trabalho em casa – de pijama ou moletom você não vai ter a mesma disposição que se tivesse pronto para sair á rua. Claro que isso não significa que você vá acordar engravatado ou de salto alto. Mas quer dizer, sim, que você vai precisar estar, ao menos, apresentável – afinal, sempre há o risco de ter que sair para uma reunião de última hora.

Ação: Menu Formatar  Opção Fonte.

Configuração de Páginas

A maioria dos documentos deve ser impressa. Porém, antes de imprimir devemos fazer alguns ajustes. Obs.: Recomendável fazer a configuração de páginas antes de começar a fazer o seu texto.
Na configuração de página podemos configurar as margens esquerda, direita, superior e inferior, cabeçalho e rodapé determinando tudo em medidas para que o documento fique centralizado a página.
Podemos também configurar o tipo do papel, tamanho e a sua orientação.
Podemos também, configurar de onde virá o papel e o alinhamento do vertical além de ajustes no cabeçalhos e rodapés.
Obs.: Caso realizar a impressão do documento e não gosta de como ficou é só ajustar de novo as configuração e imprimir novamente.

Ação: Menu Arquivo  Opção Configurar Página.

Número de Páginas

Esta opção é utilizada para o usuário identificar quantas páginas ele esta utilizando no documento, a partir do momento que for adicionado o número de página, cada página nova que for sendo criada dentro do mesmo documento o próprio Word vai numerando automaticamente.
O usuário também poderá escolher a posição, alinhamento e o formato da numeração a ser utilizada.

Ação: Menu Inserir  Opção Números de Páginas.

Cabeçalho e Rodapé

Em documentos que necessitem que informações sejam repetidas em todas as páginas, como por exemplo, papel timbrado de uma empresa, utilizamos esta opção: Cabeçalho e Rodapé.
Ativando esta opção será aberto uma caixa com um quadro no topo da página onde digitaremos o texto do cabeçalho e podemos também fazer a sua formatação, junto com esta quadro, abrirá uma barra de ferramentas no meio da tela onde poderemos inserir e alterar algumas opções referidos ao cabeçalho e rodapé como: Textos prontos, data e hora, número de páginas, configurar páginas e o mais importante que é o Botão de Alternar entre cabeçalho e rodapé.
Obs.: Temos como exemplo de cabeçalho e rodapé o texto
<


Trabalho de Word


> no topo e no fim desta página.

Ação: Menu Exibir  Opção Cabeçalho e Rodapé.

Adicionando Figuras

O Word possui algumas ferramentas para que você possa ilustrar seus documentos, dando a eles uma aparência mais leve.
É claro que nem todos textos criados ou copiados podem ser ilustrados.

Além de o usuário inserir figuras já pronto do próprio Word, ele poderá também inserir figurar gerados por ele próprio ou capturadas via Internet.
Quando adicionados uma figura, abre-se automaticamente uma barra de ferramentas onde o usuário poderá fazer algumas modificações nas figuras inseridas como: Contraste, brilho, controle de imagem, cortar, disposição, estilo de linha, formatação, transparência, etc.
Ação: Menu: Inserir  Opção Figura ou Imagem  Clip-art ou Do arquivo.
Marcadores e Numeração

Este recurso é utilizado para relacionar e destacar tópicos dentro de um determinado assunto.
O usuário poderá fazer esta marcação utilizando, Marcadores que é feito através de símbolos ou Numeração que é feito através de números ou letras. Exemplo:

Relação de Itens da Sala de Informática

 Computadores
 Impressoras
 Mesas
 Cadeiras
 Estabilizadores
 Cabos

Ou

Veículos em Estoque

1. Nacionais
2. Volkswagen
3. Gol
4. Parati
5. Fiat
6. Pálio

Dentro da opção Marcadores e Numeração, o usuário poderá também personalizar o tipo de marcador e fazendo a sua formatação.

Ação: Menu: Formatar  Opção Marcadores e Numeração.

Símbolos

Símbolos são caracteres em forma de desenho, números ou letras que podem ser adicionados aos texto como por exemplo marcar registrada ®.

Ação: Menu: Inserir  Opção: Símbolos.

Tabelas

Tabelas são adicionadas para fazer uma melhor distribuição em um determinado assunto. Na tabela o usuário poderá definir números de linhas, colunas, realizar formatações ou utilizar formatações existentes, fazer ajuste e classificações, como por exemplo.

Comércio de Veículos
Marca / Modelo Ano Valor R$
Mercedes S 600 94 300.000,00
BMW 325 I 94 100.000,00
Audi A4 94 120.000,00
Audi A6 94 120.000,00
Ação: Menu: Tabela  Opção: Inserir  Tabela

Colunas

Quem lê jornais e revistas, sabe que seu formato de texto é diferente da maioria dos textos em livros e outros mais. É o que chamamos de texto em colunas ou colunas tipo jornalístico. Dentro desta ferramenta o usuário poderá alterar ou inserir, números de colunas, alinhamento, largura e espaçamento, etc.
Exemplo:

África do Sul

O regime de segregação racial (apartheid) sul-africano, iniciado em 1948, termina oficialmente com a primeira eleição multirracial do país, em 1994. No entanto, deixa uma pesada herança no país, ainda marcado pelo “apartheid social”. O padrão de vida é bastante desigual quando se trata de brancos e negros, e as taxas de criminalidade e de violência política continuam altas entre os negros. Implementado em 1994 pelo governo de Nelson Mandela o Programa de Reconstrução e Desenvolvimento tenta diversificar a economia, melhorar o sistema de habitação e educação e reduzir o desemprego, cuja taxa era de 29% da força de trabalho, em 1995.
A África do Sul detém sozinha quase 50% da produção industrial do continente africano. Rico em recursos minerais, o país é o maior produtor mundial de ouro. Possui também grandes reservas de diamante, cromita, urânio, antimônio, platina e carvão. Juntos esses minérios respondem por 60% das exportações e 10% do PIB do país.

Anabolizantes

0

Autoria: Débora Joyce

Definição

Os esteróides anabolizantes, mais conhecidos apenas com o nome de anabolizantes, são drogas relacionadas ao hormônio masculino Testosterona fabricado pelos testículos. Os anabolizantes possuem vários usos clínicos, nos quais sua função principal é a reposição da testosterona nos casos em que por algum motivo patológico tenha ocorrido um déficit. Assim, os efeitos “anabólicos”, no que se refere aos esteróides, são aqueles que envolvem a síntese da proteína para a reparação e crescimento do músculo, já que, em esportes de explosão, existem microrupturas destes. O hormônio masculino, testosterona, tem duas funções primordiais. A primeira, chamada de função androgênica, estimula o desenvolvimento e manutenção das características sexuais secundárias masculinas ( como o pêlo facial, timbre de voz, distribuição e quantidade de gordura no corpo, e outras características associadas aos traços masculinos). As funções anabólicas da testosterona incluem o desenvolvimento e manutenção da musculatura, este é o objetivo principal visado por fisiculturistas. Então, esteróides anabólicos são compostos químicos de derivação sintética que imitam os efeitos anabólicos do testosterona enquanto, ao mesmo tempo, minimiza os efeitos androgênios. Um dos mais importantes atributos dos esteróides anabólicos é sua capacidade de estimular a síntese da proteína. Isto é conseguido em parte por que o corpo tende a “armazenar” nitrogênio , quando são usados esteróides anabólicos, promovendo um maior crescimento muscular.

Além de uso médico, eles têm a propriedade de aumentar volume dos músculos e por esse motivo são muito procurados por atletas ou pessoas que querem melhorar a performance e a aparência física. Os esteróides anabolizantes podem ser tomados na forma de comprimidos ou injeções e seu uso ilícito pode levar o usuário a utilizar centenas de doses a mais do que aquela recomendada pelo médico. Freqüentemente combinam diferentes esteróides entre si para aumentar a sua efetividade. Outra forma de uso dessas drogas é toma-las durante 6 a 12 semanas, ou mais e depois parar por várias semanas e recomeçar novamente.

No Brasil não se tem estimativa deste uso ilícito, mas sabe-se que o consumidor preferencial está entre 18 a 34 anos de idade e em geral é do sexo masculino.

Nos USA, em 1994, mais de um milhão de jovens já tinham feito uso de esteróides anabolizantes.

No comércio brasileiro os principais medicamentos à base dessas drogas e utilizados com fins ilícitos são: Androxon® Durateston®, Deca-Durabolin®. Porém, além desses, existem dezenas de outros produtos que entram ilegalmente no país e são vendidos em academias e farmácias. Muitas das substâncias vendidas como anabolizantes são falsificadas e acondicionadas em ampolas não esterilizadas, ou misturadas a outras drogas. Alguns usuários chegam a utilizar produtos veterinários à base de esteróides, sobre os quais não se tem nenhuma idéia sobre os riscos do uso em humanos.

Como atuam os esteróides:

Os esteróides ou “bomba” como costumam ser chamados nas academias, podem ser administrados via oral, cápsulas de implante sublingual ou via injetáveis intramusculares, os esteróides anabólicos encontram o caminho para as células musculares do indivíduo, onde exercem sua influência ativadora nos gens responsáveis pela síntese da proteína.Entretanto, junto com a administração destes, deve haver ingestão suficiente de vitaminas e minerais através de alimento ou suplementos. Acredita-se que muitas vitaminas estejam em sinergismo com os esteróides anabólicos (ou seja, ajudam ou facilitam o esteróide a efetuar a síntese da proteína).O atleta cria uma “necessidade” de proteínas no organismo através de um treinamento extremamente pesado. Contudo, nem todas as moléculas de esteróides atingem os sítios receptores das células. a maioria se perde na corrente sanguínea e são quebrados no fígado. Acredita-se que estes produtos derivados sejam responsáveis por muitos “efeitos colaterais” dos esteróides anabólicos em formas ainda desconhecidas.

Séries e os ciclos dos esteróides:

Apesar de não ser algo definitivo pois cada um utiliza seu próprio método, algumas regras são obedecidas tais como: seguir uma dieta rica em proteínas com pouca gordura e ter um período de repouso entre os ciclos.

Acumulação – Vários esteróides anabólicos ao mesmo tempo. Normalmente um ou mais orais com um ou mais injetáveis, para o caso de algum falhar.

Ajustando – Não utilizam a mesma droga por tempo prolongado para evitar a estagnação.

Diminuição – Há uma redução lenta da dosagem por um período de 4 a 6 semanas; quanto mais longo o ciclo, maior será o período de diminuição efetiva. Evitando assim possíveis efeitos com a parada da administração da droga.

Pirâmide – Dura de quatro a seis semanas e consiste em a cada semana aumentar a quantidade do esteróide quando chegar no meio do ciclo, com a quantidade máxima da droga, há uma diminuição na dosagem nas semanas seguintes.
Os esteróides anabólicos apresentam-se em diversas formas e dosagens tendo diferentes tempos de duração e ação no organismo

Efeitos colaterais dos esteróides:

Alterações da função hepática – Dentre os atletas que usam esteróides, os efeitos das interrupções da função do fígado a longo prazo são desconhecidas. Os efeitos a curto prazo foram mínimos e reversíveis ao cessar o uso de esteróide. Contudo, pode ocorrer a hepatite tóxica causada pelo uso continuado de esteróides e diuréticos.

Prejuízo no sistema cardiovascular – Aumento das chances de arteriosclerose.
Os efeitos causados pelos esteróides anabólicos (direta ou indiretamente) no sistema cardiovascular são considerados, por muitos, como o efeito mais grave e potencialmente perigoso dentre todos os relatados.

Hipertensão (pressão sanguínea alta) – O esteróide anabólico é com freqüência acompanhado de consideráveis aumentos da pressão sanguínea. Muitos atletas (talvez a maioria) apresentam edema (retenção de água) que variam de discreto a grave quando usam esteróides (variação do equilíbrio fluido/eletrólito).
Sabe-se que os esteróides aumentam tanto os níveis de potássio como de nitrogênio, que podem aumentar a pressão sanguínea mas esta geralmente volta ao normal cessando o uso do esteróide, e os efeitos a longo prazo são uma incógnita.

Alterações no processo reprodutor – Tomando-se os esteróides, não existe mais necessidade de segregação da quantidade normal de testosterona. O FSH e o ICSH (hormônios), ficam reduzidos quando existe quantidade suficiente de testosterona. Como resultado, o testículo se atrofia e ocorre a diminuição na contagem de espermatozóides. O efeito é reversível cessando o uso do esteróide. A libido (desejo e performance sexual) parece ficar alterada em níveis variáveis com grandes quantidades do produto. Volta-se a normalidade com a interrupção da droga.

Aumento da agressividade – A testosterona é conhecida como o fator de maior contribuição no nível de agressividade do homem. Pessoas que tomam esteróides (especialmente os com alto nível andrógeno) apresentam-se mais agressivos e violentos

Desenvolvimento de tecido mamário no homem – Conhecido como “ginecomastia”, o tecido mamário abaixo do mamilo é acompanhado de sensibilidade (dolorosa) ao toque. Costumam voltar ao normal com a interrupção, mas com o uso contínuo podem aparecer nódulos que precisam ser removidos cirurgicamente. Foram relatadas em homens um aumento de 7 vezes do estradiol circulante , que é um dos principais hormônios femininos durante a administração da droga.

Efeitos virilizantes – Crescimento das vesículas seminais, do pênis e da próstata, engrossamento das cordas vocais (voz mais grave), aumento da quantidade de áreas de pêlos no corpo e genitália, oleosidade da pele (produzindo acne) e aumento (ou excitação inicial) da performance sexual. Além de ossificação prematura dos ossos longos (em adolescentes). Alguns atletas alegam um engrossamento dos pêlos faciais, crescimento de pêlos no peito e parada da queda de cabelo. As mulheres podem experimentar sintomas semelhantes, incluindo a dilatação do clitóris ,modificação da voz, aumento no tamanho das glândulas sebáceas, acne e o fluxo menstrual interrompido ou irregular, sendo apenas este último reversível com a parada da administração da droga os outros efeitos virilizantes permanecem.

Suscetibilidade de lesão no tecido conectivo – Principiantes na musculação que se utilizam de esteróides aumentam sua força e volume muscular com muito mais rapidez do que os tecidos tendinosos e conectivos acompanhantes. Com o aumento excessivo de força no músculo, o esforço extremo pode freqüentemente causar a ruptura do tecido conectivo.

Após a interrupção do uso de esteróides:

Aumento de suscetibilidade às infecções, perda de peso e perda de força.
Com o equilíbrio negativo do nitrogênio, não ocorre a sintetização suficiente de proteína para afetar a recuperação, especialmente se a pessoa insistir no treino pesado durante este período.

Enrijecimento e sensibilidade nas articulações – Geralmente ocorre o enrijecimento da articulação acompanhado de fortes dores. Alguns levantadores experimentados recomendam a diminuição gradual da dosagem, antes da interrupção total, para combater este problema.

Outros efeitos – Mais raros porém devem ser mencionados como: hepatite (agulha infectada), câimbra, câncer, cefaleias, náuseas e distúrbios gastrintestinais, tendência a sangramento nasal, sonolência, sensação de bem-estar, interrupção da função da tireóide, perda de apetite, aumento de apetite, irritação intestinal (sangue nas fezes), tontura, e, em alguns casos redução da massa pobre do corpo.Quase todos os atletas estão conscientes dos riscos em potencial envolvidos no uso (e abuso ou mau uso ) do esteróide, mas acham que os riscos não são tão importantes quanto as recompensas em potencial. “Vencer a qualquer custo.”

Os resultados “benéficos” do uso dos esteróides :

– Aumento de força e volume muscular – As miofibrilas (elementos contráteis da célula muscular), aumentam de número através do treinamento intenso e regime alimentar adequado. Uma certa quantidade de força pode ser conseguida, contudo, esta é temporária. também há um crescimento em volume devido tanto a edema (retenção de água) quanto ao aumento do conteúdo sarcoplasmático (músculo).

Aumento do nível respiratório e resistência – Aumento do número de mitocôndrias melhorando assim a capacidade de respiração celular. Também porque o nível de cortisona no sangue aumenta, fornecendo maior resistência.

Aumento da vascularidade (fisiculturistas) – Acredita-se que o aumento da pressão sanguínea que geralmente acompanha o uso de esteróides seja o fator principal.

Melhoria no tempo de recuperação após lesão ou treinamento – Devido ao fato da maior quantidade de nitrogênio no organismo e consequentemete facilidade para repor os tecidos.

Aumento da capacidade de executar repetições e séries com mais intensidade e peso – Provém da ressintetização do creatino-fosfato (cp), um importante substrato de energia rápida do músculo e também pelo aumento de cortisona no sangue.

Aumento da agressividade – Também apresenta-se como um fato benéfico pois acredita-se que o aumento de agressividade faça com que a pessoa trabalhe com mais esforço para mover pesos pesados.

Meios ergogênicos

HCG

É uma proteína natural produzida pela placenta de uma mulher grávida. Similar ao hormônio Luteinizante. Para homens atletas, o HCG é usado para aumentar a produção de testosterona. Durante o ciclo de esteróide, os testículos param de produzir testosterona (se atrofiam); O HCG pode ser utilizado durante ou depois de um ciclo esteróide anabólico para manter ou promover o estímulo dos níveis naturais de testosterona. Acredita-se que o HCG ajuda o restabelecimento da função testicular. As pesquisas sobre as dosagens são limitadas, embora sabem que se deve administrar até 1500 UI de HCG de três a cinco dias. Fisiculturista chegam a utilizar 2000 a 5000 UI injetáveis a cada cinco dias. O uso prolongado de HCG pode suprimir a produção de gonadotropinas. Em alguns casos a superdosagem do HCG pode causar vômitos, náuseas e mal estar pela manhã.

CLOMID (Citrato de Clomifene)

É tipicamente prescrito para mulher para agir na ovulação. No homem a aplicação de CLOMID causa elevação no hormônio fólico estimulante e no hormônio luteinizante. Como resultado, a produção natural de testosterona é também acrescida. Fisiculturistas usam 50-100 mg/dia por 2 semanas, período em que a produção endógena da testosterona volta a um nível aceitável. CLOMID irá gradualmente aumentar o nível endógeno sobre este período; Se um aumento imediato é considerado desejável, os atletas comumente usam o HCG para ser acoplado nas semanas e o tratamento é continuado com CLOMID. Apresenta poucos efeitos colaterais e atletas não experimentaram problemas com esta substância.

NOVALDEX (Citrato de Tamoxifen)

Novaldex é um não esteróide que possui potentes propriedades anti-estrogênicas. É utilizado para evitar a ginecomastia, pois ela é muito efetiva neste aspecto. No usuário de esteróide, isto acontece quando o esteróide aromatiza em estrogênio. Atletas utilizam de 1 a 2 comprimidos/dia.

CLENBUTEROL

É um medicamento usado como broncodilatador no tratamento de asma. Clenbuterol é um Beta-2-Agonista com propriedades similares ao da adrenalina. Sua ação estimula o SNC (Sistema Nervoso Central) e são reportados efeitos colaterais como: mãos trêmulas, insônia, náusea, elevação da pressão sangüínea e ansiedade. Clenbuterol é avaliado em comprimidos de 20 mcg; Comumente são usados de 2 a 8 comprimidos por dia. Para perda de gordura, pode ficar efetivo no organismo de 3 a 6 semanas, depois disto suas propriedades podem diminuir. Para maximizar os efeitos desta substância, é utilizado 2 dias sim, 2 dias não, para que os receptores não sejam fechados.

EFEDRINA-CAFEÍNA-ASPIRINA

A Efedrina é um agente lipolítico conhecido já a algum tempo, porém perde seu efeito se utilizada por longos períodos. Para contornar isto, foi adicionado a CAFEÍNA e a ASPIRINA afim de prolongar os seus efeitos. A combinação fica efetiva nas seguintes dosagens: 20 mg de EFEDRINA, 30 mg de CAFEÍNA, 80 mg de ASPIRINA. Esta combinação rendeu efeitos bons (queima de gordura) e ruins (tremores, aumento da freqüência cardíaca) que retornaram ao normal alguns dias depois. Atletas utilizam esta combinação como uma saída ao uso do CLENBUTEROL, só que nas dosagens de 45 mg EFEDRINA; 500 mg CAFEÍNA (guaraná cápsulas); e 300 mg de ASPIRINA, dividida em 3 doses diárias.

DIURÉTICOS

Os diuréticos têm como função primária filtrar o sangue de resíduos materiais que são originados de processos metabólicos normais. Os tipos de diuréticos existentes são: tiazidas, diuréticos LOOP, osmóticos, inibidores de anidrose carbônica e de vasodepressão. Esta substâncias provocam efeitos colaterais gravíssimos como: palpitações, cãimbras, tonturas e vertigens. As mortes de alguns atletas foram atribuídas ao esteróide anabólico, mas os diuréticos podem ter sido os culpados.

INSULINA

Virou febre a utilização da insulina entre os fisiculturistas devido ao efeito anabólico que pode oferecer. Com as injeções no tempo certo, ela ajuda a carregar glicogênio assim como outras substâncias o músculo. Estudos recentes tendenciam mostrar que a quantidade de insulina produzida pelo organismo é exaurível. Alguns fisiculturistas obtiveram resultado com a utilização da insulina, outros só provaram seu efeito poupador de gordura. Diante dos efeitos colaterais gravíssimos, esta hipótese deve ser descartada.

GH

O hormônio do crescimento humano (GH), também conhecido como somatotropina é produzido por processos endógenos pela adeno-hipófise e participa ativamente dos processos de elaboração tecidual e do crescimento humano. Mais especificamente , o GH estimula o crescimento do osso e acelera a oxidação dos ácidos graxos ao mesmo tempo que reduz o fracionamento da glicose e dos aminoácidos. . O uso do GH atrai o atleta de força e potência, pois em níveis fisiológicos este hormônio estimula a captação de aminoácidos e a síntese protéica pelo músculo ao mesmo tempo que acelera o fracionamento das gorduras e conserva as reservas de glicogênio. Os efeitos colaterais: incidência de diabetes, gigantismo, síndrome acromegálica, aspereza da pele, espassamento dos ossos e crescimento excessivo dos tecidos moles; em adultos, como efeitos colaterais menos óbvios de resistência insulínica, retenção de água e compressão do túnel do carpo.

Anfetaminas

As anfetaminas, ou pílulas estimulantes, são compostos farmacológicos que exercem um poderoso efeito estimulante sobre a função do sistema nervoso central. Causam dependências fisiológicas, cefaléias, tremores, agitação, febre, vertigem e confusão. A principal razão pela qual os atletas tomam anfetaminas consiste em “levantar-se” para o evento e se manterem ativos e psicologicamente prontos para competir.

Cafeína

A cafeína é de um grupo de compostos lipossolúveis denominados metilxantinas, encontrados naturalmente nos grãos de café, folhas de chá, chocolate , grão de cacau e noz de cola. A cafeína é absorvida rapidamente a partir do trato intestinal e alcança concentrações plasmáticas máximas cerca de 1 hora após a ingestão, exercendo sua influência sobre os sistemas nervoso, cardiovascular e muscular. O feito ergogênico da cafeína no exercício de endurance de alta intensidade resulta provavelmente do uso facilitado das gorduras como combustível para o exercício , mediado talvez pela liberação de catecolaminas pela medula supra-renal, poupando dessa forma as reservas corporais limitadas de carboidratos.

Conclusão

Os recursos especiais para a melhoria do desempenho e do condicionamento físico, estão sempre em desenvolvimento, visando uma superação utópica dos limites anatomos-fisiológicos do ser humanos. Não existem estudos que comprovam que os ergogênicos realmente são efetivos e não dispõe de efeitos colaterais aceitáveis em contrapartida com os resultados preteridos

A atividade física deve ser praticada respeitando as fronteiras da saúde, não permitindo que tentamos ultrapassá-las com substâncias que predispõe resultados baseados em objetivos de performace de rendimento, forçando assim uma sintetização da evolução humana .

Alpinismo

0

Autoria: Mara Valéria Gonçalves

O montanhismo pode ser definido como a ascensão de montanhas por caminhada ou escalada. Faz parte de um conjunto de atividades bastante amplo, denominado excursionismo.

Devido ao fato do montanhismo ter-se iniciado nos Alpes, recebe também o nome de alpinismo, denominação que se generalizou bastante, tornando-se amplamente aceita. A rigor, a palavra “alpinismo” deveria ser reservada para as atividades montanhísticas realizadas nos Alpes, assim como “andinismo” para os Andes, “himalaismo” para o Himalaia, etc.

Primórdios – A Cordilheira dos Alpes é considerada o berço do montanhismo. A primeira ascensão de vulto a um dos seus picos foi o Monte Aiguille, em território francês, por Antoine de Ville, que realizou uma verdadeira escalada sobre rocha. Esse fato ocorreu em 1492 e causou enorme furor na época, pois acreditava-se que as altas montanhas eram habitadas por dragões e seres alienígenas. Tão intenso era esse temor, que as próximas conquistas alpinas importantes só se deram em 1744 (Monte Titlis), 1770 (Monte Buet) e 1779 (Monte Velan).

Em agosto de 1786, o médico Michel Gabriel Paccard e o montanhês, caçador e garimpeiro de cristais Jacques Balmat conseguiram atingir o teto da Europa Ocidental: o Monte Branco (4.807 m), situado nos Alpes franco-italianos. Tal aventura foi motivada por um prêmio oferecido por um cientista e naturalista suíço Horace Bénédict de Saussure, que pensava fazer naquele cume alguns ensaios científicos. De fato, um ano depois, o próprio Saussure chegou ao topo do monte, integrando uma expedição com Balmat e outros 17 guias, e ali realizou diversas experiências.

O sábio tornou-se responsável pelo enorme interesse que as ascensões em montanha passaram a despertar, porém sob uma ótica mais científica do que esportiva. Medo e superstição ainda rondavam aqueles cumes nevados.

Durante os próximos 70 anos, algumas conquistas notáveis foram feitas na cadeia dos Alpes, entre elas o Jungfrau (1811), o Finsteraahorn (1812), o Watterhorn (1854) e o Monte Rosa (1855). Entretanto, só em 1856, quando um grupo de montanhistas conseguiu ascender ao cume do Monte Branco sem auxílio de um guia experiente, é que o esporte começou a apresentar um surto de popularidade na Europa. Encerrava-se, dessa forma, o período do montanhismo puramente exploratório e de caráter científico.

Vanguarda – Em 1857, era fundada a primeira associação de montanhismo do mundo – o Clube Alpino de Londres – conseqüência natural do fato de serem os ingleses na época, senhores quase absolutos das escaladas alpinas. Com a criação do clube, o esporte começava a se organizar. O exemplo inglês foi seguido pelos demais países, e logo apareceram diversas organizações em toda a Europa. Primeiro na Áustria, em 1862, e, um ano depois, na Suíça e Itália. Em 1874, surgia o Clube Alpino Francês.

Antes mesmo que muitos dos cumes alpinos fossem escalados pela primeira vez, esforços começaram a ser dirigidos para as montanhas de outras regiões do mundo. Os principais picos do Cáucaso foram conquistados por ingleses em 1868. Nos Andes, o Chimborazo foi vencido em 1880 e o ponto culminante das Américas – o Aconcágua (6.959 m) – em 1897. Na África, foi escalado o pico mais alto do continente – o Kilimanjaro (5.895 m) – em 1889, assim como o Kenya em 1899 e o maciço de Ruwenzori em 1906. A seguir, vieram o Trisul (Himalaia) em 1907 e o teto da América do Norte – o Monte McKinley (6.194 m), localizado no Alasca – em 1913.

Clássico – O período compreendido entre o final dos anos 20 e o início da Segunda Grande Guerra (1940) constituiu a época clássica do montanhismo esportivo. Com o aparecimento das técnicas, foram vencidos desafios de vulto na cadeia dos Alpes – como a face norte do Eiger em 1938 – e, em particular, no maciço dos Dolomitas e nas agulhas e paredões do maciço do Monte Branco.

No Himalaia, uma expedição anglo-americana obteve êxito sobre o Nanda Devi em 1936; no Wyoming (EUA), a Devil Tower (Torre do Diabo) foi escalada no ano seguinte. Outros picos – das Montanhas Rochosas ao Cáucaso e da Noruega à Antártica – receberam logo suas ascensões pioneiras. Registra-se nessa fase o aparecimento de escaladores habilidosos como o francês Pierre Allain e os italianos Emilio Comici, Ricardo Cassin e Giusto Gervasutti.

1º Período do montanhismo moderno – Este período compreendeu a segunda metade da década de 40 e toda a década de 50. Novas e difíceis vitórias foram conseguidas em toda a extensão da Cordilheira dos Alpes. Escaladores como Jean Couzy, Lionel Terray, Edouard Frendo, Louis Lachenal e Gaston Rébuffat deram continuidade às técnicas de escalada em rocha e gelo iniciadas por Armand Charlet, Couttet, Simond e Pierre Allain.

Em 1951, os italianos Walter Bonatti – um dos maiores alpinistas de todos os tempos – e Luciano Ghigo introduziram nos Alpes Ocidentais a técnica da progressão em artificial, aplicando-a na escalada do Grand Capucin. Notáveis ascensões foram realizadas por Cesari Maestri, Hermann Buhl, Rebitsch, René Desmaison e o talentoso Bonatti.

Nos Estados Unidos, consolidou-se o ataque às extensas paredes rochosas do vale do Yosemite: Lost Arrow (1947), Sentinel Rock (1950), Half Dome (1957) e um paredão de 1.000 metros no El Capitan (1958). Foi também a época de grandes feitos nas altas montanhas do Himalaia e do Karakoram, tais como: a primeira ascensão a um pico com mais de 8.000 metros, o Annapurna I (8.078 metros), em 1950, pelos franceses Maurice Herzog e Louis Lachenal; o Nanga Parbat (8.126 metros), em 1953, pelo austríaco Hermann Buhl; o Everest, ponto culminante do planeta (8.872 metros, segundo recentes medições por satélite), em maio de 1953, pelo neozelandês Edmund Hillary e o sherpa Tensing Norkay; e o K-2, segunda montanha mais alta do mundo (8.858 metros, também aferido por satélite), em 1954, pelos italianos Achille Compagnoni e Lino Lacedelli. Nos Andes, o Cerro Fitz Roy foi vencido em 1952 por Guido Magnone e Lionel Terray.

2º Período do montanhismo moderno – Finalmente, a partir do término da década de 50, apareceu o segundo período do montanhismo esportivo moderno, que se estende até nossos dias. Sucederam-se várias conquistas de picos, agulhas e paredes nos Alpes e nas Dolomitas. No Yosemite, o El Capitan e o Half Dome receberam novas vias, fruto de escaladas atléticas de extrema dificuldade. Nos Andes da Patagônia, foram escalados a Torre Central del Paine (1963), o Cerro Torre (1974) e a Torre Egger (1975).

Nas cadeias do Himalaia e Karakoram, com a redução do número de montanhas virgens por conquistar, novas vias de dificuldade cada vez maior foram abertas em picos anteriormente atingidos. Destacam-se os feitos de Reinhold Messner, que, além de ter subido o Everest em 1978 sem recorrer a oxigênio engarrafado, o Nanga Parbat em solo – isto é, desacompanhado – em 1979, e novamente o Everest, também em solo, em 1980, já escalou todos os 14 picos do planeta com altitude superior a 8.000 metros.

Mas nas últimas duas décadas, o montanhismo difundiu-se por um sem-número de países e tem experimentado, na atualidade, um constante progresso evolutivo. Sua organização, em âmbito mundial, encontra-se a cargo da Union Internationale des Associations des Alpinisme – UIAA, com sede em Genebra (Suíça), congregando federações do mundo inteiro.