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