terça-feira, 23 de novembro de 2010
sábado, 13 de novembro de 2010
Disponível ASP.NET MVC 3 Release Candidate
Salve, salve amigos,
O Team do ASP.NET MVC, disponibilizou a versão RC do ASP.NET MVC 3. Veja aqui, quais são as principais novidades introduzidas nesta versão.
All the best!
Microsoft Visual Studio 2010 Language Pack
Salve, salve amigos,
Clique no link abaixo, e faça o download dos pacotes de idiomas do Visual Studio 2010 são complementos gratuitos que podem habilitar o usuário a alternar a interface do usuário do Visual Studio Professional em inglês para idiomas localizados.
Take care
domingo, 7 de novembro de 2010
segunda-feira, 1 de novembro de 2010
Resumo da Delphi Conference 2010 Brasil
Salve, salve amigos,
Andreano Lanusse, descreve um resumo da Delphi Conference Brasil 2010.
Ontem (26/Outubro) realizamos o Delphi Conference 2010 Brazil, o maior e principal evento para desenvolvedores Delphi do Brasil, foram 26 palestras onde os palestrantes abordaram os mais variados temas, como: Delphi XE, iPhone, Android, DataSnap, Cloud Computing, PHP, VCL, MVC, mapeamento objeto relacional, reconhecimento facial, NF-e e mini-cursos e muitos outros temas.
Foram aproximadamente 600 desenvolvedores Delphi no evento, onde tinhamos desenvolvedores em todos os níveis de conhecimento, uma ótima surpresa foi a grande quantidade de novos desenvolvedores Delphi que estavam ali para conhecer mais e acelerar seu conhecimento. O Brasil estava todo representando, desenvolvedores de todos os cantos do Brasil.
Tivemos o Keynote de abertura com o David I (VP de relacionamento com desenvolvedores) onde foi apresentando um preview do compilador 64 bits e de uma aplicação Delphi rodando em Mac, além disso David falou sobre o futuro do Delphi que sem dúvida é brilhante.
Esse ano demos um enfoque muito grande ao DataSnap, grande parte do conteúdo abordava o tema e as tecnologias envolvidas no desenvolvimento de aplicações multicamada, o feedback foi sensacional.
Durante o evento as mensagens no twitter enviadas por aqueles que ali estavam mostravam o sucesso, veja o que a comunidade dizia aqui.
Durante o encerramento vários prêmios foram sorteados: componentes da TMS Software, assinaturas da revista Blase Pascal, assinaturas da ActiveDelphi licença de RAD Studio XE, etc. Além disso tivemos a entrega do prêmio “Delphi Brazil Community Award”, este prêmio é um reconhecimento ao trabalho feito na comunidade Delphi, geralmente homenageamos uma pessoa, mas este ano homenageamos o DUG-RS, grupo de usuários Delphi do Rio Grande do Sul, pois o grande trabalho feito durante o ano envolvia várias pessoas, o prêmio foi muito merecido, parabéns ao DUG-RS.
Nós da Embarcadero só temos a agradecer a todos aqueles que fizeram parte deste evento, a comunidades, aqueles que foram ao evento, nossos parceiros, aos palestrantes e todos aqueles que não puderam estar mas que de alguma forma nos ajudaram, MUITO OBRIGADO!!!!
Abaixo algumas fotos do evento, várias outras foram publicadas na comunidade Delphi Brasil do Facebook
Take Care
Dicas Delphi - Preencher com ZEROS à esquerda
Salve, salve amigos
// No Evento OnExit de um componente Edit1 por exemplo
procedure TForm1.Edit1Exit(Sender: TObject);
var x : Integer;
begin
if (edit1.text<>' ') then
begin x := strtoint(edit1.Text);
edit1.Text:= Format('%6.6d',[x]);
// Definiu o texto como tendo 6 caracteres inteiros, ou seja, 6 números.
// Basta trocar este valor para mais ou menos de acordo com a sua necessidade.
end;
// Na propriedade MaxLength (no object inspector) do edit1,
// defina também o valor com o mesmo número de caracteres usado na codificação acima.
procedure TForm1.Edit1Exit(Sender: TObject);
var x : Integer;
begin
if (edit1.text<>' ') then
begin x := strtoint(edit1.Text);
edit1.Text:= Format('%6.6d',[x]);
// Definiu o texto como tendo 6 caracteres inteiros, ou seja, 6 números.
// Basta trocar este valor para mais ou menos de acordo com a sua necessidade.
end;
// Na propriedade MaxLength (no object inspector) do edit1,
// defina também o valor com o mesmo número de caracteres usado na codificação acima.
Dicas Delphi - Retornar as Iniciais de uma String
Salve, salve amigos,
// função retorna as iniciais de uma String. Ex: 'Saída por Consumo' vai retornar SPC
Function retornaIniciais(x: String): String;
var
i:Integer;
aux:String;
iniciais:String;
begin
iniciais:='';
aux:=Trim(x);
if aux<>'' then
begin
iniciais:=MidStr(aux,1,1);
i:=AnsiPos(' ',aux);
while i>0 do
begin
iniciais:=iniciais+MidStr(aux,i+1,1);
aux:=midstr(aux,1,i-1)+MidStr(aux,i+1,length(aux));
i:=AnsiPos(' ',aux);
end;//
while i>0 then
end;
if aux<>'' then
Result:=UpperCase(iniciais);
end;
var
i:Integer;
aux:String;
iniciais:String;
begin
iniciais:='';
aux:=Trim(x);
if aux<>'' then
begin
iniciais:=MidStr(aux,1,1);
i:=AnsiPos(' ',aux);
while i>0 do
begin
iniciais:=iniciais+MidStr(aux,i+1,1);
aux:=midstr(aux,1,i-1)+MidStr(aux,i+1,length(aux));
i:=AnsiPos(' ',aux);
end;//
while i>0 then
end;
if aux<>'' then
Result:=UpperCase(iniciais);
end;
Dicas Delphi - Calculo da Idade
Salve, salve amigos
//Essa dica é um demostrativo de como se calcular a idade de uma pessoa em anos,
//meses e/ou dias //1º Declare na uses a unit DateUtils //2º Insira um Button e um Maskedit no Form //3º Na propriedade EditMask do Maskedit insira o formato Date e modifique //no campo Input Mask esse formato para 4 dígitos no ano e dê OK //4º No evento OnClick do Button insira o código e execute procedure TForm1.Button1Click(Sender: TObject); var Ano, Mes: Integer; Total_dias: Real;
begin //Descobrir a idade somente em anos, meses ou dias... ShowMessage(IntToStr(YearsBetween(Date, StrToDate(MaskEdit1.Text))) + ' anos'); ShowMessage(IntToStr(MonthsBetween(Date, StrToDate(MaskEdit1.Text))) + ' meses'); ShowMessage(IntToStr(DaysBetween(Date, StrToDate(MaskEdit1.Text))) + ' dias'); //ou //Descobrir a idade em anos, meses e dias, complicando um pouco mais... Total_dias := DaysBetween(Date, StrToDate(MaskEdit1.Text)); Ano := StrToInt(Copy(MaskEdit1.Text, 7, 4)); while Total_dias > 365 do begin Total_dias := Total_dias - DaysInAYear(Ano); Ano := Ano + 1; end;
Mes := StrToInt(Copy(MaskEdit1.Text, 4, 2));
while Total_dias > 28 do
begin
if Total_dias >= DaysInAMonth(Ano, Mes) then
begin
Total_dias := Total_dias - DaysInAMonth(Ano, Mes);
Mes := Mes + 1;
end
else
break;
end;
Ano := Ano - StrToInt(Copy(MaskEdit1.Text, 7, 4));
Mes := Mes - StrToInt(Copy(MaskEdit1.Text, 4, 2));
if StrToDate(MaskEdit1.Text) <= Date then
ShowMessage(IntToStr(Ano) + ' anos, ' + IntToStr(Mes) + ' meses e ' +
FloatToStr(Total_dias) + ' dias') else ShowMessage('Impossível realizar cálculo! Data > que a data atual!');
end;
Take care
Dicas Delphi - Letreiro Digital - Direita para Esquerda
Salve, salve amigos,
// Coloque um Timer, um Panel e um Label dentro do Panel.
// Dê um duplo clique no Timer e digite o código abaixo:} if label1.left>= -(label1.Width) then label1.left:=label1.left-1 else label1.left := Panel1.width; // Você pode alterar a velocidade do texto na propriedade Interval do Timer, quanto
//menor o Interval, mais rápido ficará o letreiro.
Take care
Dicas Delphi - Como mudar imagens de acordo com as horas
Salve, salve amigos,
//Altere o intervalo do timer para 200 ou como preferir. procedure TForm1.Timer1Timer(Sender: TObject);begin if date > strtodate('10:00:00') then image1.pictures.loadfranfile('c: estefoto1.jpg'); if date > strtodate('11:00:00') then image1.pictures.loadfranfile('c: estefoto2.jpg'); end;
Take care
Dicas Delphi - Função para inverter um string
Salve, salve amigos,
function Inverte (wStr1: String): String;var i: Integer;begin Result := ''; for i := Length( wStr1 ) downto 1 do Result := Result + copy(wStr1,i,1 );end;
Take care
sábado, 30 de outubro de 2010
Dicas Delphi - Funções da VCL para Data e Hora com Delphi
Salve, salve amigos,
Em algum momento do dia-a-dia desenvolvendo aplicações, surge a necessidade de manipularmos datas e horários. Diante deste cenário, surgem determinadas dúvidas que requerem conhecimentos matemáticos. Para não nos deixar de cabelo em pé com estes cálculos, a VCL tem um vasto conjunto de classes e métodos que ajuda nestes cálculos. Neste artigo, vamos verificar que funções são essas e exemplificar através de situações reais a aplicabilidade das mesmas.
DateUtils a unit mágica |
As classes e métodos que irão nos ajudar neste artigo fazem parte da unit DateUtils e foram testadas no Delphi 2000 e 2010. A maior parte está disponível na versão 7 do Delphi também.
É importante saber que poderemos representar datas e horários através do tipo TDateTime, que mapeia um tipo double, onde a parte inteira corresponde a Data e a parte decimal corresponde a Hora. O tipo TDate ou TTime podem ser utilizados e estes mapeiam o TDateTime.
Se uma variável do tipo TDateTime recebe 0, a data equivalente será 30/12/1899 e a hora 00:00:00. Caso a data seja 29/12/1899 e o horário 06:00, o valor no formato double será -1.25, mas não será necessário trabalhar com números, pois a unit DateUtils irá ajudar muito.
É importante saber que poderemos representar datas e horários através do tipo TDateTime, que mapeia um tipo double, onde a parte inteira corresponde a Data e a parte decimal corresponde a Hora. O tipo TDate ou TTime podem ser utilizados e estes mapeiam o TDateTime.
Se uma variável do tipo TDateTime recebe 0, a data equivalente será 30/12/1899 e a hora 00:00:00. Caso a data seja 29/12/1899 e o horário 06:00, o valor no formato double será -1.25, mas não será necessário trabalhar com números, pois a unit DateUtils irá ajudar muito.
Métodos para criação de datas |
Ao criar ou ler variáveis do tipo TDateTime, muitos desenvolvedores se preocupam com o formato: DD/MM/AAAA, AAAA/DD/MM, MM/DD/AAAA.. Outras preocupações, em muitos casos, surgem devido ao formato de data da máquina. Mas esta preocupação não é necessária, pois basta saber utilizar os métodos EncodeDate, EncodeTime, DecodeDate.e DecodeTime.
O método EncodeDate nos ajuda a criar variáveis, passando como parâmetro: dia, mês e ano para o EncodeTime, também serão passados: hora, minuto, segundo e milesegundo.
O método EncodeDate nos ajuda a criar variáveis, passando como parâmetro: dia, mês e ano para o EncodeTime, também serão passados: hora, minuto, segundo e milesegundo.
var
Data : TDateTime;
begin
Data := EncodeDate( 2010, 10, 28 );
ShowMessage( DateToStr(Data) );
Data : TDateTime;
begin
Data := EncodeDate( 2010, 10, 28 );
ShowMessage( DateToStr(Data) );
// Lendo uma variável Data
var
Dia, Mes, Ano : Word;
begin
DecodeDate(Date, Ano, Mes, Dia);
ShowMessage( 'Dia : ' + InttoStr(Dia) + #13 +
'Mês : ' + InttoStr(Mes) + #13 +
'Ano : ' + InttoStr(Ano) );
Neste exemplo será apresentando Dia : 4 // Mês : 4 // Ano : 2006, independente da configuração de data e hora da máquina.
Calculando Dias |
Calcular quantos dias existem entre duas datas, quantos dias na semana, quantos dias no mês, considerar o ano bissexto e outras informações são fundamentais quando você tem que fazer cálculo de juros, dias úteis e outros cálculos. Vejamos alguns métodos que podem nos ajudar.
// Quantos dias existem em cada mês do ano
Const
S : String = '%s: %d dias';
var
Y, M: Integer;
Meses: String;
begin
Y := 2006; //Ano que estará sendo considerado neste exemplo
for M := 1 to 12 do
begin
Meses := Meses + Format(S, [ShortMonthNames[M],MonthDays[IsLeapYear(Y), M]]) +#13;
end;
ShowMessage(Meses);
O exemplo acima irá resultar em quantos dias existem em cada mês do ano de 2006. O resultado será:
jan: 31 dias // fev: 28 dias // mar: 31 dias // abr: 30 dias // mai: 31 dias // jun: 30 dias // jul: 31 dias // ago: 31 dias // set: 30 dias // out: 31 dias // nov: 30 dias // dez: 31 dias //
Perceba que utilizamos o array ShortMonthNames, que retorna o nome de cada mês, abreviado de acordo com o idioma do Windows. Você poderá sobrescrever os nomes dos meses para cada um deles, caso queira que sua aplicação utilize a sua
maneira. Outro array utilizado é o MonthDays, que é bidimensional e irá retornar o número de dias para cada mês considerando o ano bisexto através do método IsLeapYear, que retorna True ou False (1 ou 0).
{Incrementando Dia, Mês, Ano, Semana, Hora, Minuto, Segundo, .....}
var
Y, M: Integer;
Hoje : TDateTime;
AnoQueVem : TDateTime;
begin
Hoje := Date; // considere que hoje é 25/04/2006
AnoQueVem := IncYear(Hoje, 1);
ShowMessage(DateToStr(AnoQueVem));
// resultado será 25/04/2007
O Exemplo acima irá incrementar a data de hoje em 1 ano: diversas são as funções para o incremento de data e hora, são elas:
Nome da Função | Unit |
IncMonth | SysUtils |
IncAMonth | SysUtils |
IncYear | DateUtils |
IncWeek | DateUtils |
IncDay | DateUtils |
IncHour | DateUtils |
IncMinute | DateUtils |
IncSecond | DateUtils |
IncMilliSecond | DateUtils |
As funções acima certamente irão lhe ajudar nas operações com data e hora.
Outro grupo de funções muito útil é o relacionado a intervalos de data e hora. Todas as funções abaixo citadas estão na unit DateUtils e recebem um parâmetro do tipo TDateTime.
Nome da Função | Unit |
YearsBetween | Retorna o número de anos entre um intervalo |
MonthsBetween | Retorna o número de meses entre um intervalo |
WeeksBetween | Retorna o número de semanas entre um intervalo |
DaysBetween | Retorna o número de dias entre um intervalo |
HoursBetween | Retorna a quantidade de horas entre um intervalo |
MinutesBetween | Retorna a quantidade de minutos entre um intervalo |
SecondsBetween | Retorna a quantidade de segundos entre um intervalo |
MilliSecondsBetween | Retorna q quantidade de milesegundos entre um intervalo |
Take care
Assinar:
Postagens (Atom)