FireMonkey – Andreano Lanusse | Tecnologia e Desenvolvimento de Software http://www.andreanolanusse.com/pt Andreano Lanusse blog - artigos, tutoriais e vídeos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e técnicas de programação Sun, 27 Apr 2014 02:05:25 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.5.8 Delphi XE5 Update 2 – muitas correções no FireMonkey para iOS, Android e compilador http://www.andreanolanusse.com/pt/delphi-xe5-update-2-muitas-correcoes-firemonkey-para-ios-android-e-compilador/ http://www.andreanolanusse.com/pt/delphi-xe5-update-2-muitas-correcoes-firemonkey-para-ios-android-e-compilador/#comments Sat, 28 Dec 2013 05:57:21 +0000 http://www.andreanolanusse.com/pt/?p=4358 Mais uma correção para o Delphi XE5 e C++Builder XE5, o Update 2 foi disponibilizado e traz muitas correções para bugs em diversas áreas, principalmente no FireMonkey, seja para Android, iOS, Windows ou Mac. O Update 2 está disponível para os usuários registrados através dos links abaixo. Vale lembrar que é obrigatório desinstalar seu Delphi […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Mais uma correção para o Delphi XE5 e C++Builder XE5, o Update 2 foi disponibilizado e traz muitas correções para bugs em diversas áreas, principalmente no FireMonkey, seja para Android, iOS, Windows ou Mac.

O Update 2 está disponível para os usuários registrados através dos links abaixo. Vale lembrar que é obrigatório desinstalar seu Delphi XE5 para instalar o XE5 Update 2.

Abaixo a lista completa com todos os bugs corrigidos.

Reference No

Summary

Component/s

[Indy] Access Virolation occues on OnValidatePeerCertificate for IPPeerCommon bug[HTTPS,SSL] 3rd Party

120473

[iOS] SOAP fails in iOS when using SSL (“IOHandler value is not valid.”) Blocker

119873

TCameraComponent causes memory leak in Win32 Blocker

115697

TDump command crashes on DLL’s Command Line Tools

112826

TDump.exe shows strange output Command Line Tools

100328

TDump crashes on the x64 shell32.dll Command Line Tools

110887

TDump fails on some ‘foreign’ .dlls Command Line Tools
Delphi XE5 cannot build OSX applications from the command line Compiler
[FM Mac OSX 10.9] Compile error XMLDocument using SDK 10.9 Compiler, Compiler\C++

120686

[Mavericks 10.9] C++Builder XE4 does not support OS X 10.9 Compiler, Compiler\C++, Compiler\C++\BCC
Throwing a exception in virtual member function returning an AnsiString causes an AV and an abend under certain circumstances, in 32-bit C++ application Compiler, Compiler\C++, Compiler\C++\BCC, Compiler\C++\BCC\Back End

120476

[iOS ARM][Android] E2581 Backend error: invalid linkage type for global declaration Compiler, Compiler\Delphi
[dcc(ios/a)arm] Backend Error compiling constructor for generic classes Compiler, Compiler\Delphi

118897

method overload resolution fails when passing @ parameter to overloaded methods mixing Pointer and specific pointer parameters. Compiler, Compiler\Delphi
ShowMessage/Message Alerts not working in iOS 7 Simulator Compiler, Compiler\Delphi
[dccaarm][dcciosarm] Implicit finally block doesn’t execute if the exception is not catch in except block. Compiler, Compiler\Delphi
Crash by declaration error when declaring class function in record type Compiler, Compiler\Delphi
Internal Error URW1154 calling TValue.From() of System.Rtti Compiler, Compiler\Delphi

72147

Invalid section table entries on empty sections Compiler, Compiler\Delphi

119197

subtraction of sets changes its params Compiler, Compiler\Delphi, Compiler\Delphi\CodeGen
Integer computation error upon mixing Byte and Integer Compiler, Compiler\Delphi, Compiler\Delphi\CodeGen
When Currency is used in a generic record type you get an internal compiler error G1239 IN Zephyr and G1232 in XE4 Compiler, Compiler\Delphi, Compiler\Delphi\Generics

118815

Generic method inlining (part 2) Compiler, Compiler\Delphi, Compiler\Delphi\Generics

118866

Cannot perform FillChar on Currency variables – E2197 Constant object cannot be passed as var parameter Compiler, Compiler\Delphi, Compiler\Delphi\Messages

93738

Internal Error URW1136 Compiler, Compiler\Delphi, Compiler\Delphi\Messages

118929

Totally broken package compiler for an iOS device Compiler, Compiler\Delphi, Compiler\Delphi\Packages/Libs

118523

[dcc32] Command-line build fails for user account with non-ASCII characters Compiler, Compiler\Delphi, IDE\Build System
DataSnap : Memory leaks caused by TFDJSONDataSetsBase.FOwnsDataSet Data, Data\DataSnap
DataSnap: HTTP request may be broken when sending Delta Data, Data\DataSnap
[C++][DataSnap]Exception raised when trying to execute server method through proxy on OS X 10.9 Data, Data\DataSnap

116417

[ISAPI] DataSnap Server as an ISAPI DLL get a 48KB limitation when receiving POST data Data, Data\DataSnap
[OS X][DataSnap][FireDAC] Unable to find static library: DataSnapFireDAC.a Data, Data\DataSnap, Data\FireDAC
[DataSnap] TX509CertificateIndy.Verify is not operation as specification. Data, Data\DBX
Unable to load libsqlib.dylib Data, Data\DBX
DBX memory leak when running queries on NEXTGEN platforms Data, Data\DBX
FireDAC FDConnection does not autocommit Data, Data\FireDAC
FDExplorer resizing causes lost display of description column message Data, Data\FireDAC
Building a Mobile Application that contains a TFDPhysIBDriverLink component raises an error Data, Data\FireDAC
[SQLite] It can’t encipher by the specified encrypt parameter, so it can’t setup except aes-256 Data, Data\FireDAC
If XML containing MBCS is saved by SaveToStream, It is not copied correctly.. Data, Data\FireDAC
If XML containing MBCS is copied to TFDMemtable, Exception class EDOMParseError occurs Data, Data\FireDAC
FireDAC memory leak when running queries on NEXTGEN platforms Data, Data\FireDAC

119995

“Not editing” error reported with LiveBindings when calling ApplyUpdates on TAdapterBindSource Data, Data\LiveBindings

118633

[iOS device/Android] With TSoapConnection, TClientDataset.ApplyUpdates raises “Exception in safecall method” in iOS device and Android Data, Data\Midas

118633

[iOS device/Android] gdb reports wrong file after step into Debugger
Debugging not working with a FireMonkey Mobile app on Nexus 7 2013 Debugger
[Delphi] Access Violation when Inspecting or Adding a Watch with a function where an array is passed in as a var or const Debugger
Function call evaluation on C++ OSX apps is broken when using Mavericks Debugger, Debugger\Evaluator

120506

[OSX 10.9] Mavericks Modules Debug Window doesn’t show framework dylibs anymore Debugger, Debugger\Views

119777

ReqMulti.pas has been removed from the product File Delivery, Internet
[FMX/Android] TEdit causes SIGSEG if SetFocus method is called inside Forms’s OnCreate event. FireMonkey
[iOS] Sharing popup size is calculated wrong FireMonkey

120259

Bugs in creating forms with TForm.CreateNew() – i.e. without a designer. FireMonkey
Orientation switch breaks app or bars user after device activated again (after sleep) FireMonkey

119176

[iOS7 iPad Simulator] App crash in iOS 7 iPad Simulator FireMonkey

118770

Bad text rendering on Android FireMonkey
Poor application performance on Nexus 10 FireMonkey
[iOS] TMemo – sometimes when using LongTap to bring up the context menu on iOS, the cursor and context menu is moved up with one line FireMonkey

118554

[iOS Device] iOS App crashes on iOS 6.1.3 (iPad) when Showing Forms – but not on Simulator FireMonkey
TabletMasterDetail app takes over 10 seconds to load on Nexus 10 FireMonkey

120566

When adding a TBindNavigator, an Access Violation occurs FireMonkey

118799

2D Empty app does not start on Samsung Galaxy Tab 3 FireMonkey, FireMonkey\3D Components

120517

TMemo.ScrollLayout could cause access violation FireMonkey, FireMonkey\Components

120827

[iOS7] With TMemo, unintentional letter appears when entering with Japanese keyboard. FireMonkey, FireMonkey\Components
Date Picker mobile code snippet TCalendarEdit – decrements the date when you don’t change the date in the picker FireMonkey, FireMonkey\Components
Using German ß (00DF; LATIN SMALL LETTER SHARP S) in TListBoxGroupHeader raises EArgumentOutOfRangeException FireMonkey, FireMonkey\Components
On HTC one X(4.1.1) cannot be typed a set of numbers if the keyboard has the vktPhonePad type FireMonkey, FireMonkey\Components

120515

TMemo.GoToTextEnd crashes at program startup and doesn’t move the horizontal scrollbar FireMonkey, FireMonkey\Components

120517

TMemo.ScrollLayout could cause access violation FireMonkey, FireMonkey\Components

119442

Mobile Code Snippets – Web Browser needs to be updated. Web Browser Top Margin should be 0 FireMonkey, FireMonkey\Components
Problem changing the KeyboardType among different TEdit FireMonkey, FireMonkey\Components

120136

[Android 4.3] TListView component scrolling performance is very slow (Samsung GALAXY Note 3) FireMonkey, FireMonkey\Components
Listview scrolling performance slow on Samsung Galaxy Note 3 FireMonkey, FireMonkey\Components
Custom TabIcon support missing for iOS 7 FireMonkey, FireMonkey\Components

119442

[iOS7 device] Web Browser positioned incorrectly in iOS7 FireMonkey, FireMonkey\Components

120007

[Android, iOS] Viewport3D does not fully display on a mobile form with TabControl FireMonkey, FireMonkey\Components

118859

[iOS] TMedia Volume cannot be changed in iOS FireMonkey, FireMonkey\Components
TWebBrowser misaligned when Align set to alClient FireMonkey, FireMonkey\Components

119891

[Android] Edit.SetFocus in Form.OnShow() will cause app crash when entering text FireMonkey, FireMonkey\Components
TabControl does not fit the screen completely widthwise when it has exactly 6 TabItems FireMonkey, FireMonkey\Components

119821

[Android] Performance of Delphi Apps on Google Nexus 10(Android 4.3) FireMonkey, FireMonkey\Components

119539

[iOS] TMediaplayer pause (stop) on iOS is rewinding FireMonkey, FireMonkey\Components

119447

[Android] Location demo on some Android devices not working FireMonkey, FireMonkey\Components
Korean input problem with Tmemo on OS X FireMonkey, FireMonkey\Components

119192

[Android] Uppercase national characters are drawn bad on Android FireMonkey, FireMonkey\Components

119162

[Android] password is shown on virtual keyboard FireMonkey, FireMonkey\Components
TMemo very slow on Nexus 10 FireMonkey, FireMonkey\Components

119703

Stretched property of TText control does not work properly when TText is a child component for some other component, not a form FireMonkey, FireMonkey\Components

118859

[iOS] TMedia Volume cannot be changed in iOS FireMonkey, FireMonkey\Components

120023

[Android] TGestureManager crash on app close. FireMonkey, FireMonkey\Runtime
Throwing an exception and not catching it during any FMX component in an event have unexpected result FireMonkey, FireMonkey\Runtime

119450

[iOS7] vertical touch co-ordinate is several pixels lower than the actual touch position. FireMonkey, FireMonkey\Runtime

119444

[iOS7 device] Keyboard does not completely disappear when hidden in iOS7 FireMonkey, FireMonkey\Runtime
[NEXUS 10] SpeedButton – it takes too long until OnClick event is triggered FireMonkey, FireMonkey\Runtime

118910

Keyboard shift/ctrl+arrow keys not working for FireMonkey objects on a form FireMonkey, IDE, IDE\FireMonkey Designer
iOS 7 apps showing iOS 6 styled native controls (pickers/keyboard) on iOS Simulator FireMonkey, PAServer
FM C++ app with Mac OS X 10.9 SDK fails to compile IDE, IDE\Build System, IDE\Deployment, PAServer

120029

[Android] lower case of file path in deployedassets.txt IDE, IDE\Deployment
When starting RAD Studio XE5 (with android support installed) as the C++Builder personality it REMOVES the android SDK setting in the registry. IDE, IDE\General

118105

Android apps deployed to emulator will not function, display black screen IDE, Install

118830

Error detected (LME288), [ilink32 Error] Error: Unable to perform link Linker

116888

Strange linker crash Linker
Throw exception crash C++ Win64 app RTL, RTL\C++, RTL\C++\Exception Handling
Wrong behavior when executing code from a catch section on Mac OS RTL, RTL\C++, RTL\C++\Exception Handling
ARC Using Unsafe objects in records are not working properly RTL, RTL\Delphi
FM application crash at init in Android devices when the language is set to Norwegian (Norsk Bokmål) RTL, RTL\Delphi

118726

Application crash with raising exception class Segmentation fault (11) RTL, RTL\Delphi, RTL\Delphi\Other
SOAP: Double precision return values not correct for Android RTL, RTL\Delphi, SOAP

119872

SOAP AsDateTime implementation is wrong SOAP

119741

[Android] Segmentation fault consuming web service SOAP

76053

C++ templates are translated as “Vorlagen” Translation

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-xe5-update-2-muitas-correcoes-firemonkey-para-ios-android-e-compilador/feed/ 6
Delphi XE4 – Conheça as novidades para iOS e mais http://www.andreanolanusse.com/pt/delphi-xe4-conheca-as-novidades-para-ios-e-mais/ http://www.andreanolanusse.com/pt/delphi-xe4-conheca-as-novidades-para-ios-e-mais/#comments Mon, 22 Apr 2013 13:34:15 +0000 http://www.andreanolanusse.com/pt/?p=4281 Conheça todas as novidades do Delphi XE4, as mudanças que começam a ser feitas na linguagem e irá impactar futuramente, o InterBase para iOS, FireDac e finalmente as novidades do desenvolvimento com Delphi para iOS

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Semana passada publiquei aqui no blog que o Delphi XE4 estava para sair, hoje foi lançado o Delphi XE4 e o RAD Studio XE4, o foco desta versão é o desenvolvimento para iOS, traz algumas outras novidades em outras áreas e uma mudança importante em relação ao Delphi Prism.

Agile Brazil 2013 - Eu apoio

Antes de começar quero convidar a todos para o Agile Brazil 2013, o maior evento sobre metodologias ágeis do Brasil que acontece do dia 26 à 28 de junho em Brasília. Este evento eu recomendo de olho fechado, seja você desenvolvedor, gerente de produto, líder de equipe, gerente de projeto ou da área de software deve comparecer. Mais informações acesse este link onde escrevi mais detalhes sobre o evento.

 

Voltando ao tema, pela primeira vez na história do Delphi tivermos um novo release em tão pouco espaço de tempo, há 8 meses atrás foi lançado o Delphi XE3. A principal razão para este lançamento é o suporte a iOS.

Vamos então a um resumo das novidades do Delphi XE4 e a mudança no RAD Studio XE4.

Desenvolvimento para iOS no Delphi XE4

O suporte a iOS está de volta, originalmente foi incorporado no Delphi XE2 e removido no XE3, agora no XE4 traz uma série de mudanças, entre elas:

  • O FireMonkey para iOS sofreu diversas alterações para atender e funcionar melhor em iOS
  • O compilador para iOS é o baseado no novo compilador do Delphi para iOS e não mais no FreePascal
  • O deploy e teste das aplicações podem ser feitos diretos no Mac sem a necessidade de fazer export de projetos como anteriormente
  • O acesso via dbExpress a banco de dados SQLite e InterBase em iOS
  • Uso do ClientDataSet em iOS
  • RTL para iOS
  • Novo DataSnap Client para iOS que suporta TCP/IP, HTTP, HTTPS e REST

Existe uma série de classes, componentes e propriedades específicas para tratar as mais diversas particularidades do iOS e que não estarão disponíveis para Windows e Mac obviamente.

Aproveitando, curta a comunidade Developer Point Brasil, essa comunidade é bem bacana e traz diversos assuntos sobre desenvolvimento de software.

Novo compilador Delphi para Mobile

O compilador Delphi para aplicações mobile é 100% novo e traz diversas mudanças que até aqui são pertinentes ao desenvolvimento mobile com Delphi, entretanto é bom você começar a se preparar porque futuramente essas mudanças serão levadas para o desenvolvimento Desktop.

Todas essas mudanças tem como objetivo modernizar a linguagem, na minha opinião o Delphi precisa disso para mesmo que isso venha trazer incompatibilidade com código legado.

No novo compilador para mobile só existe um tipo de String, o próprio String, não há mais:

  • AnsiString
  • WideString
  • AnsiChar e PAnsiChar
  • PWideChar
  • OpenString
  • ShortString

No novo compilador:

  • Strings são imutáveis (constantes), ou seja, você não poderá manipular String como se fosse um array ( A[1] := ‘S’) e passará a usar TStringBuilder
  • String começam a partir da posição zero, você pode usar $ZEROBASEDSTRINGS para mudar este comportamente no seu código, mas não para a RTL para mobile

Além disso várias mudanças relacionadas ao Automatic Reference Counting, em outras palavras o mecanismo para destruir objetos que afeta o desenvolvimento mobile e irá afetar o desenvolvimento para desktop, este tema é extenso e vou voltar a falar nele em breve, enquanto isso de uma lida neste link.

Perguntas em Aberto

Várias pessoas me perguntaram qual será a política de atualização do Delphi quando uma nova versão do iOS for disponibilizada. Se nada mudou na Embarcadero com relação a isso, muito provavelmente a resposta será.

Caso você tenha comprando a manutenção (Software Assurance) do Delphi, você estará recebendo as atualização da versão atual e novas versões no período de um ano. Caso a Embarcadero não atualize na versão atual, você receberá a nova versão que muito provavelmente terá a atualização.

Enfim, pergunte novamente a Embarcadero sobre isso, pois sem dúvida este é um fator que pode impactar na sua decisão.

Também me perguntaram sobre a performance das aplicações geradas com Delphi para iOS quando comparadas a aplicações geradas com XCode.

Eu não tenho como responder a essa pergunta neste momento e explico porque. As aplicações iOS feitas com Delphi tem como run-time o FireMonkey, o qual tem um esquema próprio para a renderização da aplicação e isso faz uma grande diferença, já aplicações desenvolvida com XCode usam diretamente o iOS SDK.

Será necessário fazer testes para saber se a diferença ou não, caso você venha fazer esse tipo de teste, por favor me avise, tenho interesse em saber o resultado.

Adeus Delphi Prism

Primeira mudança esta relacionada ao RAD Studio que anteriormente trazia 4 IDEs, onde você desenvolvia para Delphi, C++, PHP e .NET. A partir do RAD Studio XE4 o conhecido Delphi Prism não estará mais incluido, com isso o RAD Studio fica composto apenas do Delphi, C++Builder e HTML5 Builder.

O Delphi Prism surgiu em 2009 para substituir o Delphi.NET como parte de um acordo entre Embarcadero e RemObjects, a Embarcadero licenciava a tecnologia da RemObjects e vendia como Delphi Prism.Com o fim do acordo o Prism que é o Oxygene continua no mercado através da RemObjects, os usuários do Prism passarão se assim quiser a usar Oxygene e continuarão tendo todo o suporte da RemObjects o qual continua evoluindo a ferramenta. A RemObjects publicou um comunicado oficial sobre isso em seu blog.

Para finalizar este tópico, vale lembrar que o Oxygene não é apenas uma ferramenta para desenvolvimento .NET, nos dias de hoje já suporta desenvolvimento nativo para iOS, Android e Windows Phone, o que leva a ser um concorrente do Delphi.

Download do ISO do Delphi XE4 e C++Builder XE4

Neste link você pode baixar o ISO completo que inclui as versões XE4 do Delphi e C++Builder ou o trial através do instalador web aqui.

Conclusão

Para os interessados em desenvolver apps para iOS o Delphi XE4 está ai, depois do Delphi XE2 e as inúmeras críticas dos clientes e comunidade, todos esperam que a Embarcadero venha com o Delphi XE4 disponibilizar um produto sólido, de qualidade e maduro para iOS.

Faça os testes você mesmo e comente aqui no blog, em futuros artigos estarei trazendo algumas avaliações feitas por mim mesmo. Aguarde!

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-xe4-conheca-as-novidades-para-ios-e-mais/feed/ 44
dbExpress Framework no Windows e Mac com C++Builder e FireMonkey http://www.andreanolanusse.com/pt/dbexpress-framework-no-windows-e-mac-com-cbuilder-e-firemonkey/ http://www.andreanolanusse.com/pt/dbexpress-framework-no-windows-e-mac-com-cbuilder-e-firemonkey/#comments Sat, 12 Jan 2013 05:34:57 +0000 http://www.andreanolanusse.com/pt/?p=4234 O objetivo deste artigo é demonstrar o uso do dbExpress Framework para executar SQLs em um bancos de dados InterBase ou Firebird, através uma aplicação FireMonkey Console em C++ que poderá ser executa em Windows e Mac, desta forma teremos um único código para as duas plataformas. A aplicação FireMonkey Console usada como exemplo foi […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

O objetivo deste artigo é demonstrar o uso do dbExpress Framework para executar SQLs em um bancos de dados InterBase ou Firebird, através uma aplicação FireMonkey Console em C++ que poderá ser executa em Windows e Mac, desta forma teremos um único código para as duas plataformas.

A aplicação FireMonkey Console usada como exemplo foi criada através do Wizard do IDE e irá efetuar as seguintes operações:

  • Conectar ao banco de dados, que aqui usado foi InterBase e Firebird, mas você pode usar qualquer banco suportado pelo dbExpress Framework; alguns drivers do dbExpress não são suportados em Mac, como é o caso do SQL Server e ODBC driver;
  • Executar um SELECT na tabela COUNTRY e mostrar os resultados percorrendo os cursor retornado.

O código abaixo é simples e de fácil leitura e traz uma série de comentários para facilitar o entendimento.

#include <fmx.h>

#pragma hdrstop
#pragma argsused

#include <tchar.h>
#include <stdio.h>
#include <System.SysUtils.hpp>
#include <Data.DBXDynalink.hpp>
#include <Data.DBXCommon.hpp>
#include <Data.DBXInterbase.hpp>
#include <memory>

int _tmain(int argc, _TCHAR* argv[]) {

	// Get database connection instance
	std::auto_ptr<TDBXConnection>conn
		(TDBXConnectionFactory::GetConnectionFactory()->GetConnection
		("EMPLOYEE", "sysdba", "masterkey"));

	if (conn.get() != NULL) {

		printf("================= Connection Properties ============\n");

		AnsiString s = conn->ConnectionProperties->Properties->Text + "\n";
		printf(s.c_str());

		// create command and transaction objects to execute the query
		std::auto_ptr<TDBXCommand>command(conn->CreateCommand());

                // initiate a transaction
		TDBXTransaction *transaction =
			conn->BeginTransaction(TDBXIsolations::ReadCommitted);

		command->Text = "SELECT * FROM Country";
		command->Prepare();

		// execute the query and get the cursor (DBXReader)
		std::auto_ptr<TDBXReader>reader(command->ExecuteQuery());

		// print number of columns and each record
		printf(AnsiString("Number of Columns:" + IntToStr(reader->ColumnCount) +
			"\n").c_str());

		// display the list of records
		while (reader->Next()) {
			printf((reader->Value[reader->GetOrdinal("COUNTRY")]->GetAnsiString
				() + "\n").c_str());
		}

		printf("====================================================\n");

		conn->CommitFreeAndNil(transaction);
	}

	Sleep(5000);
	return 0;
}

Certifique-se que o alias dbExpress EMPLOYEE foi criado e configurado corretamente para conectar ao banco de dados EMPLOYEE.GDB, além claro do cliente do InterBase ou FireBird que dever estar instalado. Com estes passos efetuados compile e execute sua aplicação no Windows ou Mac.

Ao executar no Mac, certifique-se de que o arquivos dbxconnection.ini está no mesmo diretório da aplicação, caso contrário você poderá ter problemas, pois a aplicação não irá encontrar os parâmetros para conectar ao banco.

O resultado abaixo representa a aplicação sendo executada no Mac.

Aplicação FireMonkey em C++ em execução no Mac

 

Você pode baixar o código fonte direto do repositório de demos do RAD Studio utilizando a linha de comando abaixo:

svn co https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/RadStudio_XE2/CPP/Database/dbExpress/DBXFramework/

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/dbexpress-framework-no-windows-e-mac-com-cbuilder-e-firemonkey/feed/ 1
Delphi XE3 e suas novidades – Parte 1 http://www.andreanolanusse.com/pt/delphi-xe3-e-suas-novidades-parte-1/ http://www.andreanolanusse.com/pt/delphi-xe3-e-suas-novidades-parte-1/#comments Tue, 11 Sep 2012 04:20:28 +0000 http://www.andreanolanusse.com/pt/?p=1586 Como prometido aqui está a parte 1 do meu review sobre o Delphi XE3 que foi anunciado recentemente e é parte da suíte RAD Studio XE3 e traz também as versões XE3 do C++Builder e Prism, além do HTML5 Builder o novo nome para o RadPHP e com algumas novidades. Aproveitando a oportunidade de uma olhada […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Como prometido aqui está a parte 1 do meu review sobre o Delphi XE3 que foi anunciado recentemente e é parte da suíte RAD Studio XE3 e traz também as versões XE3 do C++Builder e Prism, além do HTML5 Builder o novo nome para o RadPHP e com algumas novidades.

Aproveitando a oportunidade de uma olhada nos artigos sobre desenvolvimento ágil de software que estou publicando semanalmente, já são 3 artigos e estão disponíveis neste link http://www.andreanolanusse.com/pt/tag/agile

Voltando ao tema principal, até aqui esta versão foi cercada de várias polêmicas, algumas delas você acompanhou aqui no blog e pelas centenas de blogs na internet, entre elas:

  • A mudança no contrato de licença foi abortada, ou seja, os novos usuários de Delphi Professional continuarão podendo utilizar a ferramenta para desenvolver suas aplicações Client/Server com os componentes dbGo (ADO) ou drivers dbExpress de terceiros.
  • O suporte ao desenvolvimento iOS (iPad, iPhone) que vinha no XE2 foi retirado do Delphi XE3, para desenvolver algo para iOS você terá que usar o XE2.
  • Na semana passada veio a tona a saída do Barry Kelly, o principal engenheiro do compilador do Delphi anunciou no seu blog sua saída da Embarcadero, tive a oportunidade de trabalhar com ele, sem dúvida um grande profissional e um dos mais brilhantes do mundo.

Voltando ao tema da falta de suporte a desenvolvimento mobile no XE3, a Embarcadero pretende lançar no primeiro trimestre de 2013 um addon para o XE3 que está sendo chamado de “Mobile Studio”, basicamente será um “novo produto” que irá rodar dentro do IDE do Delphi. A promessa é que o “Mobile Studio” traga o novo compilador ARM que já vem sem trabalhado a algum um tempo, não só para iOS mas para Android também, além dos drivers dbExpress, ClientDataSet e acesso a bancos de dados SQLite e InterBase ToGo, além claro de componentes específicos para mobile, aqueles que assistiram ano passado o webinar que apresentei sobre desenvolvimento mobile com XE2 sabem do que estou falando, se você não participou pode assistir aqui.

 

Detalhes comerciais sobre o “Mobile Studio” não foram e nem serão divulgados tão cedo, mas como será um novo produto eu acredito que você terá que adquirir separadamente. É esperar o primeiro trimestre de 2013 para conferir o que virá e como virá. A ideia deste artigo é falar sobre as novidades e deixar para outra oportunidade o tema relacionado a desenvolvimento de aplicações Mobile . Vamos em frente e abaixo um pequeno resumo das principais melhorias do Delphi XE3, visto que novos recursos nesta versão foram muito poucos.

FireMonKey 2

O Delphi XE2 recebeu 5 updates e todos eles praticamente focados em atualizações para o FireMonkey, assim sendo as melhorias nesta nova versão focaram em trazer recursos que não estavam presentes na primeira versão do FireMonkey, como Actions, Anchors, Touch e Gesture. Recursos estes existentes na VCL e que faziam muita falta para quem começava a usar FireMonkey, agora eles estão presentes no Delphi XE3. O Editor de Styles traz algumas novas funcionalidades, incluindo o suporte a edição de BitMap no próprio designer. O mais importante em relação a Style nesta versão é que você pode agora aplicar estilos a non-client area, em outras palavras aplicar estilo as bordas do formulário em Windows e Mac.

[quote style=”boxed”]Aproveite e me siga no Twitter  [/quote]

FM2 agora traz componentes e classes para trabalhar com aúdio e vídeo no Windows e Mac, basicamente FM2 abstrai as API’s do sistema operacional e os traz como componentes e classes para Delphi. Além disso existem dois novos componentes não visuais, o Location Sensor (Windows e Mac) e Motion Sensor (somente Windows).

Windows 8 e UI Metropolis

Esta novidade deu o que falar nos blogs e forums de Delphi pela internet, principal razão é que o suporte a UI Metropolis, anteriormente chamado pela Microsoft “Metro” permite que aplicações VCL e FireMonkey tenham a aparência “Metro”, basicamente com o botão direito do mouse no form você transformar o visual do seu Form em interface Metropolis.

A discussão toda na internet foi porque todos esperavam poder desenvolver este tipo de aplicação em Delphi e distribuir através da nova loja online da Microsoft que virá com Windows 8, infelizmente isso não será possível neste momento, pois o suporte a WinRT não está disponível para parceiros Microsoft ainda, somente o Visual Studio neste momento traz este suporte. É esperar que a Microsoft libere para seus parceiros e assim a Embarcadero possa implementar.

Mesmo assim existe alguns valores neste recurso, por exemplo poder simular UI Metropolis em aplicações que rodam em Windows XP, 2000, Vista e 7 de forma nativa, talvez isso seja muito específico ou não, vai depender de você avaliar a sua necessidade e verificar se o seu negócio pode tirar proveito ou não deste recurso.

Driver dbExpress para SQLite e InterBase ToGo

Agora temos um novo driver dbExpress para SQLite, como SQLite é o banco de dados padrão em iOS e Android, certamente este driver será utilizado para o Mobile Studio.

E foi adicionado um driver específico para InterBase ToGo que é a versão do InterBase de fácil deploy, basicamente uma DLL e você tem server e client juntos.

DataSnap

Apenas correções no DataSnap XE3, nenhum recurso novo foi adicionado até então

No próximo artigo vou comentar sobre as melhorias na VCL, IDE, RTL, linguagem e claro minha conclusão sobre esta nova versão.

Enquanto isso você pode ler a série de artigos sobre desenvolvimento ágil de software que estou publicando semanalmente aqui no blog, já são 3 artigos.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-xe3-e-suas-novidades-parte-1/feed/ 50
Bye Bye Embarcadero!!! http://www.andreanolanusse.com/pt/bye-bye-embarcadero/ http://www.andreanolanusse.com/pt/bye-bye-embarcadero/#comments Tue, 01 May 2012 22:02:12 +0000 http://www.andreanolanusse.com/pt/?p=1543 Amigos desenvolvedores, Minha história de Borland começou no Brasil em dezembro de 1995, teve muitos capítulos (Borland/Inprise/CodeGear/Embarcadero), um novo e importante capítulo iniciou em dezembro de 2006 com minha vinda para os Estados Unidos e hoje este capítulo chega ao fim. Hoje é meu último dia na Embarcadero Technologies. Eu gostaria de agradecer a todos […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Amigos desenvolvedores,

Minha história de Borland começou no Brasil em dezembro de 1995, teve muitos capítulos (Borland/Inprise/CodeGear/Embarcadero), um novo e importante capítulo iniciou em dezembro de 2006 com minha vinda para os Estados Unidos e hoje este capítulo chega ao fim. Hoje é meu último dia na Embarcadero Technologies.

Eu gostaria de agradecer a todos ao redor do mundo pelos grandes momentos que compartilhamos durante todos estes anos, por todas as conversas online, via email, telefone e frente a frente. Ter trabalhado como seu porta-voz durante todos estes anos foi algo único e que eu fiz com prazer, algo que irei levar sempre comigo.

Os 17 anos de Delphi só se tornou possível por causa do suporte desta grande e energética comunidade, continue enviando seus feedbacks para a Embarcadero (newsgroup em inglês é um ótimo canal pra isso), especialmente agora com o FireMonkey que tem um longo caminho.

Meu blog continua e desenvolvimento de software continuará sendo o tópico principal. Meus vídeos no YouTube irão continuar lá e espero publicar outros vídeos no futuro, para finalizar você pode continuar ou começar a me seguir no Twitter @andreanolanusse

Estarei por perto e você pode me contactar através deste link ou através do e-mail andreano AT gmail DOT com

Agora é hora de começar a escrever o próximo capítulo e buscar novas oportunidades que sejam desafiadoras e divertidas.

Sinceramente,

Andreano Lanusse

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/bye-bye-embarcadero/feed/ 62
Vídeo: Desenvolvendo para iOS com FireMonkey e Delphi XE2 http://www.andreanolanusse.com/pt/video-desenvolvendo-para-ios-com-firemonkey-e-delphi-xe2/ http://www.andreanolanusse.com/pt/video-desenvolvendo-para-ios-com-firemonkey-e-delphi-xe2/#comments Wed, 18 Apr 2012 07:29:12 +0000 http://www.andreanolanusse.com/pt/?p=1535 No vídeo abaixo demonstro como você pode desenvolver aplicações para iOS (iPhone, iPad) com Delphi XE2 e FireMonkey, além dos vários aspectos e recursos disponíveis na plataforma.   Divirta-se!!!

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

No vídeo abaixo demonstro como você pode desenvolver aplicações para iOS (iPhone, iPad) com Delphi XE2 e FireMonkey, além dos vários aspectos e recursos disponíveis na plataforma.

 

Divirta-se!!!

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/video-desenvolvendo-para-ios-com-firemonkey-e-delphi-xe2/feed/ 13
Vídeo: Desenvolvimento para iOS com FireMonkey http://www.andreanolanusse.com/pt/video-desenvolvimento-para-ios-com-firemonkey/ http://www.andreanolanusse.com/pt/video-desenvolvimento-para-ios-com-firemonkey/#comments Sun, 15 Apr 2012 10:36:38 +0000 http://www.andreanolanusse.com/pt/?p=1531 Caso você tenha dúvidas sobre o desenvolvimento para iOS com Delphi e FireMonkey, recomendo assistir o vídeo abaixo onde em 62 minutos explico e demonstro diversos tipos de aplicações que podem ser feitas com esta tecnologia.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Caso você tenha dúvidas sobre o desenvolvimento para iOS com Delphi e FireMonkey, recomendo assistir o vídeo abaixo onde em 62 minutos explico e demonstro diversos tipos de aplicações que podem ser feitas com esta tecnologia.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/video-desenvolvimento-para-ios-com-firemonkey/feed/ 1
TDBXJsonTools copiar/converter dados entre TDataSet – TJSONObject – DBXReader http://www.andreanolanusse.com/pt/tdbxjsontools-copiarconverter-dados-entre-tdataset-tjsonobject-dbxreader/ http://www.andreanolanusse.com/pt/tdbxjsontools-copiarconverter-dados-entre-tdataset-tjsonobject-dbxreader/#comments Mon, 19 Mar 2012 09:35:10 +0000 http://www.andreanolanusse.com/pt/?p=1478 Você pode copiar os dados de um DBXReader para um ClientDataSet e vice-versa utilizando o dbxExpress framework, provavelmente você já leu alguns dos meus  artigos aqui no blog onde explico como isso funciona em aplicações desktop, entretanto em plataformas móveis não temos o ClientDataSet e quando buscamos algo similar vem a pergunta, o que fazer? DataSnap […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Você pode copiar os dados de um DBXReader para um ClientDataSet e vice-versa utilizando o dbxExpress framework, provavelmente você já leu alguns dos meus  artigos aqui no blog onde explico como isso funciona em aplicações desktop, entretanto em plataformas móveis não temos o ClientDataSet e quando buscamos algo similar vem a pergunta, o que fazer?

DataSnap Mobile Connectors tem um classe chamada TDBXJsonTools que permite a copia e conversão de dados entre DBXReader, TJSONObject, DBXReader e outros tipos de dados, pode ser utilizada em qualquer plataforma suportada pelos conectores, como: Java/Android, Java/BlackBerry, Objective-C, C#/Windows Phone e FreePascal.

Em aplicações desktop nativa utilizamos o TDBXDataSetReader.CopyReaderToClientDataSet(Reader, ClientDataSet) para copiar os dados do DBXReader para um ClientDataSet, no caso de aplicações móveis usamos TDBXJsonTools.CreateTDataSetFromJSON(DBXReader.asJSONObject).

Entretanto não estamos limitados a copia/conversão de dados, TDBXJsonTools traz maior flexibilidade na interação e transporte dos dados usando diferentes tipos de dados, além de usar o melhor dos tipos nativos em cada plataforma. Por exemplo, quando utilizamos DataSet em aplicações FireMonkey para iOS utilizamos a classe TDataSet que é parte da RTL do Delphi e FreePascal, já no caso de aplicações Java, TDataSet será uma extensão do TDBXReader e assim por diante.

DBXReader é unidirecional e com isso a navegação fica limitada, no entanto ao desenvolver aplicações FireMonkey para iOS você poderá copiar os dados do DBXReader para um DataSet que é bidirecional, isso irá permitir a navegação no DataSet e utilizar outros métodos do DataSet.

Abaixo a interface da classe TDBXJsonTools para FreePascal.

  TDBXJsonTools = class
  public
    class procedure jsonToDBX(obj: TJSONValue; var value: TDBXValue; dbxTypeName: String);
    class procedure JSONToValueType(json: TJSONArray; var vt: TDBXValueType);
    class function DBXParametersToJSONObject(dbxParameters: TDSParams) : TJSONObject;
    class function DBXReaderToJSONObject(dbxReader: TDBXReader): TJSONObject;
    class function CreateTDataSetFromJSON(value: TJSONObject): TDataset;
    class function TDataSetToJSONObject(value: TDataset): TJSONObject;
    class function GetTFieldTypeByTDBXDataTypes(DBXDataTypes: TDBXDataTypes) : TFieldType;
    class function GetTDBXDataTypesByTFieldType(FieldType: TFieldType) : TDBXDataTypes;
    class function CreateTStreamFromJSONArray(value: TJSONArray): TStream;
    class function StreamToJSONArray(value: TStream): TJSONArray;
    class function JSONToTableType(value: TJSONValue; dbxTypeName: String): TObject;
    class function SerializeTableType(Objetc: TObject): TJSONObject;

  end;

Eu continuo recomendando o uso do DBXReader como sua fonte principal de dados e quando necessário utilize os métodos da classe TDBXJsonTools.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/tdbxjsontools-copiarconverter-dados-entre-tdataset-tjsonobject-dbxreader/feed/ 1
Disponibilizado o código fonte em Delphi do FireMonkey 3D Text Editor http://www.andreanolanusse.com/pt/disponibilizado-o-codigo-fonte-em-delphi-do-firemonkey-3d-text-editor/ http://www.andreanolanusse.com/pt/disponibilizado-o-codigo-fonte-em-delphi-do-firemonkey-3d-text-editor/#comments Mon, 05 Mar 2012 22:23:12 +0000 http://www.andreanolanusse.com/pt/?p=1477 O código fonte completo do FireMonkey 3D Text Editor está disponível para download no repositório de exemplos do RAD Studio no SourceForge. Utilizando a linha de comando abaixo você pode baixar o fonte completo. svn co https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/ branches/RadStudio_XE2/FireMonkey/3DTextEditor/ Este exemplo é uma boa fonte para aprender novos recursos do FireMonkey.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

O código fonte completo do FireMonkey 3D Text Editor está disponível para download no repositório de exemplos do RAD Studio no SourceForge.

Utilizando a linha de comando abaixo você pode baixar o fonte completo.

svn co https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/
branches/RadStudio_XE2/FireMonkey/3DTextEditor/

Este exemplo é uma boa fonte para aprender novos recursos do FireMonkey.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/disponibilizado-o-codigo-fonte-em-delphi-do-firemonkey-3d-text-editor/feed/ 2
Disponibilizado o Update 4 para Delphi XE2 e C++Builder XE2 http://www.andreanolanusse.com/pt/disponibilizado-o-update-4-para-delphi-xe2-e-cbuilder-xe2/ http://www.andreanolanusse.com/pt/disponibilizado-o-update-4-para-delphi-xe2-e-cbuilder-xe2/#comments Tue, 28 Feb 2012 21:44:12 +0000 http://www.andreanolanusse.com/pt/?p=1472 Delphi e C++Builder XE2 Update 4 requer reinstalação de todo o produto, será necessário desinstalar o seu RAD Studio XE2 atualmente instalado em sua máquina antes de instalar este update. Você pode obter este update de 3 formas: Atualizando via o mecanismo de Automatic Upgrade Manualmente através da opção Checking for Updates Fazendo o download a […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Delphi e C++Builder XE2 Update 4 requer reinstalação de todo o produto, será necessário desinstalar o seu RAD Studio XE2 atualmente instalado em sua máquina antes de instalar este update.

Você pode obter este update de 3 formas:

A lista completa de alterações, correções e novos recursos neste update está disponível aqui.

Dois novos recursos que destaco neste update é o suporte a impressora em Mac através do FireMonkey Printing API e o suporte a geração de proxy para FreePascal através do DataSnap Mobile Connector.

Você poder fazer o download do ISO para Delphi XE2 e C++Builder XE2 que inclui o Update 4 aqui.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/disponibilizado-o-update-4-para-delphi-xe2-e-cbuilder-xe2/feed/ 5
Desenvolvendo o FireMonkey 3D Text Editor para Windows e Mac http://www.andreanolanusse.com/pt/desenvolvendo-o-firemonkey-3d-text-editor-para-windows-e-mac/ http://www.andreanolanusse.com/pt/desenvolvendo-o-firemonkey-3d-text-editor-para-windows-e-mac/#respond Fri, 24 Feb 2012 00:34:17 +0000 http://www.andreanolanusse.com/pt/?p=1468 Durante o Webinar de comemoração do aniversário do Delphi apresentei uma aplicação FireMonkey 3D que venho desenvolvendo para demonstração já algum tempo. A aplicação é um editor de objetos 3D (3D Text Editor) que permite ao usuário interagir com objetos 3D através de rotação, mudança de cores, textura, tamanho dos objetos, exportar o texto 3D […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Durante o Webinar de comemoração do aniversário do Delphi apresentei uma aplicação FireMonkey 3D que venho desenvolvendo para demonstração já algum tempo.

A aplicação é um editor de objetos 3D (3D Text Editor) que permite ao usuário interagir com objetos 3D através de rotação, mudança de cores, textura, tamanho dos objetos, exportar o texto 3D como imagem PNG e muito mais.

Essa aplicação é um excelente começo para quem está interessado em aprender sobre FireMonkey e expõe muitos recursos interessantes, não somente mostra como usar 3D, animações, luz, camera, elementos 2D in containers 3D, etc., mas também como criar interfaces de usuário modernas, como tirar proveito do conceito de componente composto, como usar Scalable Vector Graphics (SVG) e mais.

Em breve estarei publicando uma série de artigos e vídeos em português que irão explicar em detalhes os recursos do FireMonkey utilizados neste aplicação, até lá lhe convido a assistir o vídeo (inglês) abaixo onde eu mostro a aplicação em ação.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/desenvolvendo-o-firemonkey-3d-text-editor-para-windows-e-mac/feed/ 0
Usando expressões regulares em aplicações FireMonkey com C++Builder http://www.andreanolanusse.com/pt/usando-expressoes-regulares-em-aplicacoes-firemonkey-com-cbuilder/ http://www.andreanolanusse.com/pt/usando-expressoes-regulares-em-aplicacoes-firemonkey-com-cbuilder/#comments Wed, 25 Jan 2012 11:00:24 +0000 http://www.andreanolanusse.com/pt/?p=1440 Vamos a outro exemplo em C++ onde demonstro como usar expressões regulares a partir da RTL em aplicações FireMonkey e C++Builder. Este exemplo demonstra como validar um conteúdo a partir de uma string em quatro diferentes expressões regulares, que são: Validar se a string enviada contém um endereço de e-mail Validar se a string enviada […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Vamos a outro exemplo em C++ onde demonstro como usar expressões regulares a partir da RTL em aplicações FireMonkey e C++Builder.

Este exemplo demonstra como validar um conteúdo a partir de uma string em quatro diferentes expressões regulares, que são:

  • Validar se a string enviada contém um endereço de e-mail
  • Validar se a string enviada contém um endereço de IP válido
  • Validar se a string enviada está no formato dd-mm-yyyy
  • Validar se a string enviada está no formato mm-dd-yyyy

O código a seguir mostra as quatro expressões regulares usadas por essa aplicação.

void __fastcall TForm1::lbRegExpChange(TObject *Sender) {
	switch (lbRegExp->ItemIndex) {
	case 0:
		lbType->Text = "E-mail for validation";

		MemoRegEx->Text =
			"^((?>[a-zA-Z\d!#$%&''*+\\-/=?^_`{|}~]+\\x20*" "|\"((?=[\\x01-\\x7f])[^\"\\\\]|\\\\[\\x01-\\x7f])*\"\\"
			"x20*)*(?\.?[a-zA-Z\d!" "#$%&''*+\\-/=?^_`{|}~]+)+|\"\"((?=[\\x01-\\x7f])"
			"[^\"\\\\]|\\\\[\\x01-\\x7f])*\")@(((?!-)[a-zA-Z\\d\\" "-]+(?)$";

		break;
	case 1: {
			// Accept IP address between 0..255
			lbType->Text = "IP address for validation (0..255)";
			MemoRegEx->Text =
				"\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\" ".(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\."
				"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b";
			break;

		}
	case 2: {
			// Data interval format mm-dd-yyyy
			lbType->Text =
				"Date in mm-dd-yyyy format from between 01-01-1900 and 12-31-2099";
			MemoRegEx->Text =
				"^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[" "01])[- /.](19|20)\\d\\d$";
			break;

		}
	case 3: {
			// Data interval format mm-dd-yyyy
			lbType->Text =
				"Date in dd-mm-yyyy format from between 01-01-1900 and 31-12-2099";
			MemoRegEx->Text =
				"^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[01" "2])[- /.](19|20)\\d\\d$";
			break;

		}
	}
	EditTextChangeTracking(EditText);

}

Para executar a validação, utilizamos o método TRegExp::IsMatch como demonstrado a seguir:
To execute the validation you can use the method TRegExp::IsMatch as you can see bellow:

void __fastcall TForm1::EditTextChangeTracking(TObject *Sender) {
       // EditText contain the string value and MemoRegEx the regular expression
	if (TRegEx::IsMatch(EditText->Text, MemoRegEx->Text)) {
		SEResult->ShadowColor = TAlphaColors::Green;
	}
	else
		SEResult->ShadowColor = TAlphaColors::Red;

}

Uma vez que este é um aplicativo FireMonkey, utilizei o efeito de sombra para demonstrar ao usuário se o valor informado no Edit é válido ou não (Verde = válido / Vermelho = inválido). A seguinte imagem demonstra o que irá acontecer caso o usuário informe um endereço de e-mail inválido no Windows e Mac.

Abaixo o resultado quando o usuário informar o endereço de e-mail válido.

Você pode baixar o código fonte  aqui ou atualizar a pasta de exemplos local do seu RAD Studio XE2 a partir do repositório do RAD Studio XE2 no SVN.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/usando-expressoes-regulares-em-aplicacoes-firemonkey-com-cbuilder/feed/ 3
Apresentações do Delphi Conference 2011 disponíveis para download http://www.andreanolanusse.com/pt/apresentacoes-do-delphi-conference-2011-disponivel-para-download/ http://www.andreanolanusse.com/pt/apresentacoes-do-delphi-conference-2011-disponivel-para-download/#comments Wed, 14 Dec 2011 22:00:18 +0000 http://www.andreanolanusse.com/pt/?p=1417 Já está disponível os slides utilizados pelos palestrantes do Delphi Conference 2011, sem dúvida a melhor Delphi Conference já realizada, mais uma vez agradeço a todos que prestigiaram o evento, palestrantes e nossa equipe. Os slides disponibilizados trazem informações valiosas, ao final de cada slide você irá encontrar o link para baixar o código fonte dos […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Já está disponível os slides utilizados pelos palestrantes do Delphi Conference 2011, sem dúvida a melhor Delphi Conference já realizada, mais uma vez agradeço a todos que prestigiaram o evento, palestrantes e nossa equipe.

Os slides disponibilizados trazem informações valiosas, ao final de cada slide você irá encontrar o link para baixar o código fonte dos exemplos utilizados na respectiva apresentação.

Para efetuar o download das apresentações você precisa criar gratuitamente ou utilizar sua conta do EDN (Embarcadero Developer Network), ao efetuar seu login você terá acesso a todo o conteúdo.

  • [button link=”http://cc.embarcadero.com/download.aspx?id=28668″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Delphi XE2 e FireMonkey
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28661″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Desenvolvendo para Mac e iOS com Delphi XE2 e FireMonkey
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28667″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Criando componentes para FireMonkey
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28666″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Introdução ao LiveBinding (em inglês)
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28653″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Otimizando interfaces VCL e FireMonkey com Styles
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28665″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Maximizando produtividade com Delphi XE2 Ultimate e DB PowerStudio
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28664″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Maximizando a usabilidade de Dicionários de Dados
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28663″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Desenvolvimento 64-bits com Delphi XE2
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28662″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – DataSnap Connectors
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28656″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Estendendo DataSnap REST Interfaces com jQuery e RELAX
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28660″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Técnicas para identificar problemas de memória em servidores DataSnap
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28659″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – TMS Aurelius – Framework Multi-Plataforma para Mapeamento Objeto-Relacional
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28658″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Da RTTI ao LiveBinding – Manipulando objetos com criatividade
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28657″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Boas práticas no desenvolvimento de apps multithreads
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28655″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Desenvolvendo para Windows Phone 7 com Prism XE2
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28654″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Desmistificando Expressões Regulares
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28652″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Usando Fortes Report em aplicações corporativas
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28651″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Integração Delphi e Kinect
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28669″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Técnicas para Implementação do PAF em Delphi XE2
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28650″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Mini-curso Integração continua na prática
  • [button link=”http://cc.embarcadero.com/download.aspx?id=28649″ size=”small” style=”download” color=”#123456″ text=”light” window=”yes”][/button] – Mini-curso Utilizando ACBr para automação comercial

Além disso, disponibilizamos a gravação de algumas palestras da Delphi Conference 2011 e você pode assistir aqui.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/apresentacoes-do-delphi-conference-2011-disponivel-para-download/feed/ 13
Conectando ao PostgreSQL com dbExpress ODBC driver http://www.andreanolanusse.com/pt/conectando-ao-postgresql-com-dbexpress-odbc-driver/ http://www.andreanolanusse.com/pt/conectando-ao-postgresql-com-dbexpress-odbc-driver/#comments Wed, 02 Nov 2011 07:41:23 +0000 http://www.andreanolanusse.com/pt/?p=1403 O Delphi XE2 e C++Builder XE2 finalmente trouxeram o driver ODBC para dbExpress, com este driver você pode conectar a qualquer banco de dados que disponibilize um driver ODBC usando o dbExpress em aplicações FireMonkey e VCL. Até o Delphi XE3 o driver ODBC somente é compatível com a plataforma Windows. Para exemplificar melhor como […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

O Delphi XE2 e C++Builder XE2 finalmente trouxeram o driver ODBC para dbExpress, com este driver você pode conectar a qualquer banco de dados que disponibilize um driver ODBC usando o dbExpress em aplicações FireMonkey e VCL. Até o Delphi XE3 o driver ODBC somente é compatível com a plataforma Windows.

Para exemplificar melhor como funciona criei uma aplicação FireMonkey que mostra como podemos utilizar o dbExpress ODBC driver para conectar ao banco de dados PostgreSQL.

Antes de iniciar o desenvolvimento você precisa configurar o seu ambiente conforme os passos abaixo:

  • Instalar o driver ODBC do PostgreSQL na máquina que irá executar a aplicação, o driver pode ser baixado aqui.
    Vale lembrar que aplicações compiladas como 32-bit requerem a versão 32-bit do driver ODBC da base de dados a ser utilizada, para aplicações 64-bit será necessário o driver ODBC 64-bit.
  • Depois de instalar o driver, através do ODBC Data Source Administrator (odbcad32.exe) crie e configure um alias ODBC, pode ser do tipo User DSN ou System DSN:

Instruções para aqueles que usam Windows 64-bit

  • Para aplicações 32-bit use o c:\Windows\SysWOW64\odbcad32.exe
  • Para aplicações 64-bit use o c:\Windows\system32\odbcad32.exe

Instruções para aqueles que usam Windows 32-bit

  • Use o c:\Windows\system32\odbcad32.exe

A seguir crie um alias dbExpress ODBC no Data Explorer, lembrando que Database Name é o nome do Data Source criado no ODBC Administrator, neste exemplo o chamei de PostgreSQL35W. Configurações adicionais do driver para acessar a base de dados, como usuário e senha já foram configuradas no Data Source, você pode sobrescrever o usuário e senha na conexão dbExpress.

Suponho que você já sabe como utilizar os componentes de acesso a dados do dbExpress (SQLConnection, DataSetProvider e ClientDataSet), basta conectá-los da mesma forma que você sempre fez com aplicações que utilizam os componentes dbExpress. A configuração do SQLConnection será configurada conforme abaixo:

  object SQLConnection1: TSQLConnection
    ConnectionName = 'PostgreSQLOdbc'
    DriverName = 'ODBC'
    LoginPrompt = False
    Params.Strings = (
      'drivername=ODBC'
      'Database=PostgreSQL35W')
  end

Além de poder utilizar os componentes dbExpress em aplicações VCL e FireMonkey, você pode utilizar o dbExpress framework para conectar a bancos de dados que não tenham um driver nativo. A figura abaixo mostra a aplicação FireMonkey conectada a PostgreSQL através do dbExpress ODBC driver.

Este exemplo pode ser encontrado no diretório de exemplos do Delphi ou no repositório de demos do RAD Studio no Source Forge através deste  link.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/conectando-ao-postgresql-com-dbexpress-odbc-driver/feed/ 23
Vídeo: Delphi XE2 e FireMonkey app no Windows, Mac e iOS http://www.andreanolanusse.com/pt/video-delphi-xe2-e-firemonkey-app-no-windows-mac-e-ios/ http://www.andreanolanusse.com/pt/video-delphi-xe2-e-firemonkey-app-no-windows-mac-e-ios/#comments Sun, 07 Aug 2011 19:59:06 +0000 http://www.andreanolanusse.com/pt/?p=1337 Após a primeira parada do RAD Studio XE2 World Tour na Nova Zelândia, vemos por toda a internet excelentes comentários sobre o desenvolvimento de aplicações iOS com Delphi XE2 e FireMonkey, além do suporte a Windows 64-bit e Mac. Existem inúmeras possibilidades com FireMonkey e todos os novos recursos do RAD Studio XE2, todas estas […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Após a primeira parada do RAD Studio XE2 World Tour na Nova Zelândia, vemos por toda a internet excelentes comentários sobre o desenvolvimento de aplicações iOS com Delphi XE2 e FireMonkey, além do suporte a Windows 64-bit e Mac.

Existem inúmeras possibilidades com FireMonkey e todos os novos recursos do RAD Studio XE2, todas estas novidades estão sendo apresentadas no RAD Studio XE2 World Tour, no Brasil será realizado o Delphi Tour 2011 como parte do World Tour, garanta já o seu lugar no Delphi Tour 2011, fazendo sua inscrição o quanto antes.

Para que você tenha uma idéia das novidades do RAD Studio XE2 e mate um pouquinho da curiosidade, preparei um vídeo de 5 minutos (em inglês) com um preview do Delphi XE2 e aplicações HD no FireMonkey rodando em Windows (64-bit), Mac e iOS, além de usar componentes 3D e animações.

[button link=”http://www.embarcadero.com/world-tour” size=”large” style=”note” color=”red” border=”white” text=”light” window=”yes”]Registre-se hoje mesmo para o Delphi Tour 2011[/button]

 

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/video-delphi-xe2-e-firemonkey-app-no-windows-mac-e-ios/feed/ 12