| Últimas 20 atualizações de Wilson José Lehapan Junior |
|
|
RAD Studio XE2 está chegando e junto vem as novas versões XE2 do
Delphi, C++Builder, RadPHP e Prism, para que você conheça todas as
novidades, esta semana começa o RAD Studio XE2 World Tour, você já pode
conferir a lista de países participantes e já fazer o seu registro.
Esta versão representa um marco para os desenvolvedores Delphi e
C++Builder, muitas são as novidades e iremos apresentar todas estas
grandes novidades durante o RAD Studio XE Tour, enquanto isso vou
destacando algumas das novidades:
- Delphi 64-bit para Windows e suporte completo para a VCL/RTL
- Driver ODBC para dbExpress ODBC
- Monitoramento e controle de conexões para servidores DataSnap
- LiveBinding, o novo mecanismo para conectar e atualizar qualquer tipo de dado
- Cloud API com suporte a Amazon S3
- VCL Styles para modernizar o visual das suas aplicações VCL
- FireMonkey a nova plataforma para desenvolvimento de software NATIVO
FireMonkey é um grande passo adiante, abre um mercado totalmente
novo para desenvolvedores Delphi e C++Builder, permitindo oferecer seus
atuais aplicativos para Mac, desenvolver novas aplicações e
distribuí-los através da App Store, alcançado assim milhões de usuários
finais. Os inúmeros recursos do FireMonkey irá distinguir as suas
aplicações de qualquer outro.
Muito mais está por vir, fique atento a este blog, outros blogs Embarcadero e ao nosso website Embarcadero durante este mês para saber mais.
Registre-se no link http://www.embarcadero.com/world-tour
Baseado em: http://www.andreanolanusse.com/pt/rad-studio-xe2-uma-nova-era-para-desenvolvedores-delphi-e-cbuilder/
-->">
|
|
|
|

Hoje é um dia muito importante para a comunidade Delphi, hoje nós da
Embarcadero anunciamos o novo Programa de Certificação Delphi tão
esperado pela comunidade Delphi. Milhões de desenvolvedores Delphi terão
a oportunidade de demonstrar suas habilidades e conhecimento aos
seus pares, a comunidade de desenvolvedores e potenciais empregadores.
O novo programa de certificação é muito mais acessível que a
certificação anterior, teve a colaboração de vários experts em Delphi ao
redor do mundo e difere da certificação anterior onde tinhamos apenas
um nível de certificação – o novo programa de certificação está dividido
em dois níveis, conhecidos como Developer e Master Developer.
Já estão disponíveis os Study Guides (guias de estudos) para ambas as
certificações; o study guide traz informações sobre os tópicos que
serão avaliados durante a prova, links para recursos online e uma lista
de livros recomendados para a preparação. Para cada prova você terá 60
minutos para responder 60 perguntas, ao final você saberá qual foi sua
pontuação e se passar, receberá o certificado em formato PDF no seu
email.
A prova para se tornar Delphi Developer pode ser adquirida através da
loja online da Embarcadero a um custo de US$49 e não é moderada, ou
seja, você pode fazer a prova de qualquer lugar. Já a prova para se
tornar Delphi Master Developer custa US$149 e deve ser adquirida através
de um de nossos parceiros. Você terá de agendar a sua prova em um dos Centros de Certificação, pois esta prova deverá ser assistida por um dos nossos parceiros.
Certificação Delphi Developer

A prova para se tornar Delphi Certified Developer testa
conhecimentos gerais na linguagem delphi, incluindo sintaxe da
linguagem, técnicas de programação e conceitos relacionados ao
desenvolvimento de aplicações para banco de dados.
Se você possui uma licença registrada do Delphi XE ou RAD Studio XE, você poderá fazer uma prova Developer gratuitamente, mais informações na página do Certification Center.
A prova está organizada em 12 seções:
- Delphi Fundamentals
- Data types, variables, and Constants
- Procedures and Functions
- Classes and Objects
- Object Interfaces
- Generics, Attributes and Anonymous Method
|
- Database Concepts
- Standards Routines and I/O
- Libraries and Packages
- Memory Management
- Exceptions and Assertions
- Database Concepts
|
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Bom, pude perceber que muitos colegas ao migrar os projetos feitos em Delphi 2007 para Delphi 2010, o Code Completion não funciona. Aqui vai a dica de como fazer ele aparecer novamente. Verifique após migrar seu projeto, se em seu Project Options -> Delphi Compiler -> Unit aliases se contém as seguintes definições:
"WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE"
Obs.: Caso não tenha, pode ser que em alguns lugares do código do seu programa o Code Completition não funcione.
Abraços...!!!
-->">
|
|
|
|
As vezes precisamos clonar as colunas de um DBGrid para outro DBGrid. Então segue abaixo como clonar as colunas e suas propriedades.
procedure CloneColumnsDBGrid(dbgrOrigem, dbgrDestino: TDBGrid); var x: integer; Coluna: TColumn; begin dbgrDestino.Columns.Clear; for x := 0 to dbgrOrigem.Columns.Count - 1 do begin Coluna := dbgrDestino.Columns.Add; with dbgrOrigem.Columns.Items[x] do begin Coluna.Alignment := Alignment; Coluna.ButtonStyle := ButtonStyle; Coluna.Color := Color; Coluna.DropDownRows := DropDownRows; Coluna.Expanded := Expanded; Coluna.FieldName := FieldName; Coluna.ImeMode := ImeMode; Coluna.ImeName := ImeName; Coluna.PickList := PickList;
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Nós utilizamos muito em pesquisas e relatórios a validação de data inicial e final e/ou data e hora inicial e final. Pois bem, para não ficar reescerevendo várias vezes a mesma coisa, pode ser utilizada duas rotinas para estas validações (segue abaixo as rotinas).
Adicione no Uses DateUtils.
Declaração das rotinas:
procedure ValidaPeriodo(DataIni, DataFim : TDateTime; CampoFoco: TWinControl); overload; procedure ValidaPeriodo(DataIni, DataFim, HoraIni, HoraFim : TDateTime; CampoFoco: TWinControl); overload;
Implementação das rotinas:
procedure ValidaPeriodo(DataIni, DataFim : TDateTime; CampoFoco: TWinControl); begin if DateOf(DataIni) > DateOf(DataFim) then begin if CampoFoco <> nil then CampoFoco.SetFocus {endif}; Raise Exception.Create( 'A data inicial não pode ser maior do que a data final.' + #1
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Para quem sempre quis saber como fazer o formulário tremer igual ao comando "Chamar atenção" do MSN, aqui está o procedimento.
uses Math;
procedure TremerForm(Form: HWND); var R: TRect; x: integer; Esq, Topo: integer; begin { Coordenadas do formulário } GetWindowRect( Form, R );
for x := 0 to 45 do begin { Gera as posições aleatórias } Esq := RandomRange( -7, 7 ); Topo := RandomRange( -7, 7 );
{ Atribui a nova posição do formulário } SetWindowPos( Form, 0, R.Left + Esq, R.Top + Topo, R.Right - R.Left, R.Bottom - R.Top, 0 );
{ Tempo para mostrar que está tremendo o formulário } Sleep(20); end;
{ Retorna a posição do formulário } SetWindowPos( Form, 0, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, 0 ); end;
Espero ter colaborado.
-->">
|
|
|
|
Comparar se imagens do tipo TBitmap são iguais. Mas utilizando o recurso TStream, para ter uma performance muito mais rápida do que a famosa rotina de percorrer uma Matriz de pixels.
function Ret_ImagensIguais(Bitmap1, Bitmap2: TBitmap): Boolean; var Img1, Img2: TStream; Cont: integer; Ch1, Ch2: char; begin Result := False; Img1 := TMemoryStream.Create; Img2 := TMemoryStream.Create;
try Bitmap1.SaveToStream( Img1 ); Bitmap2.SaveToStream( Img2 );
if Img1.Size <> Img2.Size then Exit {endif};
Cont := 0; Img1.Position := 0; Img2.Position := 0; while Cont < Img1.Size do begin Img1.Read( Ch1, 1 ); Img2.Read( Ch2, 1 ); if Ch1 <> Ch2 then Exit {endif}; Inc( Cont ); end; finally Img1.Free; Img2.Free; end;
Result := True; end;
Espero ter colaborado.
-->">
|
|
|
|
Muitas pessoas querem poder ter a funcionalidade de clicar no título de um DBGrid e poder ordenar por aquela coluna, assim como faz o Windows Explorer. Então, pensando em compartilhar conhecimento, segue abaixo uma rotina para ajudar estes programadores a terem esta funcionalidade a mais nos seus softwares.
Const INDICE_DEFAULT = 'DEFAULT_ORDER'; GRID_COR_INDICE_TITULO = clCream;
procedure CliqueNoTitulo(Column: TColumn); var strColumn: string; x: integer; JaEstaEmUso: Boolean; idOptions: TInde
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Podemos utilizar as rotinas abaixo para formatar um texto com qualquer caracter e determinando o seu tamanho.
{ Coloca o texto na esquerda Campos: Texto = string que será colocada na esquerda; Qtd = quantidade de caracteres que terá o texto; Ch = caracter que será preenchido o texto. Exemplo: Texto = '15' Qtd = 4 Ch = 'x' Result = '15xx' } function ColocaTextoEsq(Texto: string; Qtd: integer; Ch: Char): string; var x: integer; begin if Ch = '' then Ch := Chr( 32 ) { Espaço } {endif};
if Length(Texto) > Qtd then Result := Copy( Texto, 0, Qtd ) else begin x := Length( Texto ); for Qtd := x to Qtd-1 do begin Texto := Texto + Ch; end; Result := Texto; end {endif}; end;
{ Coloca o texto na direita Campos: Texto = string que será colocada na direita; Qtd = quantidade de caracteres que terá o texto; Ch = caracter que será preenchido o texto. Exemplo: Texto = '15' Qtd = 4 Ch = 'x' Result = 'xx15' } function ColocaTextoDir(Texto: string; Qtd: integer; Ch: Char): string; var x: integer; str: string; begin if Length(Texto) > Qtd then Result := Copy( Texto, (Length(Texto)-Qtd) + 1, Length(Texto) ) else begin str := ''; for x := Length(Texto) to Qtd - 1 do begin str := str + Ch; end; Result := str + Texto; end {endif}; end;
Espero ter colaborado. -->">
|
|
|
| |
|