quarta-feira, 27 de fevereiro de 2013

Coleções .Net ( C# ) - Final - HybridDictionary

Hoje vamos finalizar a série coleções com a classe HybridDictionary, se vc não viu os outros posts, não deixe de conferir:

http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-1-queue.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-2-stack.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-3-hashtable.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-4-sortedlist.html 
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-5-listdictionary.html

A classe HybridDictionary está localizada dentro do namespace System.Collections.Specialized e implementa uma coleção de Chave/Valor, assim como a HashTable então qual é a diferença ?
simples, quando precisamos trabalhar com uma coleção grande a melhor escolha é a HashTable, quando vamos trabalhar com uma coleção pequena, usamos a ListDictionary mas quando não sabemos o tamanho da coleção, ai entra em ação a HybridDictionary, pois enquanto a coleção é pequena ela é implementada como a ListDictionary e quando a coleção fica muito grande ela se converte para HashTable.
a utilização é igual a HashTable e ListDictionary, vamos ver o exemplo:

no evento click da nossa tela padrão começamos com o de costume, instanciando a classe e adicionando algumas informações na coleção para testes:


agora percorremos a coleção adicionando os itens na listBox


depois procuramos um item especifico na coleção e mostramos no listBox


por fim, limpamos a coleção


agora é só testar a aplicação e ver o resultado


bom pessoal é isso, espero que tenham gostado dessa série, que tenha servido pra alguém, e vamos ver o que nos aguarda no próximo post.

um abraço a todos e não esqueçam daquela clicadinha maneira nos anuncios..rsrsrs





sexta-feira, 15 de fevereiro de 2013

Coleções .Net ( C# ) - Parte 5 ListDictionary

Continuando nossa série Coleções .Net (se você não acompanhou os posts anteriores:
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-1-queue.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-2-stack.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-3-hashtable.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-4-sortedlist.html 
) , hoje vamos conhecer a ListDictionary, essa classe está localizada no namespace System.Collections.Specialized e implementa uma coleção de Chave/Valor, essa classe é semelhante a HashTable, a grande diferença das duas, é que a ListDictionary é otimizada para trabalhar com pequenas coleções.
vamos ao exemplo

começamos com nossa tela padrão de testes:


no click do botão, colocaremos o seguinte código, primeiro instanciamos um objeto da classe ListDictionary e adicionamos itens na coleção:


agora vamos percorrer a lista adicionando os valores na listBox, e colocamos um separador para indicar o fim do processo:


vamos buscar um item na coleção e adicionar na list box, e adicionar mais um separador:


e por fim limpamos a coleção:


execute a aplicação e veja o resultado:


espero que estejam gostando da série e que eu tenha ajudado alguém,  na próxima veremos a classe HybridDictionary.

um abraço a todos.

gostou ? clica em um anuncio ai !! rsrs









segunda-feira, 11 de fevereiro de 2013

Coleções .Net ( C# ) - Parte 4 SortedList

Continuando nossa série coleções .NET, veremos hoj a SortedList, como todas as outras vistas até agora ela também está localizada dentro do namespace System.Collections, e implementa uma coleção de Chave/Valor assim como a HashTable.
O uso dessa classe é bem semelhante a HashTable, a principal diferença é que o array de chaves da SortedList é sempre ordenado, portanto para cada inserção ou exclusão, a classe sincroniza os itens para que permaneçam ordenados.
Como a HashTable, a classe também não aceita chave duplicada e para percorrer pela coleção é necessário utilizar a classe DictionaryEntry, vamos ao exemplo:

começamos com nosso form padrão de testes ( se você não viu, acompanhe a série):
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-1-queue.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-2-stack.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-3-hashtable.html


no evento click do botão, começaremos nosso código com o de costume, instanciando um objeto da classe e preenchendo com os itens:


agora percorremos a lista preenchendo o listBox com os itens e adicionamos um separador para marcar o fim da lista:

 
buscamos um item qualquer da lista e adicionamos mais um separador:


 e para finalizar limpamos a lista:


execute o projeto e veja o resultado:

Veja que independente da ordem em que os itens foram adicionados, a SortedList organiza pela chave o que facilita a vida em muitas situações.

espero que tenham gostado de mais esse post, na continuação veremos a ListDictionary.

gostou ? então da uma clicadinha em um anuncio..rsrs...e pode deixar mensagens tb =D

um abraço a todos e até mais
 


 

quinta-feira, 7 de fevereiro de 2013

Coleções .Net ( C# ) - Parte 3 HashTable

Continuando a série coleções, vamos ver a classe HashTable.
essa classe também esta localizada no namespace System.Collections, e implementa uma coleção de Chave/Valor.
Internamente a classe contem dois objetos array, um para armazenar as chaves e outro para os valores, ao inserir um item somos obrigados a informar uma chave, que não pode ser repetida, para prevenir exceções de chave duplicada, ao inserir um item, vale verificar se ele já existe.
Para adicionar itens usamos o metodo ADD, para verificar se o item existe usamos o metodo ContainsKey, para interar sobre a coleção é necessário usar um objeto da classe DictionaryEntry, vamos ao exemplo:
Começamos com nossa telinha padrão ( pra quem não viu a criação, acompanhe a série) :
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-1-queue.html
http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-2-stack.html

agora no evento click do botão começamos instanciando o objeto da classe, adicionando os itens (Chave/Valor), Percorremos a coleção adicionando os itens na listBox, e colocamos um separador.

 
agora vamos buscar um item na coleção, caso ele exista imprimimos no listBox também
para finalizar, adicionamos mais um separador, verificamos se a coleção tem algum item e limpamos ela.
execute sua aplicação e veja o resultado:

espero que tenham gostado e que tenha ajudado alguem, na proxima veremos a classe SortedList

não esqueção da clicadinha no anuncio....rsrsrs

abração.

quarta-feira, 6 de fevereiro de 2013

Coleções .Net ( C# ) - Parte 2 Stack

Continuando a série coleções em .net, hoje vamos ver a classe Stack, essa classe também está localizada dentro do namespace System.Collections, ela implementa o mecanismo LIFO (Last In First Out), ou seja, o último elemento a ser adicionado é o primeiro a sair.
Para adicionar um item na lista usamos o método Push,  para retirar usamos o método Pop, para limpar todos os elementos a operação Clear e a operação Peek para retornar o elemento que está no topo.
vamos ao exemplo, usarei o mesmo projeto da parte 1  http://programaresimples.blogspot.com.br/2013/02/colecoes-net-c-parte-1-queue.html
o form tem apenas um listBox e um botão:

no evento click do botão, começaremos com o seguinte código:
Primeiro instanciamos um objeto da classe Stack, depois preenchemos ela com 3 itens os números 5,2 e 3
continuamos com esse código:

 Agora para finalizar, colocamos uma linha para separar a inserção dos itens da exclusão, e colocamos o código responsável por retirar os itens, feito isso, rode a aplicação e veja o resultado:

veja que o ultimo item a ser inserido na lista, é o primeiro a sair, assim como foi dito no começo do post.

espero que tenham gostado, e no próximo veremos a classe HashTaable.

não esqueçam do cliquezinho no anuncio..rsrs
um abração a todos.




terça-feira, 5 de fevereiro de 2013

Coleções .Net ( C# ) - Parte 1 Queue

Vamos ver um pouco sobre coleções no .NET, farei uma série de post's para aprendermos um pouco de cada uma das mais usadas, hoje mostrarei o Queue.
A classe Queue fica dentro do namespace System.Collections e utiliza o mecanismo FIFO (First In First Out), ou seja primeiro elemento que entra na fila é o primeiro que sai.
Para incluir um elemento nessa classe usamos a palavra Enqueue e para retirar usamos Dequeue, vamos ao exemplo:
Crie um projeto novo no Visual Studio, no caso estou usando o 2010, e coloque um listBox e um Botão no form:


o listBox deixei com o nome padrão mesmo, e o botão dei o nome de btnAdicionar, feito isso de dois cliques no botão para entrarmos no evento click dele e coloque o seguinte código:

primeiro lembre de colocar o using System.Collections para podermos usar a classe, a primeira coisa a fazer é instanciar um objeto da classe Queue "Queue Teste = new Queue();" e depois adicionar os itens no objeto usando o método Enqueue(), eu adicionei na minha instancia os nomes, João, José, Marcio.
agora adicione o seguinte trecho:
Agora fizemos um foreach na coleção adicionando cada item no listBox, vamos para a parte final:
no ultimo trecho, adicionamos uma linha para separar a inserção dos itens da exclusão, depois fizemos um while na coleção, retirando os itens e mostrando no listBox a ordem em que eles foram retirados, feito isso rode a aplicação e click no botão para ver a execução:

Veja que os itens foram retirados na mesma ordem em que foram adicionados, ou seja, o primeiro que entrou foi o primeiro que saiu ( FIFO)

espero que tenham gostado e no próximo post veremos a classe Stack.

um abraço a todos e não esqueçam da clicadinha básica no anuncio..rsrsrsrs






segunda-feira, 4 de fevereiro de 2013

WPF - Form Transparente

Mostrarei hoje, uma maneira bem simples de fazer um form transparente com o WPF, com esse tipo de customização podemos dar uma experiencia rica ao usuário final.

primeiro crie seu projeto do tipo WPF, e no caso aqui usarei C# como linguagem, como só vamos usar uma linha de código, pode usar a linguagem de sua preferencia. ( se você não viu como criar um projeto do zero, de uma olhada nesse link :
http://programaresimples.blogspot.com.br/2013/02/iniciando-com-wpf-animacao-simples.html

com o projeto criado a primeira coisa a fazer é, selecionar a Window e nas propriedades marcar a opção que habilita a transparência "AllowsTransparec..."
habilitando essa opção repare que os botões de minimizar, maximizar e fechar da janela, assim podemos customizar a nosso gosto, para esse exemplo só farei o botão de fechar.
coloque um retângulo, ou forma que desejar em cima do form, pois essa forma será o forme real, veja que o retângulo da a opção de arredondar as bordas, chegando com o mouse na borda você verá as linhas para arrastar e arredondar a seu gosto:
agora vamos sumir com o form principal, selecione na paleta de objetos ou clicando no form, a opção Window, e nas propriedades clique na opção No Brush da cor de fundo.

pronto agora nosso retângulo é o form, agora todos os componentes que usarmos tem que ser colocado em cima dele, aqui no exemplo só colocarei um botão que será nosso fechar, mas você pode brincar a vontade.
no evento clique do botão, coloquei apenas o código para fechar o form "Close();"
agora vamos dar uma corzinha no retângulo e torna-lo transparente, selecione o retângulo selecione a opção de gradiente na cor de fundo e de a cor que desejar, veja que é ao habilitar o gradiente é mostrado uma barrinha com as mudanças de cor, que é onde você seleciona a cor para alterar, pode também adicionar mais cores ou retirar as que já existem, selecionando a paletinha da cor você vera o RGB dela e tambem o A, que é o alpha da cor, é o que nos dará a transparência,  selecione as paletas de cor que desejar e diminua a porcentagem do alpha até chegar em uma transparência de seu agrado, no meu caso deixei 60% nas duas.
pronto agora pode rodar a aplicação e ver o resultado final, depois coloque os componentes no form para ver como eles vão ficando.

espero que tenham gostado, se gostou da uma clicadinha no anuncio no fim do post, e curta no face..rsrs
abraço a todos e até a proxima







sexta-feira, 1 de fevereiro de 2013

Iniciando com WPF - Animação simples passo a passo

Hoje vou mostrar uma pequena animação feita em WPF, mostrando desde a criação do projeto, tirando assim pequenas duvidas de quem está iniciando nessa tecnologia .NET.
no nosso exemplo usarei o Expression blend 4.
logo que abrimos o programa temos uma tela inicial com os últimos projetos abertos, um help e uns exemplos de aplicações, vamos em New Project.












agora será mostrado as opções de projetos, temos WPF que é uma aplicação desktop, Silverlight que é uma aplicação rica para web, e no meu caso tenho também instalado o template para Windows Phone que é a nova plataforma móvel da microsoft, vamos escolher WPF application.
Aqui também podemos definir qual será a linguagem usada no code-behind da aplicação que pode ser C# ou VB.NET, no nosso caso não usaremos nem uma linha de código, mas vou deixar selecionado C#.
pronto nosso projeto está criado, temos uma janela em branco para trabalharmos, do lado esquerdo temos uma paleta com os componentes existentes e opções para manipulação dos objetos, uma paleta com varias abas com o conteúdo do projeto, as triggers dos objetos ( que vamos ver já já ), os controles disponíveis e as states e parts deles, em baixo temos os objetos e a timeLine.
do lado direito temos as propriedades, os eventos, nosso resource e data do projeto.
primeiro vamos dar uma corzinha no fundo da janela, afinal estamos mexendo com WPF..rsrs...selecione na paleta de objetos o LayoutRoot, nas propriedades dele temos o backgroud, vai estar selecionado a opção solid color brush, que é a segunda opção, vamos colocar na terceira que é Gradient brush, vamos ter um degradê com duas cores, preto e brando, podemos adicionar quantas cores quisermos e mesclar de diversas maneiras, no meu caso só mudei o preto para azul, você pode ficar a vontade e pintar do seu gosto.
agora vamos colocar um botão, que vai acionar nossa animação, e um textbox que vai ser o objeto animado, vá a paleta da esquerda e arraste esses dois componentes para a tela, deve ficar mais ou menos assim:
agora só para explorarmos um pouquinho mais os recursos, vamos colocar uma sombra no textbox, selecione ele e nas propriedades do lado direito vai encontrar uma opção EFECT, clique no botão New ao lado dessa opção e na janela que abrir seleciona o DropShadowEffect, depois de selecionar essa opção, você tera uma série de propriedades referentes ao efeito que podem ser customizadas conforme seu gosto, vou deixar padrão mesmo mas pode fuçar a vontade... =D
agora vou partir para a animação, mas se você quiser ( e deve ) pode dar mais uma fuçada nas opções.
na paleta Objects and TimeLine clique no botão com um sinal de + e será mostrado uma janela para dar o nome da animação, darei o nome de Animacao mesmo.
vai aparecer uma linha de tempo onde podemos mudar os estados dos objetos conforme o tempo da animação
vamos selecionar o textbox que será nosso objeto animado, no tempo 0 de um clique no botão 
cada vez que clicamos nesse botão e grava o estado do objeto na linha de tempo, então o que estamos fazendo é gravar no tempo zero o estado inicial do textbox, depois arrastamos a timeLine para o tempo 1 que é um segundo da animação, movimente o textbox na tela para onde vc quiser e clique no botão para salvar o estado de novo, no tempo 2 movimente de novo o textbox e clique no botão, quando achar necessário basta fechar a storeboard e a animação está pronta, veja conforme você vai gravando o estado do objeto, a timeLine vai sendo preenchida na linha do objeto selecionado.
no exemplo fiz uma animação de 2 segundos usando apenas o textbox, vc pode usar todos os objetos que quiser, colocar até mais, e mexer nas propriedades que quiser, aconselho que faça isso mesmo para ir entendendo o funcionamento.
se você rodar a aplicação assim, já vai funcionar, porem no carregamento da janela já será executado a animação e queremos que ela seja executada no click do botão, para isso iremos mexer nas triggers que vimos no começo do post.
va na paleta do lado esquerdo na parte superior, e seleciona a aba trigger, você verá que tem um evento criado lá, que é o Window.Loaded e nesse evento a nossa animação está sendo iniciada:
vamos mudar isso para o click do botão, selecione o evento e na parte de baixo dele poderemos alterar, onde esta "When" mude de Window, para button, (se não aparecer o button, selecione o botão na janela que ele aparece nas opções), agora do lado do button, temos os eventos dele, selecione o click e logo abaixo está o nome da Animação e a opção Begin, deixe assim mesmo.
resumindo, quando o botão for clicado a Animação sera iniciada, é isso que queremos.
agora é só compilar a aplicação, clicar no botão e ver o resultado... =D
solte a imaginação e crie aplicações ricas para seus usuários.

espero que tenham gostado, e até a próxima !!! ( não esqueçam da clicadinha no anuncio...rsrs)