Delphi XE5 Leitura de Arquivos

Tamanho: px
Começar a partir da página:

Download "Delphi XE5 Leitura de Arquivos"

Transcrição

1

2

3 04 Delphi XE5 Leitura de Arquivos 05 Editorial Autor: Jeferson Silva de Lima Android Studio - Parte V 11 Autor: Luciano Pimenta Versionamentos de Arquivos o THVCheckVersion Parte 3 19 Índice Autor: Hamden Vogel 28 Dicas The Club 03

4 Editorial Av. Profº Celso Ferreira da Silva, 190 Jd. Europa - Avaré - SP - CEP Informações e Suporte: (14) Olá amigo, Estamos quase no final de mais um ano e o The Club continua como sempre cada vez mais empenhado em auxiliá-los com dicas, truques e novidades neste tão imenso mundo da programação. Ao longo deste período, tivemos o privilégio de proporcionar assuntos de diversas linguagens de programação, procurando sempre agradar o nosso público alvo que é você, caro leitor! Saliento que nossos consultores e colunistas estão sempre abertos a sugestões para poder melhor satisfazê-los. Neste mês, nosso consultor técnico Jeferson Silva de Lima escreveu o artigo Delphi XE5 - Leitura de Arquivos, abordando diversos tipos, como por exemplo: Imagens, textos e oriundos de Banco de Dados. Esta prática é muito comum em todos os projetos que desenvolvemos, neste caso para dispositivos móveis. Já nosso colaborador Hamden Vogel, escreveu a parte final do artigo Versionamentos de Arquivos o THVCheckVersion. Nesta terceira parte teremos como escopo principal a utilização da classe TLogClass que implementará o controle de Logs renderizando tudo em um Dbgrid personalizado. Para finalizar, nosso colunista Luciano Pimenta escreveu a quinta parte da série de artigos relacionados ao Android Studio. Recomendo a leitura para quem deseja aprimorar os conhecimentos sobre controle de telas, ListView agrupado, ExpandableView e o SearchView, ambos úteis para desenvolvimento de aplicativos móveis. Não podemos esquecer de nossa seção clássica de Dicas Delphi. Nós do The Club desejamos a todos uma boa leitura e um abraço! Thiago Montebugnoli - Editor Chefe Internet Cadastro: Suporte: Informações: Skype Cadastro: theclub_cadastro Skype Suporte: theclub_linha1 theclub_linha2 theclub_linha3 Copyright The Club 2013 Diretor Técnico Marcos César Silva Diagramação Vitor M. Rodrigues Design Vitor M. Rodrigues Revisão Denise Blair Colunistas Hamden Vogel Jeferson Silva de Lima Luciano Pimenta Lucas Vieira de Oliveira Thiago Cavalheiro Montebugnoli Impressão e acabamento: GRIL - Gráfica e Editora Taquarituba-SP - Tel. (14) Reprodução A utilização, reprodução, apropriação, armazenamento em banco de dados, sob qualquer forma ou meio, de textos, fotos e outras criações intelectuais em cada publicação da revista The Club Megazine são terminantemente proibidos sem autorização escrita dos titulares dos direitos autorais. Delphi é marca registrada da Borland International, as demais marcas citadas são registradas pelos seus respectivos proprietários. 04

5 Delphi XE5 Leitura de Arquivos Olá amigos, continuamos com nossa série de artigos Delphi XE5 mais especificamente com a plataforma Android, anteriormente vimos à utilização dos Intents e como customizar nossos aplicativos, já neste artigo vamos tratar um assunto mais comum e muito utilizado no Windows o que não poderia ser deixado de fora no Android que trata-se da leitura de arquivos através do Delphi (Imagens,.TXT e Bancos de dados). Aplicação Em nosso exemplo vamos simular a seguinte situação: Nossos arquivos serão colocados em uma pasta chamada THECLUB no Path padrão que utilizamos nosso banco de dados (.\assets\internal\). Juntamente com os arquivos que vamos trabalhar teremos também um arquivo de configuração chamado CONEXAO.txt, nele terá a seção responsável por gravar a informação da Pasta na qual nossos arquivos devem ficar. Diante desses fatores iniciais vamos começar com a criação do exemplo: Adicione um TabControl ao seu projeto e crie 2 TabItens para que possamos separar as funcionalidades em duas etapas. No primeiro Item precisaremos de 2 ListView para exibir as informações do banco de dados e de nosso arquivo de Imagem, adicione também um Memo para exibir os dados do arquivo de Texto e 3 Buttons que irão chamar cada arquivo separadamente e por fim adicione 1 Edit e 1 Label para exibirmos o Path atual que estivermos manipulando os dados. Sua tela deve ficar parecida com a imagem abaixo: Veja a Imagem 1 Tab 1. Na imagem acima já posicionamos e renomeamos os componentes de acordo com suas funções (Para que nenhum botão fique oculto em sua tela o ideal é adicionar um ScrollBox assim será possível mover a tela para exibir Imagem 1 Tab 1. 05

6 os itens mais abaixo). Será necessário adicionar 1 SQLConnection, 1 SQLDataSet para buscarmos os dados de nosso banco de dados (THECLUB.db) as configurações serão as mesmas que vimos em artigos anteriores, portanto, vincule seu SQLDataSet ao SQLConnection e utilize a seguinte consulta SQL: Para que o campo Item.Bitmap seja exibido deve-se alterar a propriedade ItemAppearance de seu ListView2 conforme imagem abaixo: Listagem 2 DDL Tabela de Pessoas. SELECT * FROM PESSOAS Listagem 1 SQL Pessoas. CREATE TABLE [PESSOAS]( [ID_PESSOA] INTEGER, [NOME] VARCHAR(30)); Crie também um ClientDataSet para que possamos carregar o arquivo de imagem (THECLUB.jpg) em memória, portanto, em seu ClientDataSet crie um campo do Tipo Blob e clique na propriedade CreateDateSet. Imagem 4 ListView. Antes de prosseguir adicione todos os arquivos ao seu Deployment THE- CLUB.jpg, THECLUB.txt, THECLUB.db e CONEXAO.txt o local de destino no Android será padrão para todos (.\assets\internal\theclub) com exceção do arquivo CONEXAO.txt que deve ficar em um local fixo (.\assets\internal). Veja exemplo conforme imagem abaixo: Com as conexões criadas vincule cada componente em um ListView diferente, ou seja, em seu Listview1 vincule o campo NOME ao Item.Text. Imagem 5 Deployment. Adicione também as seguintes Uses ao seu projeto: Listagem 3 Uses. System.IniFiles, System. IOUtils Imagem 2 BindSource 1. No ListView2 vincule seu campo Blob criado anteriormente ao Item.Bitmap. Nosso arquivo CONEXAO.txt irá conter a seguinte seção: Listagem 4 Arquivo de Conexão. [CONEXAO] PASTA=THECLUB Por padrão vamos manter a PASTA com o nome de THECLUB para que possamos manipular os dados nela localizados. Agora vamos por a mão na massa, no evento OnCreate de seu formulário insira o seguinte comando: Listagem 5 - OnCreate. Imagem 3 BindSource procedure FormCreate(Sender: TObject);

7 Var Arq: TIniFile; S: String; Try S:= TPath.GetDocumentsPath + /CONEXAO.txt ; If FileExists(S) then Begin Arq:= TIniFile.Create(S); Pasta:= Arq.ReadString( C ONEXAO, PASTA, ); End; Finally Arq.Free; End; // Por padrão a pasta TheClub é Criada If not DirectoryExists(TPath. GetDocumentsPath + /THECLUB ) Then CreateDir(TPath. GetDocumentsPath + /THECLUB ); Edit1.Text:= TPath. GetDocumentsPath + / + Pasta; Ler Arquivo (Fará a leitura do arquivo de Texto); Imagem (Irá exibir a imagem em um ListView); Banco de Dados (irá apresentar os dados contidos na tabela de Pessoas). No botão Ler Arquivo insira o seguinte comando: Listagem 7 Botão Ler Arquivo. procedure Button1Click(Sender: TObject); Var S: String; Memo1.Lines.Clear; S:= TPath.GetDocumentsPath + / + Pasta + / + InputBox( Indique o Arquivo, Nome, ) +.txt ; Memo1.Lines.LoadFromFile(S); Na listagem acima utilizamos a função InputBox para indicarmos o nome do arquivo que desejamos ler. Veja que armazenamos o valor lido no arquivo em nossa variável Pasta, ou seja, crie essa variável global do tipo String em seguida é criada a pasta THECLUB (CreateDir(TPath.GetDocumentsPath + /THECLUB )) que por padrão vamos utilizar no processo inicial de nosso exemplo. A conexão com o banco de dados segue os padrões de nossos artigos anteriores a única diferença é que indicamos a Pasta onde o arquivo está, veja conforme exemplo abaixo: Listagem 6 BeforeConnect. procedure ConexãoBeforeConnect(Sender: TObject); Conexão.Params. Values[ Database ] := TPath.Combine(TPath. GetDocumentsPath + / + Pasta, THECLUB.db ); End; Próximo passo é inserir os comandos em cada um dos botões que criamos anteriormente, são eles: Imagem 6 InputBox. 07

8 Logo abaixo temos o comando para a leitura da imagem: Listagem 8 Botão Imagem. procedure Button2Click(Sender: TObject); Var S: String; Stream: TFileStream; Try S:= TPath.GetDocumentsPath + / + Pasta + / + InputBox( Indique o Arquivo, Nome, ) +.jpg ; If FileExists(S) Then Begin Stream:= TFileStream. Create(S,fmOpenReadWrite); Stream.Position:= 0; cdsimagem.app cdsimagemimagem. LoadFromStream(Stream); cdsimagem.post; cdsimagem.close; cdsimagem.open; End; Finally Stream.Free; End; Neste trecho armazenamos a imagem em uma variável do tipo TFileStream e logo em seguida carregamos a mesma no campo IMAGEM de nosso ClientDataSet. Imagem 7 Tab 1. A segunda etapa do exemplo é a manipulação dos arquivos em si, ou seja, vamos movê-los entre pastas e ainda sim realizar a leitura dos mesmos. Na segunda aba de seu TabControl insira os seguintes componentes: Edit; Label; 2 Buttons. Poderá ajusta-los conforme imagem abaixo: No botão Banco de dados vamos apenas abrir o DataSet para exibir os dados. Listagem 9 Botão Banco de dados. procedure Button3Click(Sender: TObject); sdspessoas.open; Após finalizarmos essas primeiras configurações a tela deve ficar parecida com a imagem abaixo: 08 Imagem 8 Tab 2.

9 O primeiro passo é indicar o nome da nova pasta em seu Edit e ao clicar no botão Criar Pasta vamos adicionar uma nova pasta na raiz que estamos trabalhando, portanto, insira o seguinte comando no botão: Listagem 10 Botão Criar Pasta. procedure Button5Click(Sender: TObject); Var S: String; Edit2.Enabled:= False; If Edit2.Text <> then Begin S:= TPath.GetDocumentsPath + / + Edit2.Text; If not DirectoryExists(S) Then Begin CreateDir(S); Pasta:= Edit2.Text; End; End; A criação é simples apenas com o comando CreateDir já temos nossa nova pasta, porém, note que ao final do comando temos o seguinte trecho: Pasta:= Edit2.Text; Neste momento estamos indicando que nossos arquivos devem ser buscados em nossa nova pasta, porém, eles ainda não estão gravados neste local, portanto, vamos utilizar o comando do nosso botão Mover Arquivos, veja listagem abaixo: Listagem 11 Botão Mover Arquivos. procedure Button4Click(Sender: TObject); Var aarquivo, S: String; I: Integer; If DirectoryExists(TPath. GetDocumentsPath + / + Edit2. Text) And (Edit2.Text <> ) Then Begin FileCopy(TPath. GetDocumentsPath + /THECLUB/ THECLUB.txt, TPath. GetDocumentsPath + / + Pasta + /THECLUB.txt ); DeleteFile(TPath. GetDocumentsPath + /THECLUB/ THECLUB.txt ); FileCopy(TPath. GetDocumentsPath + /THECLUB/ THECLUB.jpg, TPath. GetDocumentsPath + / + Pasta + /THECLUB.jpg ); DeleteFile(TPath. GetDocumentsPath + /THECLUB/ THECLUB.jpg ); FileCopy(TPath. GetDocumentsPath + /THECLUB/ THECLUB.db, TPath. GetDocumentsPath + / + Pasta + /THECLUB.db ); DeleteFile(TPath. GetDocumentsPath + /THECLUB/ THECLUB.db ); Edit2.Enabled:= True; Altera_Connect(Pasta); End; Neste momento movemos todos os arquivos encontrados na pasta THECLUB para a nova pasta indicada em seu Edit através do procedimento FileCopy, abaixo temos a sintaxe do comando: Listagem 12 Procedure FileCopy. procedure FileCopy(const FOrigem, FDestino: String); var sstream, dstream: TFileStream; sstream := TFileStream. Create(FOrigem, fmopenread); Try dstream := TFileStream. Create(FDestino, fmcreate); 09

10 Try dstream.copyfrom(sstream, 0); Finally dstream.free; Finally sstream.free; Arq.Free; End; Ao iniciar o aplicativo poderá ver que o Path foi alterado de acordo com sua nova pasta. Por fim alteramos a seção de nosso arquivo CONNECT.txt através do procedimento Altera_Connect, veja sintaxe abaixo: Listagem 13 Procedure Altera Connect. procedure Altera_Connect(Pasta: String); Var Arq: TIniFile; S: String; Try S:= TPath.GetDocumentsPath + /CONEXAO.txt ; If FileExists(S) then Begin Arq:= TIniFile.Create(S); Arq.WriteString( CONEXAO, PASTA,Pasta); End; Finally Imagem 9 Path. Conclusão Vimos neste artigo um exemplo de como trabalhar com arquivos no Android, movendo e lendo os dados em locais diferentes. Este exemplo pode ser melhorado de acordo com suas necessidades. Espero que tenham gostado desta dica, até a próxima! Sobre o autor Jeferson Silva de Lima Consultor The Club. 10

11 Android Studio Parte V Nessa última parte da série de Android (continuaremos com mais artigos sobre o assunto, mas com assuntos específicos), vamos continuar conhecendo controles de telas, com exemplos de ListView agrupado, ExpandableView e SearchView. ListView agrupado Temos um controle especifico para isso (ExpandableListView), que veremos mais adiante. Mas quero mostrar aqui, uma maneira diferente para simular um agrupamento de ListView. Crie um novo layout e adicione um ListView. Vamos criar o layout que será a indicação que temos um novo grupo na lista de itens. Crie um novo layout com o nome de layout_header_listview. xml. Adicione o seguinte código: <RelativeLayout android:layout_height= wrap_ content android:layout_width= fill_ parent android:orientation= vertical xmlns:android= schemas.android.com/apk/res/ android > <ImageView thumbnail android:layout_ width= 25dip android:layout_ height= 25dip ic_action_group android:scaletype= fitxy /> <TextView group android:layout_ width= fill_parent android:layout_ height= wrap_content android:layout_ android:layout_ android:text= Nome do grupo android:textstyle= bold android:textsize= 15dip android:paddingleft= 5dp /> </RelativeLayout> Adicionamos um ImageView e um TextView. A imagem já esta configurada, precisamos apenas mudar o nome do grupo quando estivermos preenchendo o ListView (no adapter). Vamos criar um novo Model, para configurarmos o grupo que desejamos. Para não fazer o trabalho massante de criar a classe, podemos copiá-la com o mesmo conteúdo e nome diferente. Clique com o botão direito na classe Item e escolha Refactor>Copy. Digite ItemGroup. Uma nova classe é criada com o mesmo conteúdo da Item. Vamos criar mais dois atributos: private boolean bgrupo; private String snmgrupo; Para gerar o get e set, use a mesma técnica mostrada anteriormente. Não esqueça de modificar o construtor para receber os dois novos atributos. Agora a parte mais importante, precisamos criar um novo adapter, é nele que 11

12 vamos configurar o grupo. Você pode fazer a mesma técnica de copiar a classe ListItem, dando o nome de ListItemGroup. Não esqueça de modificar a variável data para receber uma lista de ItemGroup, assim como o parâmetro do construtor. No getitemid, também devemos mudar o tipo do objeto (ItemGroup). Vamos modificar o getview com o seguinte código: Pegamos o dado e verificamos se é um grupo, assim, chamamos o respectivo layout e configuramos o controle para mostrar o nome do grupo. Se não, configuramos normalmente os itens de tela (repliquei o layout do item do ListView). No código para preencher a lista de itens, precisamos apenas configurar o grupo e seus itens: View vi = convertview; ItemGroup item = data. get(position); if (item.isbgrupo()){ //é um grupo vi = inflater.inflate(r. layout.layout_header_listview, null); vi.setonclicklistener(null); vi.setonlongclicklistener(nu ll); vi.setlongclickable(false); TextView groupname = (TextView) vi.findviewbyid(r. id.name_group); groupname.settext(item. getsnmgrupo()); else{ //não é grupo vi = inflater.inflate(r. layout.single_item_listview_ group, null); ImageView imagem = (ImageView)vi.findViewById(R. id.thumbnail); TextView name = (TextView) vi.findviewbyid(r.id.item); TextView description = (TextView)vi.findViewById(R. id.descrption); name.settext(item. getsnmitem()); description.settext(item. getsdsitem()); imagem.setimageresource(item. getilogo()); return vi; else if (mitem.id == 4 ){ rootview = inflater.inflate(r. layout.layout_listview_group, container, false); //ListView agrupado ListView lview = (ListView) rootview.findviewbyid(r. id.listview); List<ItemGroup> lista = new ArrayList<ItemGroup>(); lista.add(new ItemGroup(1,, true, Controles de tela,, 0)); lista.add(new ItemGroup(2, ProgressBar, false,, Controle para mostrar uma barra de progresso, R.drawable.ic_action_ progressbar)); lista.add(new ItemGroup(3, TextView, false,, Controle para mostrar um texto, R.drawable.ic_action_ textview)); lista.add(new ItemGroup(4, ImageView, false,, Controle para mostrar uma imagem, R.drawable.ic_action_ imageview)); lista.add(new ItemGroup(5,, true, Containers,, 0)); lista.add(new ItemGroup(6, TabHost, false,, Controle para mostrar abas, R.drawable.ic_action_ tabhost)); lista.add(new ItemGroup(7, ListView, false,, Controle para mostrar dados em forma de lista, R.drawable.ic_action_ listview)); lview.setadapter(new ListItemGroup(getActivity(), lista)); 12

13 Indicamos em cada item, se o mesmo é grupo ou não (terceiro parâmetro). Executa a aplicação e veja o resultado na Figura 1. private Activity activity; private static LayoutInflater inflater = null; private HashMap<String, List<Item>> list; private List<String> listgroup; Para o grupo, temos uma lista de strings. Para os dados, temos um Hash- Map, que nada mais é do que um conjunto de chave valor. Assim, teremos como chave, o nome do grupo e o valor, serão os itens. Assim, podemos associar (retornar) a lista de grupos com a lista de dados. Crie o construtor com o seguinte código: Figura 1. Agrupamento com ListView Para deixar os controles dos itens um pouco para a direita, coloquei o seguinte código na imagem do single_item_listview_group (layout replicado): public ListExpandable(Activity activity, HashMap<String, List<Item>> data, List<String> groups) { this.activity = activity; this.list = data; this.listgroup = groups; inflater = (LayoutInflater) activity.getsystemservice( Context.LAYOUT_INFLATER_ SERVICE); android:layout_marginleft= 20dp Esse exemplo é bom para quando você precisa que o grupo fique sempre visível. Talvez não seja a melhor opção, mas valeu a pena aprender. Para que você tenha grupos que possam ser expandidos e recolhidos, veremos como funciona com o ExpandableListView. ExpandableListView Esse controle, cria grupos no ListView. Crie um novo layout ( layout_expandable_listview.xml ) e adicione esse controle. Precisamos criar um adapter, que herda de BaseExpandableListAdapter. Crie uma nova classe na pasta ListAdapter com o nome de ListExpandable. Herde de BaseExpandableListAdapter e usando o editor, crie os métodos (semelhante ao que já fizemos). Note que vários métodos foram adicionados. Temos que passar para esse adapter, uma lista com os grupos e uma lista com o nome do grupo e seus itens. Declare as seguintes variáveis: Semelhante ao criado em adapters anteriores, única diferença que temos duas listas agora. Os métodos que retornam a quantidade do grupo e itens, é de fácil implementação. O getchild, que devemos implementar com o seguinte código: return list.get(listgroup. get(groupposition)). get(childposition); Passamos o código do grupo e do item para retornar o objeto. Agora, temos dois getview: getgroupview e getchildview, um para cada tipo. Vamos usar o mesmo layout usado no exemplo anterior, para os itens. Para o grupo, faça uma cópia de layout_header_listview.xml (dei o nome de layout_header_expandablelistview.xml ) e remova a imagem do grupo. O ExpandableListView possui uma imagem. Para o getgroupview, vamos usar o seguinte código: HolderGroup holder; 13

14 if(convertview == null){ convertview = inflater. inflate( R.layout.layout_header_ expandablelistview, null); holder = new HolderGroup(); convertview.settag(holder); holder.name = (TextView) convertview.findviewbyid(r. id.name_group); else{ holder = (HolderGroup) convertview.gettag(); holder.name.settext(listgroup. get(groupposition)); return convertview; HolderGroup é apenas uma classe, que contém os controles de tela que vamos preencher (nesse caso, o nome do grupo). Implemente as classes, com o seguinte código: class HolderGroup { TextView name; class HolderItem { ImageView imagem; TextView name; TextView description; if(convertview == null){ convertview = inflater. inflate( R.layout.single_item_ listview_group, null); holder = new HolderItem(); convertview.settag(holder); holder.name = (TextView) convertview.findviewbyid(r. id.item); holder.description = (TextView)convertView. findviewbyid(r.id.descrption); holder.imagem = (ImageView) convertview.findviewbyid(r. id.thumbnail); else{ holder = (HolderItem) convertview.gettag(); holder.name.settext(item. getsnmitem()); holder.description.settext(item. getsdsitem()); holder.imagem. setimageresource(item. getilogo()); return convertview; Nada muito diferente do que já fizemos. Precisamos agora, preencher as listas e passar para o adapter. Volte ao ItemDetailFragment e use o seguinte código: Voltando ao getgroupview, carregamos o layout do grupo e preenchemos o TextView com o nome do grupo. Semelhante ao que fizemos no exemplo anterior. Para o getchildview, o código é semelhante: HolderItem holder; Item item = (Item) getchild(groupposition, childposition); else if (mitem.id == 5 ){ rootview = inflater.inflate(r. layout.layout_expandable_ listview, container, false); ExpandableListView lview = (ExpandableListView)rootView. findviewbyid(r. id.expandablelistview); List<String> group = new ArrayList<String>(); 14

15 HashMap<String, List<Item>> itens = new HashMap<String, List<Item>>(); ListExpandable, passando as listas por parâmetro. Rode a aplicação e veja o resultado (Figura 2). group.add( Controles de tela ); group.add( Containers ); List<Item> aux = new ArrayList<Item>(); aux.add(new Item(2, ProgressBar, Controle para mostrar uma barra de progresso, R.drawable.ic_action_ progressbar)); aux.add(new Item(3, TextView, Controle para mostrar um texto, R.drawable.ic_action_ textview)); aux.add(new Item(4, ImageView, Controle para mostrar uma imagem, R.drawable.ic_ action_imageview)); itens.put(group.get(0), aux); aux = new ArrayList<Item>(); aux.add(new Item(2, TabHost, Controle para mostrar abas, R.drawable.ic_action_ tabhost)); aux.add(new Item(3, ListView, Controle para mostrar dados em forma de lista, R.drawable.ic_action_ listview)); itens.put(group.get(1), aux); lview.setadapter(new ListExpandable(getActivity(), itens, group)); Figura 2. Criando grupos com o ExpandableListView Os grupos abrem recolhidos, basta selecionar o mesmo, que será mostrado os itens. Existe um ícone para quando o grupo esta recolhido e outro para aberto. SearchView Esse controle abre uma busca para usarmos na aplicação. Com ele podemos pesquisar em um ListView, por exemplo, ou abrir uma nova activity com resultado de uma pesquisa. Nesse exemplo, vamos pesquisar em um ListView. Crie um novo layout ( layout_searchview.xml ) e adicione um ListView e um SearchView. Nesse primeiro exemplo, o ListView será preenchido com um array de resource e assim, vamos usar um ArrayAdapter, sem criar um novo. Abra o arquivo strings.xml na pasta values e digite o seguinte código: <string-array name= paises > <item>brasil</item> <item>argentina</item> <item>usa</item> <item>paraguai</item> <item>rússia</item> <item>espanha</item> <item>portugal</item> <item>frança</item> </string-array> No ItemDetailFragment, vamos configurar o SearchView e o ListView, usando o seguinte código: Criamos duas listas, onde preenchemos o nome dos grupos, e depois preenchemos os itens, adicionando o grupo criado. Por fim, chamamos o else if (mitem.id == 6 ){ rootview = inflater.inflate(r. layout.layout_searchview, 15

16 container, false); final SearchView search = (SearchView)rootView. findviewbyid(r. id.searchview); ListView lview = (ListView) rootview.findviewbyid(r. id.listview); Resources res = getresources(); String[] paises = res. getstringarray(r.array.paises); final ArrayAdapter<String> adapter = new ArrayAdapter<String>( getactivity(), android.r.layout.simple_ list_item_activated_1, android.r.id.text1, paises); Como sempre, carregamos o layout e os controles que vamos manipular. Usamos uma variável para carregar o array de resource. Criamos um ArrayAdapter e configuramos no ListView. O SearchView possui um Listener com dois métodos. O onquerytextsubmit é executado quando o usuário aperta o botão de pesquisar, assim, vamos realizar a pesquisa. No adapter, temos um método para pesquisar nos valores do mesmo. getfilter().filter, recebe o valor digitado (query). Implementamos o onquerytextchange, para verificar se o que foi digitado esta vazio, assim, retornamos os dados, passando um valor vazio para o filter. O onquerytextchange, será chamado, quando o usuário clicar no X para limpar o que foi digitado ou quando usar a tecla que limpa o valor do SearchView. Execute a aplicação e digite valores para pesquisar no ListView (Figura 3). lview.setadapter(adapter); search. setonquerytextlistener(new SearchView.OnQueryTextListener() public boolean onquerytextsubmit(string query) { if (!query.isempty()){ search.clearfocus(); adapter.getfilter(). filter(query); return public boolean onquerytextchange(string newtext) { if (newtext.isempty()){ adapter.getfilter(). filter( ); ); return false; Figura 3. Filtrando o ListView com o SearchView Note que o filtro é feito pelo inicio do texto digitado, não é pesquisado por qualquer letra dos itens do ListView. Para os outros exemplos, criamos um adapter para preencher o ListView, assim, o getfilter, não esta disponível, precisamos implementá-lo. Vamos adaptar a classe ListItem (se preferir, crie uma nova), para criar esse filtro. Primeiro, devemos implementar Filterable no adapter: public class ListItem extends BaseAdapter implements Filterable Vamos criar alguns atributos: private List<Item> originaldata; private List<Item> filtereddata; public boolean isfilter = false; Preencha originaldata e filtereddata no construtor. Teremos essas duas variáveis para trabalhar com os dados filtrados e os dados normais. No getview, precisamos adaptar para saber de onde vamos pegar os dados para preencher os controles de tela. Por isso, temos isfilter, assim podemos adaptar para o seguinte código: 16

17 Item itemobject; if (isfilter) { itemobject = filtereddata. get(position); else { itemobject = data. get(position); Se estivermos filtrando, precisamos pegar os dados do filtereddata, senão, pegamos do objeto que já trabalhamos. Por fim, precisamos implementar o getfilter, usando o public Filter getfilter() { return new Filter() protected FilterResults performfiltering(charsequence charsequence) { FilterResults results = new FilterResults(); if(charsequence == null charsequence.length() == 0) { results.values = originaldata; results.count = originaldata.size(); else { List<Item> filterresultsdata = new ArrayList<Item>(); String name = ; for(item data : originaldata) { name = data. getsnmitem().touppercase(); if (name. contains(charsequence. tostring().touppercase())) { filterresultsdata. add(data); results.values = filterresultsdata; results.count = filterresultsdata.size(); return protected void publishresults(charsequence charsequence, FilterResults filterresults) { filtereddata = (List<Item>) filterresults.values; isfilter = (filtereddata!= originaldata); notifydatasetchanged(); ; Verificamos se temos valores digitados para filtrar (charsequence), atribuindo para as variáveis o valor atual. Senão, percorremos os dados originais (com a variável auxiliar), e verificamos se o valor digitado é compatível com os dados. No publishresults é onde indicamos se estamos filtrando o adapter, comparando as variáveis. Se for, colocamos em filterresultsdata e depois retornamos o mesmo (usando results). Por fim, precisamos indicar no getcount a quantidade de registros que temos (que podem ser filtrados ou não), para isso, use o seguinte código: if (isfilter) { return filtereddata.size(); else { return data.size(); Crie um novo layout e adicione um ListView e um SearchView. Vamos pegar o mesmo exemplo que criamos o ListView customizado. Digite o seguinte código: else if (mitem.id == 7 ){ rootview = inflater.inflate(r. layout.layout_searchview_filter, container, false); 17

18 final SearchView search = (SearchView)rootView. findviewbyid(r. id.searchview); ListView lview = (ListView) rootview.findviewbyid(r. id.listview); List<Item> lista = new ArrayList<Item>();... final ListItemFilter adapter = new ListItemFilter(getActivity(), lista); lview.setadapter(adapter); newtext) { if (newtext.isempty()){ adapter.getfilter(). filter( ); return false; ); Note que a implementação do filter, é igual ao exemplo anterior, pois implementamos o getfilter. Experimente acessar getfilter no exemplo anterior, não temos. Execute a aplicação, e pesquisa registros no ListView (Figura 4). search. setonquerytextlistener(new SearchView.OnQueryTextListener() public boolean onquerytextsubmit(string query) { if (!query.isempty()){ search.clearfocus(); adapter.getfilter(). filter(query); return public boolean onquerytextchange(string Figura 4. Pesquisando registros no ListView com Filter do Adapter Conclusões Vimos nessa série, o básico para o desenvolvimento Android. Conhecemos desde o inicio da ferramenta, até controles comuns em aplicações Android. Aprendemos como customizá-los para que nossas aplicações fiquem o mais profissional possível. Espero ter passado o conhecimento básico para você se aprofundar na programação Android. Um grande abraço a todos e até a próxima! Sobre o autor Luciano Pimenta Luciano Pimenta (NOVO DOMINIO: é desenvolvedor Delphi/C# para aplicações Web com ASP.NET, Windows com Win32 e Windows Forms com.net. Palestrante da 4ª edição da Borland Conference (BorCon) e da 1ª Delphi Conference. É MVP Embarcadero, grupo de profissionais que ajudam a divulgar o Delphi no mundo. Atualmente é desenvolvedor da SoftDesign fábrica de softwares em Porto Alegre-RS. Autor de mais de 90 artigos e de mais de 600 vídeos aulas publicadas em revistas e sites especializados, além de treinamentos presenciais e multimídias. É consultor da FP2 Tecnologia (www.fp2.com.br) onde ministra cursos de programação e banco de dados. 18

19 Versionamentos de Arquivos o THVCheckVersion Parte 3 Caros leitores, chegamos a última parte do artigo sobre este tema do componente de versionamento. Esta parte final tem como objetivo frisar no mais importante desta classe, também abordando novos trechos do código- -fonte que ainda não foram ilustrados aqui, como é o principal escopo deste artigo, a classe TLogClass que implementará nosso controle de log, renderizado em uma bela grid (nosso DBGrid conterá no seu evento OnDrawColumnCell as figuras que representarão cada ação possível de THVFolderAction, como Novo, Removido, Modificado, Antigo Nome, Novo Nome ). Para que construir esta classe de histórico? Ora, tão importante quanto saber quem manipulou seus arquivos tanto obter um registro do momento da alteração/remoção/criação dos mesmos, em um dado diretório monitorado pela aplicação portanto como dito antes o que o nosso componente precisa conhecer é apenas o diretório que ele vai monitorar informado na propriedade DirectoryMonitoring, como em HVCheckVersion1.DirectoryMonitoring := C:\meudiretorio ;. Partindo daí tudo fica fácil para o projeto, pois tudo já está encapsulado no componente; todos os processos principais relevantes ao funcionamento deste versionador em série, bastando o componente trabalhar, persistindo os dados encontrados nas ações de arquivos em arquivos XML (files.xml e agora o log.xml). A Thread TFolderMonWorker e a comunicação com a API ReadDirectoryChangesW Esta nossa thread implementará o grosso do nosso projeto, ou seja, todo o processo de detecção de mudanças naquele diretório monitorado pela aplicação será chamado por esta thread, que por sua vez chamará esta API do Windows chamada ReadDirectoryChangesW; segue sua declaração em C++ para recapitulação (parâmetros da função): BOOL WINAPI ReadDirectoryChangesW( _In_ HANDLE hdirectory, _Out_ LPVOID lpbuffer, _In_ DWORD nbufferlength, _In_ BOOL bwatchsubtree, _In_ DWORD dwnotifyfilter, _Out_opt_ LPDWORD lpbytesreturned, _Inout_opt_ LPOVERLAPPED lpoverlapped, _In_opt_ LPOVERLAPPED_ COMPLETION_ROUTINE lpcompletionroutine ); Segue abaixo alguns trechos do código-fonte que implementa a chamada desta API e que retorna as informações monitoradas dos arquivos contidos nesse diretório-base de monitoração (lembrando que os subdiretórios também são monitorados): const NOTIFY_FILTERS: array[tchangetype] of DWORD = ( FILE_NOTIFY_CHANGE_FILE_ NAME // ctfilename NAME, FILE_NOTIFY_CHANGE_DIR_ // ctdirname, FILE_NOTIFY_CHANGE_ ATTRIBUTES // ctattr, FILE_NOTIFY_CHANGE_SIZE // ctsize, FILE_NOTIFY_CHANGE_ LAST_WRITE // ctlastwritetime, FILE_NOTIFY_CHANGE_ LAST_ACCESS // ctlastaccesstime, FILE_NOTIFY_CHANGE_ 19

20 CREATION // ctcreationtime, FILE_NOTIFY_CHANGE_ SECURITY // ctsecurityattr ); type _FILE_NOTIFY_ INFORMATION=packed record NextEntryOffset: DWORD; Action: DWORD; FileNameLength: DWORD; FileName: WideChar; FILE_NOTIFY_INFORMATION = _ FILE_NOTIFY_INFORMATION; PFILE_NOTIFY_INFORMATION = ^FILE_NOTIFY_INFORMATION; type TFolderMonWorker=class(TThread) private Owner: THVCheckVersion; FFolder: THandle; FMonFilter: DWord; FFolderItemInfo: THVFolderItemInfo; procedure SetUp; procedure TearDown; procedure DoFolderItemChange; protected procedure Execute; override; public constructor Create(AOwner: THVCheckVersion); reintroduce; procedure TFolderMonWorker. Execute; const cbufsize = 32 * 1024; // 32k var B: Pointer; vcount: DWord; voffset: DWord; vfileinfo: PFILE_NOTIFY_ INFORMATION; GetMem(B, cbufsize); try while not Terminated do if Owner=nil then Exit; if ReadDirectoryChangesW(FFolder B cbufsize Owner.MonitorSubFolders nil nil ) and (vcount > 0) then if Owner=nil then Exit; vfileinfo := B; repeat voffset := vfileinfo. NextEntryOffset; FFolderItemInfo. Name := vfileinfo^.filename, vfileinfo^. FileNameLength); SetLength(FFolderItemInfo.Name, vfileinfo^.filenamelength div 2); case vfileinfo^. Action of FILE_ACTION_ADDED : FFolderItemInfo.Action := fanew; FILE_ACTION_REMOVED : FFolderItemInfo.Action := faremoved; FILE_ACTION_MODIFIED : FFolderItemInfo.Action := famodified; FILE_ACTION_RENAMED_ OLD_NAME: FFolderItemInfo. Action := farenamedold; FILE_ACTION_RENAMED_ NEW_NAME: FFolderItemInfo. Action := farenamednew; FFolderItemInfo. EventDate := Now; Synchronize(DoFolderI temchange);,,,,,,, 20

Delphi XE5 - Trabalhando com

Delphi XE5 - Trabalhando com 04 Delphi XE5 - Trabalhando com estilos na VCL Delphi XE5 05 Editorial Autor: Lucas Vieira de Oliveira Android Studio - Parte IV 09 Autor: Luciano Pimenta Versionamentos de Arquivos o THVCheckVersion Parte

Leia mais

Programação para Android. Aula 08: Persistência de dados SQL

Programação para Android. Aula 08: Persistência de dados SQL Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente

Leia mais

Usando o evento OnFilterRecord para filtrar ClientDataSets

Usando o evento OnFilterRecord para filtrar ClientDataSets Usando o evento OnFilterRecord para filtrar ClientDataSets O objetivo mais importante no desenvolvimento de um programa é fornecer ao cliente maior liberdade para usar as interfaces e ao mesmo tempo tornar

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS FORMULÁRIOS COM ABAS Trabalhar com abas (ou guias) é um recurso

Leia mais

Inserindo Dados no Banco de Dados Paradox.

Inserindo Dados no Banco de Dados Paradox. Inserindo Dados no Banco de Dados Paradox. - Construção do Banco de Dados: Para podermos inserir algo em um banco precisaremos de um Banco de Dados, para isto iremos montar um utilizando o Programa Database

Leia mais

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android Instalação e Configuração do Ambiente de Desenvolvimento Instalação

Leia mais

Microsoft Visual Studio Express 2012 for Windows Desktop

Microsoft Visual Studio Express 2012 for Windows Desktop Microsoft Visual Studio Express 2012 for Windows Desktop Apresentação da ferramenta Professor: Danilo Giacobo Página pessoal: www.danilogiacobo.eti.br E-mail: danilogiacobo@gmail.com 1 Introdução Visual

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório

Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório Fortes Report Parte 1 1 Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório Amigos, fazer relatórios é o famoso mal necessário, que particularmente eu não me incomodo em desenvolver, até porque, geralmente

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

Interface para Regras de Negócios em Multi-Banco

Interface para Regras de Negócios em Multi-Banco 1 Interface para Regras de Negócios em Multi-Banco MARCELO JALOTO (marcelo@jaloto.net) é graduado no curso superior Projetos e Gestão de Redes de Computadores e formado no curso Técnico em Processamento

Leia mais

Interfaces Gráficas parte 3

Interfaces Gráficas parte 3 parte 3 (Listview, AlertDialog e ActionBar) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Componentes Visuais Gerenciadores de Layouts Professor: Danilo Giacobo OBJETIVOS DA AULA Apresentar os conceitos básicos da programação de interfaces visuais para Android

Leia mais

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler Desenvolvimento para Android Prá3ca 3 Prof. Markus Endler Exercício 3.1 Solicitando permissão para abrir uma página Web ü Criaremos uma Ac.vity com um EditText (para entrada de uma URL), um Bu?on e uma

Leia mais

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6 Android Core Felipe Silveira felipesilveira.com.br Aula 6 Aplicações I Desenvolvimento de Aplicações Android SDK SDK https://developer.android.com/sdk Android SDK Android SDK: Eclipse + ADT plugin + Android

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Programação para Android

Programação para Android Programação para Android Aula 02 Parte 01: Tipos de Layouts: RelativeLayout, LinearLayout, TableLayout Widgets: TextView, EditText, ImageView, Button Na aula anterior... Visão geral do Android Kit de desenvolvimento:

Leia mais

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO Serviço Nacional de Aprendizagem Comercial E.E.P. Senac Pelotas Centro Histórico Programa Nacional de Acesso ao Ensino Técnico e Emprego Curso Técnico em Informática ( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO

Leia mais

Introdução a Banco de Dados em Delphi

Introdução a Banco de Dados em Delphi Introdução a Banco de Dados em Delphi Daniela Caio André Gomes Roberto Scalco 2013 3 Sumário CAPÍTULO 1 ELEMENTOS DE UM BANCO DE DADOS... 4 1. O ARQUIVO DADOS... 4 2. CONCEITOS BÁSICOS DE BANCOS DE DADOS...

Leia mais

Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10

Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10 Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212

Leia mais

Definições de Projeto

Definições de Projeto App Alunos Definições de Projeto Implementação de uma app para Manipulação de Dados de Alunos Em linhas gerais, a app consiste em: Manter dados de alunos; Entrar em contato com alunos; Trocar dados com

Leia mais

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Adicionando Propriedades e Funcionalidades aos Componentes Parte II Adicionando Propriedades e Funcionalidades aos Componentes Parte II Quantas vezes eu não lamentei por este componente não ter uma propriedade que guardasse uma lista paralela a lista que é mostrada em

Leia mais

Criar um novo projecto

Criar um novo projecto Criar um novo projecto Criar um novo projecto (2) Criar um novo projecto (3) Criar um novo projecto (4) Criar um novo projecto (5) Criar um novo projecto (6) Estrutura do projecto O Eclipse criou-nos um

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Desenvolvimento Android. http://www.larback.com.br

Desenvolvimento Android. http://www.larback.com.br Desenvolvimento Android http://www.larback.com.br Introdução ao Android O Android é a resposta da Google ao mercado crescente de dispositivos móveis. É uma nova plataforma de desenvolvimento baseado no

Leia mais

Primeiramente lemos a seguinte citação, copiada de Excel-Ajuda:

Primeiramente lemos a seguinte citação, copiada de Excel-Ajuda: 33 Capítulo 3 Procedimentos (macros) Primeiramente lemos a seguinte citação, copiada de Excel-Ajuda: O objetivo de uma macro é automatizar as tarefas usadas com mais freqüência. Embora algumas macros sejam

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Introdução ao X3. Exercício 1: Criando um registro de Contato

Introdução ao X3. Exercício 1: Criando um registro de Contato Introdução ao X3 Exercício 1: Criando um registro de Contato Inicie por adicionar um novo registro de Contato. Navegue para a tabela de Contato clicando na aba de Contato no alto da página. Existem duas

Leia mais

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:

Leia mais

Índice. Tutorial para Desenvolvimento de Conduits em Delphi

Índice. Tutorial para Desenvolvimento de Conduits em Delphi Índice Índice...1 Desenvolvendo Conduits...2 (Passo a Passo)...2 Criando um Arquivo.mdb... 2 Arquivos...6 Instalando os componentes... 7 Recompilando os Comonentes do Delphi...13 Configurando a Conexão

Leia mais

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

AJAX no GASweb. Mas e afinal, para que usamos o AJAX? Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente

Leia mais

Projeto Supermercado - Produtos

Projeto Supermercado - Produtos OBJETIVO: Este projeto possibilitará fazer a manutenção dos dados da tabela de Produtos. Didaticamente, ele permite ao programador iniciante ter os primeiros contatos com os objetos de visualização individual

Leia mais

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android MVVM_ Implementando o padrão de projeto MVVM com Android Binding Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android O padrão de projeto MVVM O MVVM (Model-View-ViewModel) foi divulgado

Leia mais

Programação para Android. Aula 06: Activity, menus e action bar

Programação para Android. Aula 06: Activity, menus e action bar Programação para Android Aula 06: Activity, menus e action bar Activity A classe Activity é quem gerencia a interface com o usuário. Ela quem recebe as requisições, as trata e processa. Na programação

Leia mais

Comunicação entre A0vidades

Comunicação entre A0vidades Programação para a Plataforma Android Aula 8 Comunicação entre A0vidades Como invocar uma a0vidade a par0r de outra? Como descrever um serviço em Android? Como duas a0vidades se comunicam? Como abrir uma

Leia mais

Capítulo 7 O Gerenciador de Arquivos

Capítulo 7 O Gerenciador de Arquivos Capítulo 7 O Gerenciador de Arquivos Neste capítulo nós iremos examinar as características da interface do gerenciador de arquivos Konqueror. Através dele realizaremos as principais operações com arquivos

Leia mais

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android Realização de Dinâmica Hands- On para Construção de uma App Android Dr. Eduardo Manuel de Freitas Jorge, PMP Realização de Dinâmica

Leia mais

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período

INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ADS 6º Período INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Interface gráfica - gerenciadores de layout No Android, existem diversos tipos de gerenciadores

Leia mais

Moodle FTEC Versão 2.0 Manual do Usuário Acesse a área de LOGIN do site da FTEC www.ftec.com.br

Moodle FTEC Versão 2.0 Manual do Usuário Acesse a área de LOGIN do site da FTEC www.ftec.com.br Moodle FTEC Versão 2.0 Manual do Usuário Acesse a área de LOGIN do site da FTEC www.ftec.com.br Índice Como acessar o Moodle Editando seu PERFIL Editando o curso / disciplina no Moodle Incluindo Recursos

Leia mais

Servidores REST usando TMS Aurelius e DataSnap

Servidores REST usando TMS Aurelius e DataSnap Servidores REST usando TMS Aurelius e DataSnap Introdução Em artigo anterior a framework na Active Delphi, apresentados o TMS Aurelius, uma framework para mapeamento objeto-relacional (ORM) e mostramos

Leia mais

AVISO. Treinamento GVcollege Módulo Ficha Complementar

AVISO. Treinamento GVcollege Módulo Ficha Complementar AVISO O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. Nenhuma parte desta publicação pode ser reproduzida nem transmitida

Leia mais

Conhecendo o Visual FoxPro 8.0 Parte 1

Conhecendo o Visual FoxPro 8.0 Parte 1 AULA Conhecendo o Visual FoxPro 8.0 Parte 1 Em qualquer profissão é importante que se conheça bem as ferramentas que serão usadas para executar o trabalho proposto. No desenvolvimento de software não é

Leia mais

Manual de Instalação: Agente do OCS Inventory NG

Manual de Instalação: Agente do OCS Inventory NG Manual de Instalação: Agente do OCS Inventory NG Abril 2013 Sumário 1. Agente... 1 2. Onde instalar... 1 3. Etapas da Instalação do Agente... 1 a. Etapa de Instalação do Agente... 1 b. Etapa de Inserção

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

Índice. Atualizado em: 01/04/2015 Página: 1

Índice. Atualizado em: 01/04/2015 Página: 1 MANUAL DO USUÁRIO Índice 1. Introdução... 3 2. Acesso ao Sistema... 4 2.1. Instalação... 4 2.1.1. Servidor - Computador Principal... 4 2.1.2. Estação - Computador na Rede... 6 2.1.3. Estação - Mapeamento

Leia mais

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Módulo 4 - Interface Gráfica Gerenciadores de Layout Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Classe View Todos os componente gráficos são filhos de View Para se criar um novo componente

Leia mais

Centro Universitário do Triângulo Introdução ao Ambiente Delphi

Centro Universitário do Triângulo Introdução ao Ambiente Delphi Centro Universitário do Triângulo Introdução ao Ambiente Delphi A figura abaixo mostra a tela inicial do Delphi 7 e nos dá uma visão geral de seu ambiente de desenvolvimento, composto de múltiplas janelas

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Parte 5 LibreOffice Base

Parte 5 LibreOffice Base Parte 5 LibreOffice Base 1. Criação do banco de dados 1. Abra o LibreOffice Base; 2. Escolha Criar um novo banco de dados e clique em Concluir; 3. Salve o banco de dados em alguma pasta do computador.

Leia mais

ANDROID APPLICATION PROJECT

ANDROID APPLICATION PROJECT Criando um programa Abrindo o programa Eclipse, clique na opção [FILE], depois em [NEW], selecione a opção [PROJECT], uma janela de opção do tipo de projeto irá se abrir, escolha [ANDROID] logo depois

Leia mais

Trabalhando com XML RENATO CORREIA DE MATOS

Trabalhando com XML RENATO CORREIA DE MATOS Trabalhando com XML RENATO CORREIA DE MATOS Para que aplicações heterogêneas possam se comunicar é necessário que haja um padrão. Uma boa escolha para a troca de mensagens seria por meio de arquivo texto,

Leia mais

Repeater no GASweb. Regiões

Repeater no GASweb. Regiões Repeater no GASweb Por: Rodrigo Silva O controle de servidor Repeater é um container básico que permite a você criar uma lista de qualquer informação que deseja em uma página Web. Ele não tem uma aparência

Leia mais

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos Desenvolvimento com Android Studio Aula 02 Widgets, Manipulação de Dados e Programação de Eventos Widgets TextView O Widget TextView é utilizado para apresentar um texto não editável na tela. Qualquer

Leia mais

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Tutorial JUDE ( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Ferramenta CASE UML Índice Introdução... 2 Download e Instalação... 2 Apresentação da Ferramenta... 2 Salvando o Projeto...

Leia mais

Coleção de Dicas sobre programação Delphi. Retiradas do E-Zine Grandes Dicas em Delphi

Coleção de Dicas sobre programação Delphi. Retiradas do E-Zine Grandes Dicas em Delphi Coleção de Dicas sobre programação Delphi. Retiradas do E-Zine Grandes Dicas em Delphi Por Ramos de Souza Janones www.ramosdainformatica.com.br 1 Índice 1 Índice... 2 Descobrindo o código ASCII de uma

Leia mais

Sistemas Eletrônicos de Apresentação. / NT Editora. -- Brasília: 2013. 47p. : il. ; 21,0 X 29,7 cm.

Sistemas Eletrônicos de Apresentação. / NT Editora. -- Brasília: 2013. 47p. : il. ; 21,0 X 29,7 cm. Autor Ismael Souza Araujo Pós-graduado em Gerência de Projetos PMBOK UNICESP, Graduado em Tecnologia em Segurança da Informação - UNICESP. Professor de concurso da área de informática e consultor em EAD.

Leia mais

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

Programação para Android. Aula 05: Estilos e temas; galeria de imagens Programação para Android Aula 05: Estilos e temas; galeria de imagens Objetivos Aplicar estilos e temas Criar uma galeria de imagens com o widget Gallery Parte 01: Estilos e temas Interface de Usuários

Leia mais

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri OBJETIVOS DA AULA: Criação de uma base de dados em MS SQL Server e acesso com VB 6. Fazer uma breve introdução a respeito do MS SQL Server 7.0; Criar uma pequena base de dados no MS SQL Server 7.0; Elaborar

Leia mais

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário Sumário Conceitos Microsoft Access 97... 01 Inicialização do Access... 02 Convertendo um Banco de Dados... 03 Criando uma Tabela... 06 Estrutura da Tabela... 07 Propriedades do Campo... 08 Chave Primária...

Leia mais

Conhecendo o Visual FoxPro 8.0 Parte 3

Conhecendo o Visual FoxPro 8.0 Parte 3 AULA Conhecendo o Visual FoxPro 8.0 Parte 3 Continuando nossa saga pelas ferramentas do Visual FoxPro 8.0, hoje vamos conhecer mais algumas. A Ferramenta Class Designer A Class Designer é a ferramenta

Leia mais

GUIA DE INSTALAÇÃO. Plataforma Windows. Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes da Silva, Tiago França Melo de Lima

GUIA DE INSTALAÇÃO. Plataforma Windows. Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes da Silva, Tiago França Melo de Lima Laboratório de Engenharia e Desenvolvimento de Sistemas LEDS/UFOP Universidade Federal de Ouro Preto UFOP GUIA DE INSTALAÇÃO Plataforma Windows Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes

Leia mais

Neste capítulo veremos como se trabalha com fórmulas e funções que são as ferramentas que mais nos ajudam nos cálculos repetitivos.

Neste capítulo veremos como se trabalha com fórmulas e funções que são as ferramentas que mais nos ajudam nos cálculos repetitivos. Fórmulas e Funções Neste capítulo veremos como se trabalha com fórmulas e funções que são as ferramentas que mais nos ajudam nos cálculos repetitivos. Operadores matemáticos O Excel usa algumas convenções

Leia mais

6 Aplicações Ricas para Internet

6 Aplicações Ricas para Internet 6 Aplicações Ricas para Internet DESENVOLVIMENTO WEB II - 7136 6.1. Evolução das aplicações para web O crescente número de pessoas que usufruem da informatização das tarefas cotidianas, viabilizadas na

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO DELPHI - UTILIZANDO OPENDIALOG PARA ARMAZENAR IMAGENS EM BANCO DE DADOS Criaremos uma solução simples para criar

Leia mais

Manual do Teclado de Satisfação Local Versão 1.2.2

Manual do Teclado de Satisfação Local Versão 1.2.2 Manual do Teclado de Satisfação Local Versão 1.2.2 18 de fevereiro de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação é

Leia mais

SGCD 2.2. Sistema Gerenciador de Conteúdo Dinâmico

SGCD 2.2. Sistema Gerenciador de Conteúdo Dinâmico Atualizado em 13/AGO/2012 Sistema Gerenciador de Conteúdo Dinâmico No final de 2007, o Serviço Técnico de Informática da UNESP Marília, disponibilizou para a comunidade acadêmica e administrativa o Sistema

Leia mais

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos Banco de Dados Microsoft Access: Criar tabelas Vitor Valerio de Souza Campos Objetivos do curso 1. Criar uma tabela no modo de exibição Folha de Dados. 2. Definir tipos de dados para os campos na tabela.

Leia mais

MÓDULO - I Manual Prático Microsoft Excel 2007

MÓDULO - I Manual Prático Microsoft Excel 2007 MÓDULO - I Manual Prático Microsoft Excel 2007 MÓDULO - I APRESENTAÇÃO... 1 AMBIENTE DE TRABALHO... 2 A folha de cálculo... 2 O ambiente de trabalho do Excel... 3 Faixas de Opções do Excel... 4 - Guia

Leia mais

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

Manual do Teclado de Satisfação Local Versão 1.4.1

Manual do Teclado de Satisfação Local Versão 1.4.1 Manual do Teclado de Satisfação Local Versão 1.4.1 26 de agosto de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação é uma

Leia mais

Sumário INTRODUÇÃO 3 DICAS PARA CRIAR UM BOM SITE 4

Sumário INTRODUÇÃO 3 DICAS PARA CRIAR UM BOM SITE 4 Sumário Todos os direitos reservados e protegidos pela Lei 5.988 de 14/12/73. Nenhuma parte deste livro, sem prévia autorização por escrito de Celta Informática, poderá ser reproduzida total ou parcialmente,

Leia mais

GERADOR DE RELATÓRIOS WINREPORT VERSÃO 2.0. Conteúdo

GERADOR DE RELATÓRIOS WINREPORT VERSÃO 2.0. Conteúdo GERADOR DE RELATÓRIOS WINREPORT VERSÃO 2.0 Este manual foi desenvolvido com o objetivo de documentar as principais funcionalidades do Gerador de Relatórios WinReport versão 2.0. Conteúdo 1. Tela Principal...

Leia mais

PROJECT 1 Delphi Project (Extensão. DPR)

PROJECT 1 Delphi Project (Extensão. DPR) CAPÍTULO2 1. A ESTRUTURA DE UM APLICATIVO Quando iniciamos uma aplicação em Delphi ele interpreta que iremos desenvolver um projeto. Este gerencia um conjunto de recursos como Forms, Units, objetos, funções

Leia mais

Banco de Dados BrOffice Base

Banco de Dados BrOffice Base Banco de Dados BrOffice Base Autor: Alessandro da Silva Almeida Disponível em: www.apostilando.com 27/02/2011 CURSO TÉCNICO EM SERVIÇO PÚBLICO Apostila de Informática Aplicada - Unidade VI Índice Apresentação...

Leia mais

Classes de Entidades Persistentes JDB

Classes de Entidades Persistentes JDB Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena

Leia mais

Programa de Dispositivos Móveis

Programa de Dispositivos Móveis Aula 02 - Exercício Programa de Dispositivos Móveis PDM - Aula02 - Exercício- Ver 02-04/06/2014 08:56 Criando Aplicação Android (BasicView) Vamos continuar a criar interfaces gráficas (UI) básicas com

Leia mais

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5. Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria

Leia mais

MANUAL PARA USO DO SISTEMA GCO Gerenciador Clínico Odontológico

MANUAL PARA USO DO SISTEMA GCO Gerenciador Clínico Odontológico MANUAL PARA USO DO SISTEMA GCO Gerenciador Clínico Odontológico O GCO é um sistema de controle de clínicas odontológicas, onde dentistas terão acesso a agendas, fichas de pacientes, controle de estoque,

Leia mais

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível.

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível. Atividade 4 2013 SSIS Atenção! A atividade 4 será apresentada para toda a turma. Cada aluno terá 10 minutos para apresentação. O dia da apresentação será posteriormente marcado. Montando o cenário Para

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico Sistema Gerenciador de Conteúdo Dinâmico Atualizado em 24/08/2011 No final de 2007, o Serviço Técnico de Informática da UNESP Marília, disponibilizou para a comunidade acadêmica e administrativa o Sistema

Leia mais

CRIANDO TEMPLATES E LEGENDAS

CRIANDO TEMPLATES E LEGENDAS CRIANDO TEMPLATES E LEGENDAS Este tutorial tem como objetivo instruir passo à passo como criar templates de peças, utilizar os novos recursos de cadastro de propriedade de peças e criação de legenda. 1-

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho. DELPHI BÁSICO VANTAGENS Ambiente de desenvolvimento fácil de usar; 1. Grande Biblioteca de Componentes Visuais (VCL - Visual Component Library), que são botões, campos, gráficos, caixas de diálogo e acesso

Leia mais

Como Gerar documento em PDF com várias Imagens

Como Gerar documento em PDF com várias Imagens Como Gerar documento em PDF com várias Imagens Para Gerar documento em PDF com várias Imagens, temos que seguir dois passos: 1. Inserir Imagens no Word 2. Gerar PDF a partir de documento do Word 1- Inserir

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI CRIANDO UMA AUTENTICAÇÃO DE USUÁRIO UTILIZANDO O COMPONENTE QUERY A autenticação de usuários serve para

Leia mais

Programação para a Plataforma Android Aula 11. Banco de Dados

Programação para a Plataforma Android Aula 11. Banco de Dados Programação para a Plataforma Android Aula 11 Banco de Dados Introdução a linguagem SQL O banco de dados SQLite Como criar e manipular um banco de dados em Android Como apresentar dados na tela do aparelho

Leia mais

Google Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho

Google Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho Google Android Uma abordagem prática e didática Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho Esse livro está à venda em http://leanpub.com/google-android Essa versão foi publicada em 2015-08-03

Leia mais

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Nome Número: Série Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Proposta do projeto: Competências: Compreender a orientação a objetos e arquitetura cliente-servidor, aplicando-as

Leia mais

Tutorial - Programando com o MIOLO

Tutorial - Programando com o MIOLO Tutorial - Programando com o MIOLO Conceitos Básicos Antes de iniciar a programação com o Miolo é fundamental compreender alguns conceitos básicos: - Uma aplicação no Miolo é constituída de um ou mais

Leia mais

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL

Leia mais

Projeto Supermercado - Manutenção

Projeto Supermercado - Manutenção OBJETIVO: Este projeto possibilitará fazer a manutenção dos dados das tabelas que compõem todo o Sistema. Didaticamente, ele permite ao programador iniciante ter os primeiros contatos com os objetos de

Leia mais

Framework MIOLO 2.5 Tutorial: Criando um módulo

Framework MIOLO 2.5 Tutorial: Criando um módulo Framework MIOLO 2.5 Tutorial: Criando um módulo Versão 2011.1.oracle CGCO/UFJF Framework MIOLO 2.5 Tutorial: Criando um módulo 1. Introdução O processo de desenvolvimento de aplicações com o MIOLO possui

Leia mais

Banco de Dados Microsoft Access: Criar tabelas

Banco de Dados Microsoft Access: Criar tabelas Banco de Dados Microsoft Access: Criar s Vitor Valerio de Souza Campos Objetivos do curso 1. Criar uma no modo de exibição Folha de Dados. 2. Definir tipos de dados para os campos na. 3. Criar uma no modo

Leia mais

MICROSOFT WORD 2007. George Gomes Cabral

MICROSOFT WORD 2007. George Gomes Cabral MICROSOFT WORD 2007 George Gomes Cabral AMBIENTE DE TRABALHO 1. Barra de título 2. Aba (agrupa as antigas barras de menus e barra de ferramentas) 3. Botão do Office 4. Botão salvar 5. Botão de acesso à

Leia mais

CRIANDO UM BANCO DE DADOS

CRIANDO UM BANCO DE DADOS CRIANDO UM BANCO DE DADOS Bem, antes de iniciarmos propriamente no delphi, devemos aprender a usar sua ferramentas, sendo uma das mais importantes o Database Desktop, pois é com esta que construímos nossos

Leia mais

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : O form Index A tabela Fotos A query Q_seleção_de_fotos Vide figura 46. Figura 46 O próximo passo é criar um form que

Leia mais

Iniciando o MySQL Query Brower

Iniciando o MySQL Query Brower MySQL Query Brower O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico. Assim como o MySQL Administrator foi criado

Leia mais