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 thiago@theclub.com.br Internet Cadastro: cadastro@theclub.com.br Suporte: suporte@theclub.com.br Informações: info@theclub.com.br 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. suporte@theclub.com.br 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 ( 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 := WideCharLenToString(@ 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

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

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

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

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

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

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

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas Microsoft Power Point 2003 No Microsoft PowerPoint 2003, você cria sua apresentação usando apenas um arquivo, ele contém tudo o que você precisa uma estrutura para sua apresentação, os slides, o material

Leia mais

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados Tutorial Plone 4 Manutenção de Sites Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados Sumário Introdução 1 Como fazer a autenticação do usuário 1.1 Através do

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

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

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

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

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word Tutorial Gerar arquivo PDF. Com o objetivo de simplificar e diminuir o tamanho de arquivos anexos nos projetos, elaboramos um pequeno tutorial mostrando como gerar um único arquivo no formato pdf contendo

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

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

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

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

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos Este procedimento corresponde ao fluxo de trabalho de Indexação de código de barras e de separação de documentos no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se

Leia mais

EXEMPLO DE COMO FAZER UMA MALA DIRETA

EXEMPLO DE COMO FAZER UMA MALA DIRETA EXEMPLO DE COMO FAZER UMA MALA DIRETA OBS: Para esta nota de aula foi utilizada como referência: Apostila Mala Direta Santos, Jorge Rodrigues dos. Foram adaptados os comando para utilizar mala direta no

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

Manual do Google agenda. criação e compartilhamento de agendas

Manual do Google agenda. criação e compartilhamento de agendas Manual do Google agenda criação e compartilhamento de agendas 1 O que é o Google Agenda? Google Agenda é um serviço de agenda on line gratuito do Google, onde você pode anotar compromissos e tarefas, organizando

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Sistema de Recursos Humanos

Sistema de Recursos Humanos Sistema de Recursos Humanos Projeto 1 O objetivo desse sistema é gerenciar a admissão e a demissão de funcionários. Esse funcionário pode ou não ter dependentes. Esse funcionário está alocado em um departamento

Leia mais

Google Drive: Acesse e organize seus arquivos

Google Drive: Acesse e organize seus arquivos Google Drive: Acesse e organize seus arquivos Use o Google Drive para armazenar e acessar arquivos, pastas e documentos do Google Docs onde quer que você esteja. Quando você altera um arquivo na web, no

Leia mais

Validando dados de páginas WEB

Validando dados de páginas WEB Validando dados de páginas WEB Para que validar os dados? Validar os dados informados pelo usuário garante que sua aplicação funcione corretamente e as informações contidas nela tenha algum sentido. Outro

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

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS. Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar com o CMS. 5 Removendo o Cliente. Playlist 7 Criando um Playlist. 8 Adicionando

Leia mais

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Compartilhamento de Arquivos no Google Drive Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução...

Leia mais

Manual de configuração do sistema

Manual de configuração do sistema Manual de configuração do sistema (v.1.5.x Beta) Rua México, 119 Sala 2004 Centro Rio de Janeiro, RJ www.doctors-solution.com.br www.simdoctor.com.br contato@simdoctor.com.br Sumário 1. Fazendo seu primeiro

Leia mais

e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União

e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Sumário 1. Acesso ao sistema... 3 2. Funcionalidades do sistema... 5 3. Como tratar manifestações... 14 3.1 Detalhar...

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de email]

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de email] MANUAL COTAÇAO WEB [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de email] MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA Material Desenvolvido para a Célula Materiais Autor: Equipe

Leia mais

Trecho retirando do Manual do esocial Versão 1.1

Trecho retirando do Manual do esocial Versão 1.1 Trecho retirando do Manual do esocial Versão 1.1 A rotina de acesso direto ao XML do S-1000, o usuário pode encontrar na opção de cadastro de Empresas do SIP. Sempre que o usuário localizar a figura ao

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

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

Leia mais

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software O Animail é um software para criar campanhas de envio de email (email Marketing). Você pode criar diversas campanhas para públicos diferenciados. Tela Principal do sistema Para melhor apresentar o sistema,

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

Criando uma agenda simples com NetBeans 6.5

Criando uma agenda simples com NetBeans 6.5 Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno de

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

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar

Leia mais

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Características do Software Urano Integra 2.2 Data: 12/05/2014

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

Word 1 - Introdução 1.1 - Principais recursos do word 1.2 - A janela de documento 1.3 - Tela principal

Word 1 - Introdução 1.1 - Principais recursos do word 1.2 - A janela de documento 1.3 - Tela principal Word 1 - Introdução O Word para Windows ou NT, é um processador de textos cuja finalidade é a de nos ajudar a trabalhar de maneira mais eficiente tanto na elaboração de documentos simples, quanto naqueles

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

ÍNDICE... 2 POWER POINT... 4. Abas... 7 Salvando Arquivos... 8 Abrindo um arquivo... 11 LAYOUT E DESIGN... 13

ÍNDICE... 2 POWER POINT... 4. Abas... 7 Salvando Arquivos... 8 Abrindo um arquivo... 11 LAYOUT E DESIGN... 13 Power Point ÍNDICE ÍNDICE... 2 POWER POINT... 4 Abas... 7 Salvando Arquivos... 8 Abrindo um arquivo... 11 LAYOUT E DESIGN... 13 Guia Design... 14 Cores... 15 Fonte... 16 Efeitos... 17 Estilos de Planos

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

Janelas e seus elementos

Janelas e seus elementos Janelas e seus elementos As janelas são quadros que são exibidos na tela do monitor. Todos os aplicativos estudados nesse curso serão exibidos dentro de janelas. Nelas você poderá abrir, salvar e fechar

Leia mais

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel Tabela e Gráficos Dinâmicos Como estruturar! Para que serve a Tabela e o Gráfico Dinâmico?! Como criar uma Tabela Dinâmica?! Como criar um Gráfico Dinâmico?! Como podemos atualizar dos dados da Tabela

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

Pesquisa e organização de informação

Pesquisa e organização de informação Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na

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

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

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

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

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

Operador de Computador. Informática Básica

Operador de Computador. Informática Básica Operador de Computador Informática Básica Instalação de Software e Periféricos Podemos ter diversos tipos de software que nos auxiliam no desenvolvimento das nossas tarefas diárias, seja ela em casa, no

Leia mais

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI ESTE MATERIAL TEM UM OBJETIVO DE COMPLEMENTAR OS ASSUNTOS ABORDADOS DENTRO DE SALA DE AULA, TORNANDO-SE UM GUIA PARA UTILIZAÇÃO DA FERRAMENTA

Leia mais

TUTORIAL COMO CRIAR E EDITAR UM VÍDEO NO WINDOWS MOVIE MAKER*

TUTORIAL COMO CRIAR E EDITAR UM VÍDEO NO WINDOWS MOVIE MAKER* TUTORIAL COMO CRIAR E EDITAR UM VÍDEO NO WINDOWS MOVIE MAKER* * Microsoft Windows MovieMakeré um programa da Microsoft Corporation. A versão utilizada é a 5.1 que já vem instalada no Microsoft Windows

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

Facebook Instruções de integração com PayPal

Facebook Instruções de integração com PayPal Facebook Instruções de integração com PayPal Há diversas formas de utilizar o PayPal para receber pagamentos na plataforma do Facebook. Primeiro você precisa decidir suas necessidades para a opção mais

Leia mais

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011 Manual Profissional BackOffice Mapa de Mesas v2011 1 1. Índice 2. Introdução... 2 3. Iniciar ZSRest Backoffice... 3 4. Confirmar desenho de mesas... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5. Desenhar

Leia mais

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

Veja abaixo um exemplo de como os dados são mostrados quando usamos o Objeto DataGridView O controle DataGridView é um dos objetos utilizados para exibir dados de tabelas de um banco de dados. Ele está disponível na guia de objetos Data na janela de objetos do vb.net. Será

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

Microsoft Office PowerPoint 2007

Microsoft Office PowerPoint 2007 INTRODUÇÃO AO MICROSOFT POWERPOINT 2007 O Microsoft Office PowerPoint 2007 é um programa destinado à criação de apresentação através de Slides. A apresentação é um conjunto de Sides que são exibidos em

Leia mais

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006 TUTORIAL Entradas Digitais Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br

Leia mais

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Manual do Publicador Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web Sumário Painel de Administração... 3 1 - Inserção de post... 5 2 Publicação de post com notícia na área headline (galeria de

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

Universidade Federal do Mato Grosso - STI-CAE. Índice

Universidade Federal do Mato Grosso - STI-CAE. Índice CAPA Universidade Federal do Mato Grosso - STI-CAE Índice 1. Página da área administrativa... 1.1 Botões e campo iniciais... 2. Explicar como funcionam as seções... 2.1. Seções dinâmicos... 2.1.1 Como

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

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

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

O GEM é um software 100% Web, ou seja, você poderá acessar de qualquer local através da Internet.

O GEM é um software 100% Web, ou seja, você poderá acessar de qualquer local através da Internet. Olá! Você está recebendo as informações iniciais para utilizar o GEM (Software para Gestão Educacional) para gerenciar suas unidades escolares. O GEM é um software 100% Web, ou seja, você poderá acessar

Leia mais

Disciplina: Programas de Edição de Textos Professora: Érica Barcelos

Disciplina: Programas de Edição de Textos Professora: Érica Barcelos Disciplina: Programas de Edição de Textos Professora: Érica Barcelos CAPÍTULO 4 4. RECURSOS PARA ILUSTRAÇÕES Uma característica que difere os processadores de textos dos editores é a possibilidade de gerar

Leia mais

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT Power Point Básico Santa Maria, julho de 2006 O Power Point é um aplicativo do Microsoft Office direcionado à criação de apresentações.

Leia mais

Gerenciamento de Contatos

Gerenciamento de Contatos Gerenciamento de Contatos O objetivo deste módulo é ajudar a gerenciar todos os contatos da empresa. Além dos dados mais importantes, o módulo permite cadastrar anotações e relacionar as tarefas e eventos

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

MICROSOFT OFFICE EXCEL 2007

MICROSOFT OFFICE EXCEL 2007 LEIAME Nenhuma informação da APOSTILA - MICROSOFT OFFICE EXCEL 2007 poderá ser copiada, movida ou modificada sem autorização prévia e escrita do autor. MICROSOFT OFFICE EXCEL 2007 Efetue cálculos, analise

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

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos. JavaScript JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos. Pode ser usada dentro do próprio arquivo HTML ou estruturada em um

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

Sumário: Fluxo Operacional... 3 Contatos... 4. Agenda Online... 10. Reservas de Salas... 26. Tarefas... 42

Sumário: Fluxo Operacional... 3 Contatos... 4. Agenda Online... 10. Reservas de Salas... 26. Tarefas... 42 Sumário: Fluxo Operacional... 3 Contatos... 4 Passo a passo para visualização de contatos... 5 Passo a passo para filtragem da lista de contatos... 6 Como ordenar a lista de contatos... 7 Como gerar uma

Leia mais

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação

Leia mais

1. Tela de Acesso pg. 2. 2. Cadastro pg. 3. 3. Abas de navegação pg. 5. 4. Abas dados cadastrais pg. 5. 5. Aba grupo de usuários pg.

1. Tela de Acesso pg. 2. 2. Cadastro pg. 3. 3. Abas de navegação pg. 5. 4. Abas dados cadastrais pg. 5. 5. Aba grupo de usuários pg. Sumário 1. Tela de Acesso pg. 2 2. Cadastro pg. 3 3. Abas de navegação pg. 5 4. Abas dados cadastrais pg. 5 5. Aba grupo de usuários pg. 6 6. Aba cadastro de funcionários pg. 7 7. Pedidos pg. 12 8. Cartões

Leia mais

Lição 1 - Criação de campos calculados em consultas

Lição 1 - Criação de campos calculados em consultas 1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas

Leia mais

Como incluir artigos:

Como incluir artigos: Como incluir artigos: O WordPress é uma ferramenta muito flexível, com muitas variações e ajustes que podem torná-lo algo muito simples e também muito sofisticado conforme os recursos que são configurados

Leia mais

NewAgent enterprise-brain

NewAgent enterprise-brain Manual NewAgent enterprise-brain Configuração Manual NewAgent enterprise-brain Configuração Este manual de uso irá ajudá-lo na utilização de todas as funções administrativas que a NewAgent possui e assim,

Leia mais

Análise de Dados do Financeiro

Análise de Dados do Financeiro Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.

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

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Ele considera que você já tem o Joomla! instalado no seu computador. Caso você queira utilizá lo em um servidor na web,

Leia mais

Omega Tecnologia Manual Omega Hosting

Omega Tecnologia Manual Omega Hosting Omega Tecnologia Manual Omega Hosting 1 2 Índice Sobre o Omega Hosting... 3 1 Primeiro Acesso... 4 2 Tela Inicial...5 2.1 Área de menu... 5 2.2 Área de navegação... 7 3 Itens do painel de Controle... 8

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

ÍNDICE... 2 INTRODUÇÃO... 4

ÍNDICE... 2 INTRODUÇÃO... 4 Mic crosoft Excel 201 0 ÍNDICE ÍNDICE... 2 INTRODUÇÃO... 4 Interface... 4 Guias de Planilha... 5 Movimentação na planilha... 6 Entrada de textos e números... 7 Congelando painéis... 8 Comentários nas Células...

Leia mais

Instalando o Internet Information Services no Windows XP

Instalando o Internet Information Services no Windows XP Internet Information Services - IIS Se você migrou recentemente do Windows 95 ou 98 para o novo sitema operacional da Microsoft Windows XP, e utilizava antes o Personal Web Server, deve ter notado que

Leia mais

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com Gerenciamento de Arquivos e Pastas Professor: Jeferson Machado Cordini jmcordini@hotmail.com Arquivo Todo e qualquer software ou informação gravada em nosso computador será guardada em uma unidade de disco,

Leia mais

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho Programação para Android Aula 10: Acesso a câmera, sms e recursos do aparelho Objetivos Nesta aula iremos aprender como invocar os recursos do aparelho: Fazer chamadas telefônicas Enviar SMS Utilizar a

Leia mais