|
É sempre bom estabelecer convenções de nomes para objetos do Visual Basic, sob risco de não se saber, no meio de um projeto mais complicado, qual o tipo de um objeto cujo nome é, por exemplo, "dados". A tabela 3 a seguir apresenta alguns exemplos para os controles mais comuns. Tabela 3
O BLOCO DE NOTAS BLOCO.VBP Processamento de texto é uma das funções básicas dos computadores e o VB oferece algumas ferramentas poderosas relacionadas a texto. Nosso objetivo inicial é projetar um Bloco de Notas simplificado que funcione a partir da caixa de textos do Visual Basic e que disponha dos seguintes recursos:
Futuramente, nosso Bloco de Notas se transformará em um editor mais poderoso, capaz de abrir e salvar arquivos do tipo texto e de funcionar também a partir de menus. O Bloco de Notas usará as seguintes propriedades de controles do Visual Basic:
Além disso, vamos precisar do método SetFocus, cuja sintaxe é a seguinte: Objeto.Setfocus O "Foco" é uma
propriedade comum a todos os controles do VB. Apenas um
objeto pode ter o foco de cada vez e apenas objetos
visíveis podem receber o foco. Geralmente, o objeto que
tem o foco é diferenciado dos outros por uma legenda ou
título realçado. Em tempo de execução, o usuário
define o foco clicando sobre os objetos ou usando a tecla
TAB. O método Setfocus também define o foco para um
objeto em tempo de execução, mas de maneira
automática. Se ocorrer uma tentativa de definir o foco
em um objeto invisível, um erro de execução será
gerado. a) Criando a interface de BLOCO.VBP Figura 8 - Objetos de BLOCO.VBP b) Definindo as propriedades Tabela 4
Note que a caixa de textos suporta textos com várias linhas, por causa da propriedade "Multiline" e tem uma barra de paginação vertical. Esta barra de paginação não é um objeto adicional, mas faz parte da caixa de textos. O VB cuida de toda a automação necessária para a rolagem do texto. A característica de edição em linhas múltiplas seria perdida caso definíssemos também uma barra de paginação horizontal para a caixa. É por esta razão que estamos usando apenas uma barra de paginação vertical. c)
Escrevendo o código Public CortaTexto As String O primeiro botão a ser
implementado é o "Apagar". Este botão
apagará todo o texto da caixa de texto,
indiscriminadamente. Tudo o que temos a fazer é
"anular" a propriedade text da caixa de textos.
Para tanto, dê dois cliques sobre o botão apagar e
escreva o seguinte código: Private
Sub cmdApagar_Click() Após apagar o texto, o que é feito na primeira linha, devemos jogar o foco novamente na caixa de textos, pois após clicar o botão "Apagar" o foco ficou com ele. Seria desagradável se o usuário tivesse que clicar na caixa de textos toda vez que usasse o botão "Apagar". O computador não se importa de prestar este pequeno favor. O botão "Sair" também é fácil e o código é idêntico ao do aplicativo Borbolet.vbp, ou seja: Private
Sub cmdSair_Click()
Os procedimentos para os botões "Cortar" e "Colar" requerem um raciocínio adicional. O que desejamos fazer é cortar um trecho de texto, provavelmente, mas não necessariamente, para ser colado em algum outro lugar. Logo, será necessário armazenar o texto recortado em alguma variável temporária, o que será conseguido com a variável CortaTexto. Clique sobre o botão "Cortar" e escreva o seguinte trecho: Private
Sub cmdCortar_Click() A primeira linha armazena
o conteúdo do texto selecionado na variável CortaTexto.
A segunda apaga o texto selecionado, dando um efeito de
que o texto foi recortado. Finalmente, a última linha
joga o foco novamente na caixa de textos. A prodecure
para o botão "Colar" atua de modo inverso a
"Cortar", ou seja, devemos recuperar o texto
armazenado em CortaTexto e atribuí-lo à propriedade
SelText da caixa de textos, conforme descrito a seguir. Private
Sub cmdColar_Click() O nosso "mini-editor" já funciona bem, mas algumas melhorias são necessárias. Primeiro, caso o usuário queira redimensionar o formulário, os botões e a caixa de texto não o acompanharão. Este problema pode ser contornado por meio do evento Resize do formulário. Este evento ocorre sempre que o formulário é redimensionado, seja por meio do mouse, seja por meio dos ícones de maximizar e minimizar. Resize também ocorre quando o formulário é exibido pela primeira vez, na entrada do programa. O que devemos fazer é ajustar a caixa de texto automaticamente no formulário cada vez que este for redimensionado, o que pode ser conseguido com alguns cálculos (estes cálculos são comuns em procedures de dimensionamento). Clique o formulário duas vezes, em tempo de projeto, e procure o evento Resize na caixa "Drop-Down" com o nome "Proc:". Nesta procedure, escreva o código abaixo. Private
Sub Form_Resize() Estudando a procedure de Resize com cuidado você verá que estamos simplesmente alterando valores de propriedades dos controles (em VB isto é feito com muito mais freqüência do que você pode imaginar). As primeiras quatro linhas ajustam a caixa de textos propriamente dita, de forma que sobre espaço em baixo para os botões (é por isso que a altura do botão Cortar - cmdCortar.Height - é descontada). As linhas seguintes ajustam a posição de todos os botões, atuando sobre as propriedades Left e Top. Como exercício, fica a tarefa de descobrir qual a finalidade do comando If ... Then. Copyright © 1998/1999 - Desenvolvido por Alvaro Augusto de Almeida (isso significa que você pode manter cópias para uso particular, mas não para divulgação). Dúvidas e sugestões serão bem vindas. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||