Pesquisar no Programero

sexta-feira, 30 de maio de 2008

Java


Em 1991, na Sun Microsystems, foi iniciado o Green Project, o berço do Java, uma linguagem de programação orientada a objetos. Os mentores do projeto eram Patrick Naughton, Mike Sheridan, e James Gosling. O objetivo do projeto não era a criação de uma nova linguagem de programação, mas antecipar e planejar a “próxima onda” do mundo digital. Eles acreditavam que, em algum tempo, haveria uma convergência dos computadores com os equipamentos e eletrodomésticos comumente usados pelas pessoas no seu dia-a-dia.
Para provar a viabilidade desta idéia, 13 pessoas trabalharam arduamente durante 18 meses. No verão de 1992 eles emergiram de um escritório de Sand Hill Road no Menlo Park com uma demonstração funcional da idéia inicial. O protótipo se chamava *7 (leia-se “StarSeven”), um controle remoto com uma interface gráfica touchscreen. Para o *7, foi criado um mascote, hoje amplamente conhecido no mundo Java, o Duke. O trabalho do Duke no *7 era ser um guia virtual ajudando e ensinando o usuário a utilizar o equipamento. O *7 tinha a habilidade de controlar diversos dispositivos e aplicações. James Gosling especificou uma nova linguagem de programação para o *7. Gosling decidiu batizá-la de “Oak”, que quer dizer carvalho, uma árvore que ele podia observar quando olhava pela sua janela.
O próximo passo era encontrar um mercado para o *7. A equipe achava que uma boa idéia seria controlar televisões e vídeo por demanda com o equipamento. Eles construíram um demo chamado MovieWood, mas infelizmente era muito cedo para que o vídeo por demanda bem como as empresas de TV a cabo pudessem viabilizar o negócio. A idéia que o *7 tentava vender, hoje já é realidade em programas interativos e também na televisão digital. Permitir ao telespectador interagir com a emissora e com a programação em uma grande rede cabos, era algo muito visionário e estava muito longe do que as empresas de TV a cabo tinham capacidade de entender e comprar. A idéia certa, na época errada.
Entretanto, o estouro da Internet aconteceu e rapidamente uma grande rede interativa estava se estabelecendo. Era este tipo de rede interativa que a equipe do *7 estava tentando vender para as empresas de TV a cabo. E, da noite para o dia, não era mais necessário construir a infra-estrutura para a rede, ela simplesmente estava lá. Gosling foi incumbido de adaptar o Oak para a Internet e em janeiro 1995 foi lançada uma nova versão do Oak que foi rebatizada para Java. A tecnologia Java tinha sido projetada para se mover por meio das redes de dispositivos heterogêneos, redes como a Internet. Agora aplicações poderiam ser executadas dentro dos browsers nos Applets Java e tudo seria disponibilizado pela Internet instantaneamente. Foi o estático HTML dos browsers que promoveu a rápida disseminação da dinâmica tecnologia Java. A velocidade dos acontecimentos seguintes foi assustadora, o número de usuários cresceu rapidamente, grandes fornecedores de tecnologia, como a IBM anunciaram suporte para a tecnologia Java.
Desde seu lançamento, em maio de 1995, a plataforma Java foi adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação. Em 2003 Java atingiu a marca de 4 milhões de desenvolvedores em todo mundo. Java continuou crescendo e hoje é uma referência no mercado de desenvolvimento de software. Java tornou-se popular pelo seu uso na Internet e hoje possui seu ambiente de execução presente em web browsers, mainframes, SOs, celulares, palmtops e cartões inteligentes, entre outros.

Matérias e dicas relacionadas ao Java

  1. Aplicação MDI no Java
  2. Interação Cliente/Servidor sem Conexão com Datagramas (Java)
  3. Introdução ao Eclipse (Java)
  4. Desenvolvimento de aplicações para dispositivos móveis I (Java)
  5. Desenvolvimento de aplicações para dispositivos móveis II (Java)
  6. O ótimo LWUIT (Java ME)
  7. Data e Hora no j2me
  8. Manipulando Arquivos no Java
  9. Acesso a banco de dados com Java
  10. Servidores de aplicação e Servlets
  11. Modelo, visão, controlador (MVC)
  12. Android e eu
  13. Antes do hello world um pouco de teoria (Android) 
  14. Hello Android!
  15. RelativeLayout (Android)  
  16. LinearLayout (Android) 
  17. TableLayout (Android)
  18. Compactando arquivos (Android)

SQL Server



Em 1988 a Microsoft lançou sua primeira versão do SQL Server. Ela foi desenvolvida para a plataforma OS/2 juntamente com a Microsoft e a Sybase.


Durante os anos 90 a Microsoft iniciou o desenvolvimento de uma versão para a plataforma NT. Enquanto o SQL Server estava sendo desenvolvido a Microsoft decidiu que ele deveria ser uma camada encapsulada sobre o sistema operacional NT.
Em 1992 a Microsoft assumiu a responsabilidade maior sobre o futuro do SQL Server para o NT.
Em 1993 o Windows NT 3.1 e o SQL Server 4.2 para NT foram lançados. A filosofia da Microsoft em combinar um banco de alta performance com uma interface fácil de usar mostrou-se um sucesso. Microsoft rapidamente tornou-se o segundo mais popular vendedor de softwares de bancos de dados relacionais.
Em 1994 a Microsoft e a Sybase formalmente encerraram sua parceria.
Em 1995 a Microsoft lançou a versão 6.0 do SQL Server. Esse lançamento foi uma das maiores rescritas da tecnologia SQL Server. A versão 6.0 aumentou a performance substancialmente provendo mecanismos internos de replicação e administração centralizada.
Em 1996 a Microsoft lançou a versão 6.5 do SQL Server. Essa versão trouxe melhoras significativas para a tecnologia e disponibilizou diversas novas funcionalidades.
Em 1997 a Microsoft lançou a versão Enterprise do SQL 6.5.
Em 1998 a Microsoft lançou a versão 7 do SQL Server o qual foi completamente rescrito.
Em 2000 a Microsoft lançou o SQL Server 2000. O SQL Server 2000 é o lançamento mais importante do SQL Server até o momento. Essa versão foi construída sobre o framework do SQL Server 7.0. De acordo com o time de desenvolvimento do SQL Server essas mudanças foram desenvolvidas para tornar essa tecnologia mais nova pelos próximos 10 anos.
2003 - O SQL Server 2000 ganha a sua versão em 64-bit podendo acessar maiores quantidades de memória. Infelizmente o time teve de escolher e optou por lançar o SQL Server 2000 apenas para o Itanium.
2005 - É lançado o SQL Server 2005 (com o codinome Yukon) com grande integração a plataforma .NET. O SQL Server dá mais um passo em direção às grandes plataformas corporativas. A Microsoft exibe alguns grandes casos de sucesso (como a Xerox que consegue realizar até 7.000.000 de transações diárias utilizando o SQL Server 2005 e a Bovespa que é a bolsa de valores do Brasil).

2007 - A Microsoft divulga em uma feira mundial de Business Intelligence o lançamento do SQL Server 2008 previsto para 2008. O principal slogan é "ir um pouco além do relacional". Novas funcionalidades como tipos de dados geográficos, controle de carga por usuário, etc estão previstas.

Matérias e dicas relacionadas ao SQL Server


  1. Consulta Top-N SQL Server

Oracle

O Oracle é um SGBD (sistema gerenciador de banco de dados) que surgiu no fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia.
Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negócios no modelo de banco de dados relacional tornando assim a maior empresa de software empresarial do mundo.
O SGBD da Oracle é líder de mercado. O Oracle 9i foi pioneiro no suporte ao modelo web. O Oracle 10g, mais recente, se baseia na tecnologia de grid. Recentemente fora lançado o Oracle 11g que veio com melhorias em relação ao Oracle 10g.
Além da base de dados, a Oracle desenvolve uma suíte de desenvolvimento chamada de Oracle Developer Suite, utilizada na construção de programas de computador que interagem com a sua base de dados. A Oracle também criou a linguagem de programação PL/SQL, utilizada no processamento de transações.

Matérias e dicas relacionadas ao Oracle e ao PL/SQL
  1. Consulta Top-N Oracle
  2. Usando o Oracle I
  3. Usando o Oracle II
  4. Como verificar qual simbolo é o separador decimal (Oracle)
  5. Funções de Data Oracle
  6. Manipular arquivos com PL/SQL (Oracle)
  7. Array no PL/SQL (Oracle)
  8. O que devemos conhecer sobre SQL/Oracle Parte 1: Introdução ao SQL
  9. O que devemos conhecer sobre SQL/Oracle Parte 2: Usando comandos DDL para criar e manipular tabelas
  10. O que devemos conhecer sobre SQL/Oracle Parte 3: Manipulando dados
  11. O que devemos conhecer sobre SQL/Oracle Parte 4: Recuperando dados usando o comando SELECT
  12. O que devemos conhecer sobre SQL/Oracle Parte 5: Restringindo e ordenando dados
  13. O que devemos conhecer sobre SQL/Oracle Parte 6: Usando funções de linha única (single-row) para customizar a saída de dados
  14. O que devemos conhecer sobre SQL/Oracle Parte 7: Apresentando dados agregados utilizando funções de grupo
  15. O que devemos conhecer sobre SQL/Oracle Parte 8: Apresentando dados de varias tabelas
  16. O que devemos conhecer sobre SQL/Oracle Parte 9: Recuperando dados utilizando subconsultas
  17. O que devemos conhecer sobre SQL/Oracle Parte 10: Criando outros objetos de schema
  18. O que devemos conhecer sobre SQL/Oracle Parte 11: Gerenciando objetos de schema
  19. O que devemos conhecer sobre SQL/Oracle Parte 12: Utilizando os operadores SET
  20. O que devemos conhecer sobre SQL/Oracle Parte 13: Gerando resultados com o agrupamento de dados relacionados
  21. O que devemos conhecer sobre SQL/Oracle Parte 14: Manipulando objetos com as visões do dicionário de dados
  22. O que devemos conhecer sobre SQL/Oracle Parte 15: Manipulando grandes massas de dados
  23. O que devemos conhecer sobre SQL/Oracle Parte 16: Recuperação hierárquica
  24. O que devemos conhecer sobre SQL/Oracle Parte 17: Suporte a expressões regulares
  25. O que devemos conhecer sobre SQL/Oracle Parte 18: Controlando o acesso dos usuários 
  26. Loop com execute immediate (Oracle)
  27. Verificar privilégios de um usuário (Oracle)

MySQL


Criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius, que têm trabalhado juntos desde a década de 1980. Hoje seu desenvolvimento e manutenção empregam aproximadamente 70 profissionais no mundo inteiro, e mais de mil contribuem testando o software, integrando-o a outros produtos, e escrevendo a respeito dele.
O sucesso do MySQL deve-se em grande medida à fácil integração com o PHP incluído, quase que obrigatoriamente, nos pacotes de hospedagem de sites da Internet oferecidos atualmente. Empresas como Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics e Texas Instruments usam o MySQL em aplicações de missão crítica. A Wikipédia é um exemplo de utilização do MySQL em sites de grande audiência. Hoje suporta Unicode, Full Text Indexes, replicação, Hot Backup, GIS, OLAP e muitos outros recursos.
O MySQL faz parte da empresa Sun Microsystems que "criou" o Java. A Sun pagou uma quantia de 1 bilhão de dólares a empresa de SoftWare MySQL, sendo que foram 800 milhões em dinheiro e 200 milhões em ações da Sun. E ainda o CEO do MySQL Marten Mickos, entra na empesa, participando de outros projetos.

Matérias e dicas relacionadas ao MySQL

  1. Trigger no Mysql
  2. Funções de Data e Hora (MySQL)

Delphi


O Delphi foi lançado em 1995 para a plataforma Windows 16 bits, foi o primeiro a ser descrito como ambiente RAD (em português, Desenvolvimento Rápido de Aplicações). A segunda versão, lançada um ano depois, já produzia aplicativos para a plataforma Windows 32 bits, sendo que uma versão em C++ - o C++ Builder - surgiu alguns anos depois. Em 2001, uma versão para plataforma Linux, conhecida como Kylix, foi disponibilizada.
Em 2002, foi lançada uma nova versão compatível com Linux (através do Kylix e a paleta de componentes CLX ), sendo que em 2003 o Delphi 8 passou a incluir suporte para desenvolvimento de aplicações .NET. No final de 2004 foi lançada a versão Delphi 2005 (correspondente a versão 9), com suporte, na mesma IDE, ao desenvolvimento para plataformas Windows 32 bits e Windows .NET, além de integrar no mesmo ambiente de desenvolvimento a possibilidade de se desenvolver utilizando o ambiente do Delphi, C++ Builder ou C#. No final de 2005 foi lançada a versão Delphi 2006 (correspondente a versão 10) integrada no Borland Developer Studio 4.0 com destaque para a total integração com o Borland Together, o preview do compilador do C++ Builder, atualização dos drivers DBExpress, novos refactorings e recursos da IDE. Nessa versão o gerenciador de memória utilizado pelo Delphi foi substituído, tornando os aplicativos compilados em Delphi mais rápidos. Como a ferramenta é compilada utilizando o próprio Delphi, esta nova versão também está muito rápida.
O arquiteto por trás do Delphi e de seu predecessor Turbo Pascal foi Anders Hejlsberg, até a sua alteração para a Microsoft em 1996, onde se tornou o arquiteto responsável pelo projeto do C# e foi peça chave na criação do ambiente Microsoft .NET, utilizado no Delphi 8. O Delphi teve o formato da IDE alterado pela primeira vez na versão 8, basicamente similar ao formato do Microsoft Visual Studio para .NET.
A Borland passou o desenvolvimento de suas ferramentas para a CodeGear, e no dia sete de maio de 2008 a Borland vende sua divisão CodeGear por US$ 30 milhões.


Matérias e dicas relacionadas ao Delphi
  1. Geoprocessamento no Delphi
  2. Fazendo e Utilizando Pacotes (Delphi)
  3. Funções de Data e Hora (Delphi)
  4. Armazenando BMP's em arquivo de recurso ".RES"
  5. Inserir e retirar itens de ListBox
  6. Manipular o Registro do Windows
  7. Descobrir tipo do Arquivo (Delphi)
  8. Mover ponteiro do Mouse automaticamente (Delphi)
  9. Remover pontos de nome de arquivo (Delphi)
  10. Centralizar Texto em Edit
  11. Palavra com a primeira letra em Maiúsculo (Delphi)
  12. dbGrid zebrado (Delphi)
  13. Ler de um arquivo de configuração (.INI no Delphi)
  14. Como Verificar se um Objeto Existe (Delphi)
  15. Colocar imagem em campo do dbGrid
  16. Função INSTR do Oracle no Delphi
  17. Log de exceções não tratadas (Delphi)
  18. Iniciar e Parar Serviços do Windows (Delphi)
  19. Texto na Diagonal usando o Canvas (Delphi)
  20. Verificar tamanho de arquivo (Delphi)
  21. Listar arquivos existentes em diretório (Delphi)
  22. Alterar cores do PageControl (Delphi)
  23. Pegar informações de uma unidade (Delphi)
  24. Copiando arquivos (Delphi)

sábado, 24 de maio de 2008

Interação Cliente/Servidor sem Conexão com Datagramas (Java)

A transmissão sem conexão com datagramas é parecida com a maneira como a correspondência é transportada através do serviço postal. Se uma mensagem grande não couber em um envelope, você a divide em partes de mensagem separadas que você coloca em envelopes separados, numerados seqüencialmente. Cada uma das cartas é, então, remetida ao mesmo tempo. As cartas podem chegar em ordem, fora da ordem, ou não chegar (pouco provável). O receptor monta novamente os pedaços da mensagem na ordem seqüencial antes de tentar dar sentido a mensagem. Se a mensagem é suficientemente pequena para caber em um envelope, não há necessidade de se preocupar com a questão seqüencial.

A classe Servidor
A classe Server_D define dois DatagramPackets que o servidor utiliza para enviar e receber informações e um DatagramSocket que envia e recebe esses pacotes. O construtor para a classe Server_D cria a interface gráfica com o usuário na qual os pacotes de informação serão exibidos. Em seguida, o construtor cria o DatagramSocket em um bloco try. O construtor DatagramSocket recebe um argumento de numero de porta inteiro (5000) para vincular o servidor a uma porta em que o servidor pode receber pacotes de clientes. Os Clientes que enviam pacotes para esse servidor especificam a porta 5000 nos pacotes enviados. O construtor DatagramSocket dispara um SocketException se não conseguir vincular o DatagramSocket a uma porta.
package PKJServer_D;

//pacotes de nucleo do java
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

//pacotes de extenção
import javax.swing.*;

public class Server_D extends JFrame{
private JTextArea displayArea;
private DatagramPacket sendPacket, receivePacket;
private DatagramSocket socket;

//configura a GUI e o DatagramSocket
public Server_D()
{
super("Servidor");
displayArea = new JTextArea();
getContentPane().add( new JScrollPane( displayArea ), BorderLayout.CENTER );
setSize( 400, 300 );
setVisible( true );

//cria DatagramSocket para enviar e receber pacotes
try
{
socket = new DatagramSocket( 5000 );
}

//processa problemas ocorridos na criação do datagramSocket
catch( SocketException socketException )
{
socketException.printStackTrace();
System.exit( 1 );
}

}//fim do construtor Server_D

//espera que os pacotes cheguem e, depois,
//exibe os dados e ecoa o pacote para o cliente
public void waitForPackets()
{
//repete laço pra sempre
while( true )
{
try
{
//recebe o pacote
byte data[] = new byte[100];
receivePacket = new DatagramPacket( data, data.length );

//espera o pacote
socket.receive( receivePacket );

//processa o pacote
displayPacket();

//ecoa as informações
sendPacketToClient();

}
//processa problemas ocorridos na manipulação do pacote
catch( IOException ioException )
{
displayArea.append( ioException.toString() + "\n" );
ioException.printStackTrace();
}
}//fim do while

//processa problemas
}//fim do metodo waitForPackets

//exibe o conteudo do pacote
private void displayPacket()
{
displayArea.append( "\nPacote Recebido:" +
"\ndo Host: " + receivePacket.getAddress() +
"\nPorta do Host: " + receivePacket.getPort() +
"\nTamanho: " + receivePacket.getLength() +
"\nContendo:\n\t" +
new String( receivePacket.getData(), 0, receivePacket.getLength() )
);
}

//ecoa pacote para o cliente
private void sendPacketToClient() throws IOException
{
displayArea.append( "\n\nEnviando para o Cliente..." );

//cria pacote para enviar
sendPacket = new DatagramPacket( receivePacket.getData(),
receivePacket.getLength(),
receivePacket.getAddress(),
receivePacket.getPort()
);
//envia pacote
socket.send( sendPacket );

displayArea.append( "Pacote Enviado\n" );
displayArea.setCaretPosition( displayArea.getText().length() );
}

//executa o aplicativo
public static void main(String[] args)
{
Server_D application = new Server_D();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
application.waitForPackets();

}

}//fim da classe Server_D

A classe Cliente
A classe Client_D funciona de maneira semelhante a classe Server_D, com a diferença que o cliente envia pacotes apenas quando o usuário digita uma mensagem no JTextField e pressiona a tecla Enter. Quando isso ocorre, o programa chama o método actionPerformed, que converte o String que o usuário digitou no JTextField em um array de byte. È criado um DatagramPacket inicializado com um array de byte, o comprimento do String digitado pelo usuário, o endereço da internet para o qual o pacote deve ser enviado (InetAddress.getLocalHost()) e o numero da porta em que o servidor esta esperando os pacotes.

package PKJClient_D;

//pacotes de nucleo do java
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

//pacotes de extenção
import javax.swing.*;

public class Client_D extends JFrame{
private JTextField enterField;
private JTextArea displayArea;
private DatagramPacket sendPacket, receivePacket;
private DatagramSocket socket;

//configura a GUI e o DatagramSocket
public Client_D()
{
super( "Cliente" );
Container container = getContentPane();
enterField = new JTextField( "Digite a Mensagem aqui" );
enterField.addActionListener(
new ActionListener()
{
//cria e envia pacote
public void actionPerformed( ActionEvent event )
{
//cria e envia pacote
try
{
displayArea.append( "\nEnviando o Pacote contendo: " +
event.getActionCommand() + "\n");
//obtém mensagem do campo de texto e a converte
//para um array de bytes
String message = event.getActionCommand();
byte data[] = message.getBytes();

//cria sendPacket
sendPacket = new DatagramPacket(
data, data.length, InetAddress.getLocalHost(), 5000 );

//envia pacote
socket.send( sendPacket );

displayArea.append( "Pacote enviado\n" );
displayArea.setCaretPosition( displayArea.getText().length() );
}
//processa problemas ocorridos no criação ou no evento do pacote
catch ( IOException ioException )
{
displayArea.append( ioException.toString() + "\n" );
ioException.printStackTrace();
}
}//fim do método actionPerformed
}//fim da classe interna anônima

);//fim da chamada addActionListener

container.add( enterField, BorderLayout.NORTH );

displayArea = new JTextArea();
container.add( new JScrollPane( displayArea ), BorderLayout.CENTER );
setSize( 400, 300 );
setVisible( true );

//cria DatagramSocket para enviar e receber pacotes
try
{
socket = new DatagramSocket();
}
//captura problemas ocorridos na criação do DAtagramSocket
catch( SocketException socketException )
{
socketException.printStackTrace();
System.exit( 1 );
}
}//fim do construtor Client_D

//espera que os pacotes cheguem do Servidor,
//depois exibe o conteudo dos pacotes
public void waitForPackets()
{
//repete o laço para sempre
while( true )
{
//recebe o pacote e exibe o conteudo
try
{
//configura o pacote
byte data[] = new byte[ 100 ];
receivePacket = new DatagramPacket( data, data.length );

//espera o pacote
socket.receive( receivePacket );

//exibe o conteudo do pacote
displayPacket();
}
//processa problemas ocorridos no recepção ou exibição do pacote
catch( IOException exception )
{
displayArea.append( exception.toString() + "\n" );
exception.printStackTrace();
}
}//fim do while
}//fim do método waitForPackets

//exibe conteudo do receivePacket
private void displayPacket()
{
displayArea.append( "\nPacote Recebido:" +
"\ndo Host: " + receivePacket.getAddress() +
"\nPorta do Host: " + receivePacket.getPort() +
"\nTamanho: " + receivePacket.getLength() +
"\nContendo:\n\t" +
new String( receivePacket.getData(), 0, receivePacket.getLength() )
);
displayArea.setCaretPosition( displayArea.getText().length() );

}

//executa o aplicativo
public static void main(String[] args) {
Client_D application = new Client_D();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
application.waitForPackets();
}
}//fim da classe Client_D

Na imagem a seguir temos ambas aplicações:

Fonte:

terça-feira, 13 de maio de 2008

Geoprocessamento no Delphi

No último artigo referente à geoprocessamento tivemos uma pincelada sobre alguns dos principais conceitos e aplicações possíveis, agora chegou o momento de colocar a mão na massa.
Neste primeiro artigo prático iremos mostrar alguns componentes gratuitos, descrevendo suas funcionalidade e apresentando exemplos, o primeiro a ser visto será o Shape Viewer Objects (SVO), então mãos a obra!

Shape Viewer Objects™ (SVO)
A empresa Ecological Software Solutions LLC disponibilizou vários de seus componentes, assim como seus respectivos códigos fonte, e podem ser utilizados para fins comerciais. Existem alguns exemplos que acompanham o pacote de instalação, mas a utilização desses componentes requer uma certa dedicação.
A instalação é simples:
  • Execute o programa, para extrair os arquivos;
  • Ao final de extração teremos três pastas, Demo, Help e Source;
  • Abra a pasta Source e execute o arquivo .DPK, a primeira mensagem será para permissão de conversão, confirme, depois compile e instale, pronto agora é só usar;

(a)- Paleta ESS com os objetos após a instalação


Principais componentes do SVO

TGISReadWrite
TGISReadWrite
É o motor geoespacial GIS. Com ele é possível ler e escrever:
  • Arquivos ESRI Shape
  • Arquivos MapInfo
  • DXF DXF
  • Arquivos ASCII
  • Qualquer banco de dados SQL via e TDataset objeto ou descendente.
  • Passthrough OnReadExcel, especificamente para apoiar Excel.
  • Passthrough OnReadShape para apoio de qualquer tipo de arquivo definido.
TSVOShapeObject (non-visual) TSVOShapeObject (não-visuais)
Objeto básico. TSVOPointShape, TSVOLineShape, TSVOPolygonShape (total apoio à formas aninhadas), e TSVOMultipointShape todos são descendentes de TSVOShapeObject. Todos os TSVOShapeObjects podem ser criados independente, ou incluídos a uma TSVOShapeList (ver abaixo). A classe TSVOShapeObject contém todas as funções necessárias de abertura propriamente ditas, incluindo cores e estilos, em qualquer TCanvas, além da nova propriedade TSVOShapeList.
Os dados para polilinhas e polypoints são armazenados em uma matriz dinâmica, essa matriz dinâmica tem inúmeras funções internas para permitir a alteração em profundidade da matriz, permitindo alterações de forma mais rápida. Assim, você pode facilmente criar e manipular formas no decorrer do processo em seus aplicativos, e não apenas carregá-los a partir de arquivos.
TSVOShapeList (non-visual) TSVOShapeList (não-visuais)
Objeto não visual e um descendente de TPersistent. Funciona como um recipiente para TShapeObjects. Tem inúmeras funções de gestão de uma coleção de TShapeObjects. Um único TShapeList funciona como um única "Layer" no TGISImage.
O ShapeList mantém a maior parte do poder de transformação, contém a maior parte dos métodos importantes usados para manipular o ShapeObjects sob o seu controle.


TSVOGISImage TSVOGISImage
Um TCustomControl descendente. Usado para exibir camadas de um TShapeList. Tem zoom instantaneo, é possível agarrar e avançar, identificar forma Suporte para Lat / Long baseado em metros (por exemplo, UTM). Projeção interna de conversão. Algoritmos Datum de conversão.


TSVODataGrid TSVODataGrid
TDrawGrid descendente. Usado para exibir dados de um TShapeList. Você também pode ligar os dados usando um ponteiro para um TDataset, e exibir os dados em um TTable, mas TSVODataGrid tem suporte aperfeiçoado para multiselect, copiar, colar, adicionar colunas e linhas. Isso permite que as suas aplicações e seus usuários a interajam com os dados GIS. Também pode ser utilizado como uma planilha autônoma bem como, através da definição de que é "ownsdata" com a propriedade "true".

TDataFileList
TDataFileList
TSVOShapeLists permite a manipulação e armazenamento de Shapes.


T
SVOLegend TSVOLegend
Você pode exibir seus dados usando o Windows ® TListView, mas para um controle otimizado você pode usar o SVO TSVOLegend.
Abaixo podemos ver uma das aplicações de demonstração que acompanha esse pacote (GisApp.dpr), nós carregamos um mapa que acompanha o exemplo depois mostramos as informações em um formulário a parte.
(b)- Aplicação de Demosntração GisApp

No próximo artigo veremos outro componente open source para o Delphi, o MapWindow, até a próxima...
OBS.: Este artigo se utilizou de uma adaptação do conteúdo do site da empresa proprietária do componente, qualquer retificação do conteúdo será bem vinda.

quarta-feira, 7 de maio de 2008

O Android do Google


Um grupo contando com mais de 30 empresas de tecnologia e telefonia celular chamado de "The Open Handset Alliance" está desenvolvendo a primeira plataforma completa, aberta e gratuita para celulares. Já está disponivel um kit de desenvolvimento para a plataforma incluindo um emulador de dispositivo para testes.
A empresa HTC já anunciou que na segunda metade desse ano estará lançando um aparelho que usará o novo sistema.


Entre os dias 11 e 14 de fevereiro deste ano ocorreu em Barcelona o "Mobile World Congress", onde diversos fabricantes de dispositivos móveis se apresentaram demonstrando seus equipamentos e vários fabricantes demonstraram seus chips em prototipos utilizando o Android (leia mais).
Para completar o Google, para tornar a plataforma mais atraente com aplicações inovadoras e úteis para os usuários lançou um desafio (Android Developer Challenge) valendo US$10 milhões para programadores criarem aplicativos para o Android.


Fonte:
Google Code
EngadGet
Wikipedia
Veja Isso