Fórum Delphi 2009 Trial - Primeiras Impressões #363809
12/09/2008
0
Primeiramente, a cara da IDE, não mudou muito, o que é bom, para quem já estava acostumado com as versões anteriores. Agora existe uma caixa de testo na Tool Palete, que pode ser acessada com Ctrl+Alt+P, para procurar os compontentes, uma melhor significativa, pois antes o foco ficava meio perdido.
As configurações de build, parecem mesmo muito mais organizadas, o que era a minha principal reclamação com a versão anterior. Realmente, eles deram um talento nessa parte, vale conferir, ainda não testei como os builds de linha de comando do msbuild funcionam, mas parece que ficou bem melhor.
Infelizmente, por algum motivo não consigo acessar o help, não sei se houve algum probema na instalação, ou se o download deve ser feito em separado, vou pesquisar. Por causa disso, não consegui testar o recurso de coleções [i:f0fb0443bd]generics[/i:f0fb0443bd].
Tive minha primeira pequena decepção com os métodos anônimos, que pelo que entendi, não podem ser declarados como ´of object´ e portanto, não podem ser usados como eventos, ou seja, o código abaixo, NÃO funciona:
procedure TForm1.FormCreate(Sender: TObject); begin OnShow := procedure(Sender: TObject) begin MessageDlg(´Teste´, mtInformation, [mbOk], 0); end; end;
Ou seja, eu queria, no OnCreate do form, definir uma procedure anônima para o evento OnShow, mas acontece o erro: [u:f0fb0443bd]´Incompatible types: ´method pointer and regular procedure´[/u:f0fb0443bd] ou seja, faltou o ´of object´. Não vejo muita utilidade para métodos anônimos, sem ser esta, mas só quando conseguir ver o help poderei falar com certeza.
Em relação à VCL, por enquanto muitas mudanças bem-vindas. Sendo o tipo ´string´ UTF16 por padrão, pode-se esperar um aumento significativo no consumo de memória (que já não era pequeno) nos aplicativos que façam uso de muitos componentes da VCL, pois cada string irá ocupar o dobro do espaço, mas isso só deve ser problema em máquinas antigas. Eu imaginava que assim como quando o tipo string mudou de ShortString para AnsiString (se não me engano no Delphi 3) e ficou uma diretiva de compilação para o comportamento antigo; fosse ficar alguma configuração para escolher se o tipo ´string´ será AnsiString ou WideString, porém ainda não encontrei.
Acho que o grande avanço desta versão, é em relação ao acesso à dados. Estou bastante empolgado com essa história de o DataSnap não depender mais de COM, o que pode significar que aplicativos multi-camadas rodem sem problemas no linux com WINE, já que o WINE nao funciona muito bem com o COM. Sem falar na performance, que deve ter um aumento significativo. Vou fazer mais testes, e volto a falar sobre os resultados.
Bom, por enquanto é isso, vou ficar o final de semana me divertindo aqui com o Delphi 2009, e vou atualizando o tópico. Espero que outras pessoas também façam download da versão trial e deixem aqui a sua opinião, principalmente em relação à parte web, que eu não costumo utilizar, portanto, nem instalei.
Grande abraço à todos.
Thiago Vidal
Curtir tópico
+ 0Posts
12/09/2008
Álison Bissoli
vou gostar de saber o resultado das suas brincadeiras do fim de semana.
um abraço
Gostei + 0
12/09/2008
Luiz Henrique
Tomei a liberdade de completar o exemplo do nosso amigo delphiniano, Leonel Togniolli sobre o assunto, http://www.techtips.com.br/programacao/delphi/linguagem-delphi/anonymous-methods-no-delphi-2009/.
Posto aqui um exemplo para você não ficar decepcionado muito tempo.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TComparaString = reference to function(const S1, S2: string): Integer;
TLista = class
private
FItens: TStringList;
published
public
constructor Create;
destructor Destroy; override;
procedure Adiciona(Texto: String);
function Ordena(Compara: TComparaString): integer;
procedure MostraLista;
procedure Troca(Iten1, Iten2: Integer);
property Itens: TStringList read FItens write FItens;
end;
TForm3 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
var
Lista: TLista;
begin
Form3.Memo1.Lines.Clear;
Lista := TLista.Create;
try
Lista.Adiciona(´Um´);
Lista.Adiciona(´Dois´);
Lista.Adiciona(´Tres´);
Lista.Adiciona(´Quatro´);
Lista.Adiciona(´Cinco´);
Lista.Ordena(function(const S1, S2: string): Integer
begin
Result := CompareStr(S1, S2);
end);
Lista.MostraLista; //Crescente
Lista.Ordena(function(const S1, S2: string): Integer
begin
Result := CompareStr(S2, S1);
end);
Lista.MostraLista; //Decrescente
Lista.Ordena(function(const S1, S2: string): Integer
begin
Result := Length(S1) - Length(S2);
if Result = 0 then
Result := CompareStr(S1, S2);
end);
Lista.MostraLista; //Tamanho do item
finally
Lista.Free;
end;
end;
{ TLista }
procedure TLista.Adiciona(Texto: String);
begin
FItens.Add(Texto);
end;
constructor TLista.Create;
begin
FItens:= TStringList.Create;
end;
destructor TLista.Destroy;
begin
SysUtils.FreeAndNil(FItens);
inherited;
end;
procedure TLista.MostraLista;
var
i: Integer;
begin
for i:= 0 to FItens.Count -1 do
Form3.Memo1.Lines.Add(FItens[i]);
Form3.Memo1.Lines.Add(´´);
end;
function TLista.Ordena(Compara: TComparaString): integer;
var
i, j: Integer;
begin
for i := 0 to FItens.Count - 2 do
for j := FItens.Count - 1 downto i + 1 do
if Compara(FItens[j], FItens[i]) < 0 then
Troca(i, j);
end;
procedure TLista.Troca(Iten1, Iten2: Integer);
var
s: String;
begin
s:= FItens[Iten1];
FItens[Iten1]:= FItens[Iten2];
FItens[Iten2]:= s;
end;
end.
Espero que ajuda, T+
Gostei + 0
12/09/2008
Luiz Henrique
e tem somente um Memo no form
acho que é isto ...t+
Gostei + 0
12/09/2008
Thiago Vidal
Segue a interface da classe:
type TCompareMethod<T> = reference to function(Arg1, Arg2: T): Integer; TSortedList<T> = class private FCount: Integer; FCompare: TCompareMethod<T>; List: array of T; function GetItem(Index: Integer): T; procedure Grow; public constructor Create(CompareMethod: TCompareMethod<T>); destructor Destroy; override; procedure Add(Item: T); procedure Delete(Item: T); property Items[Index: Integer]: T read GetItem; default; property Count: Integer read FCount; end;
Assim, para fazer uma lista ordenada com strings, voce usa:
procedure Teste; var L: TSortedList<string>; begin L := TSortedList<string>.Create(function(Arg1, Arg2: string): Integer begin Result := AnsiCompareText(Arg1, Arg2); end); ... finally L.Free; end; end;
Ou para fazer uma lista ordenada de Inteiros:
procedure Teste; var L: TSortedList<Integer>; begin L := TSortedList<Integer>.Create(function(Arg1, Arg2: Integer): Integer begin Result := Sign(Arg1 - Arg2); end); ... finally L.Free; end; end;
E o mesmo serve para Smallints, Chars, e até records ou objetos, bastando trocar o tipo que fica entre [u:dcf8979f92]<>[/u:dcf8979f92].
Ou seja, chega de ter um milhao de classes herdando de TCollection ou de TObjectList, agora vc pode ter apenas uma TCollection<T> ou TList<T> ou TStack<T>, e usar para ordenar qualquer tipo de dados.
Gostei + 0
12/09/2008
Adriano Santos
Estou observando de perto esse tópico.
Vamos nos falando então, abs.
Gostei + 0
12/09/2008
Andreano
Tive minha primeira pequena decepção com os métodos anônimos, que pelo que entendi, não podem ser declarados como ´of object´ e portanto, não podem ser usados como eventos, ou seja, o código abaixo, NÃO funciona:
[/quote:1c5d4e34b1]
Thiago no meu blog tem uma explicação muito clara para isso:
http://blogs.codegear.com/andreanolanusse/2008/07/17/tiburon-anonymous-methods/#comment-3433
Está paracendo que você quer sair mudando tudo para AM e não é essa a idéia, em breve vou disponibilizar alguns exemplos.
Não é bem assim, você pode continar declarando o tipo AnsiString, mas se você tem planos de ter sua aplicação fora do Brasil, o ideal é o String.
[]´s
Andreano Lanusse
Embarcadero Technologies
Gostei + 0
12/09/2008
Lnunes
Alguém tem o serial para que eu possa testar o delphi 2009.
Desde já agradeço a atenção de todos.
Gostei + 0
12/09/2008
Adriano Santos
O serial será enviado para seu e-mail cadastrado no site da CodeGear.
Gostei + 0
12/09/2008
Lnunes
Gostei + 0
12/09/2008
Adriano Santos
As ordens.
Gostei + 0
23/09/2008
Seven
hoje desenvolvo com DELPHI 7.
Porém, gostaria de adiquirir uma licença da nova versão. Pelo que ouvi falar, não terei o que temer.
Meu objetivo não é trabalhar com Sistemas para WEB (pelo menos até os proximos anos).
Gostaria da opnião de vocês sobre qual versão adiquirir.
Tambem ví que os preços estão bem ´salgados´, mas se queremos ser profissionais, temos que trabalhar da forma mais correta possível.
Delphi 2009 Architect - $3,499.00
Delphi 2009 Professional - $899.00
Delphi 2009 Enterprise - $1,999.00
Delphi C++Builder 2009 Bundle Architect - $3,899.00
não faço a mínima idéia de qual adiquirir (bem que poderia ser a PROFESIONAL !rsrs).
Resumindo: hoje tenho sistemas de controle de estoque / vendas ... que rodam em maquinas WINDOWS XP com servidores LINUX ou ESTAÇÕES XP e SERVIDORES WINDOWS 2003), e até mesmo 2 computadores sendo que o servidor é usado para armazenar o banco de dados e rodar o sistema.
Percebi que o sistema as vezes acontece alguns bug´s (nada que seja considerado uma tragédia, mas incomoda). Usando esta nova ferramenta, isso acabaria, certo? tanto para ambiente 32 bits como 64?
descupem pela quantidade de dúvidas, mas acredito que esse tópico possa ajudar muita gente, assim como a mim.
abraço a todos,
e que o delphi continue.
Gostei + 0
23/09/2008
Wdrocha
mas o q mais me chamou a atenção...foram as melhoras nos componentes....e tah mais voltado a orientação a objetos....tah mt show...
Qto mais mexo mais gosto dessa versão q sem dúvida veio pra calar a boca d pessoas q gostam d gerar polêmicas e discussões sem fundamentos....
Essa é a prova q o Delphi vai continuar vivo por mt tempo....e se continuar assim...com mais melhoras...logo a moda daquela linguagem acho q é Java o nome....rsrsrs.....vai logo passar..pq não passa d moda e propaganda barata....
Viva o Delphi 2009!!!!!!!!!!!!!!!
parabéns ao pessoal da CodeGear....
Vou continuar me divertindo e indo mais afundo....tah mt bom....
Flw...
Gostei + 0
24/09/2008
Zaza
Desenvolvo programas para windows e linux. Quando saiu o kylix, abracei a ferramenta. Só que a Borland descontinuou o kylix. Eu só vou adquirir um novo delphi quando a embarcadero disponibilizar pelo menos um compilador do delphi pro linux. Não precisa criar um IDE pro linux, já que isso é muito trabalhoso. Mas que criem um compilador para gerar os executaveis pro linux tambem.
Gostei + 0
02/10/2008
Marcosalex
Se você tem o Delphi 7, pode comprar a licença de upgrade, que é bem mais barata.
Gostei + 0
09/10/2008
Seven
mas pra continuar trabalhando da mesma forma que trabalho hoje (SISTEMAS DESKTOP) , qual seria a melhor opção,
hoje uso ENTERPRISE e me atende perfeitamente,
gostaria de entender a diferença entre ENTERPRISE, PROFESSIONAL e ARCHITECT.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)