terça-feira, 30 de março de 2010

Projeto ACBr

Para os Delpheiros, a vida é encontrar soluções para automação comercial. Ponteiros, objetos, e outros detalhes inerentes a outras linguagens não fazem parte da rotina do Delpheiro.
Automação comercial significa ter de controlar estoque, balanços de caixa e agora, com a nova legislação vigente, encontrar formas do aplicativo interagir com as impressoras fiscais e emitir a famigerada Nota Fiscal Eletrônica.
É claro que a regra geral do "business" implica em que, encontrando solução para algo, o desenvolvedor apenas disponibilize o que encontrou mediante compensação financeira. Nada mais justo, afinal ninguém vai gastar tempo de trabalho e depois liberar geral para quem quiser.
No desenvolvimento relativo a NFe e Impressoras fiscais, várias empresas oferecem soluções e cobram por isso, virou um grande negócio devido a exigência da legislação em se ter no sistema esses quesitos.
E nessa área, um projeto vem surpreendendo: ACBr. O ACBr é uma iniciativa de programadores Delphi que montaram um conjunto de bibliotecas e rotinas para serem utilizadas na automação comercial. Até aí não seria novidade, mas ocorre que o projeto é Open Source. Isso mesmo, qualquer pessoa pode utilizar e modificar o projeto a vontade, sem nenhum custo.
Já tive a oportunidade de utilizar o ACBr e posso dizer que é muito bom. Mas o melhor mesmo foi a iniciativa dos caras de fazerem isso.
Deixo aqui registrado meus parabéns a todos os programadores responsáveis por esse grande projeto. Valeu galera!

sexta-feira, 19 de março de 2010

Criando Janelas

Falei em meu primeiro post que em Delphi não dava para se fazer muita cois aque valesse a pena.
Continuo achando isso, mas apenas para não dizerem que sou preconceituoso, segue um código que cria uma janela de mensagem, para que não seja necessário utilizar o já famoso showmessage:

Classe da janela:

type
TMsgwindow=class(TForm)
private
fBtnok:TButton;
fLabelmessage:TLabel;
fMessage:string;
procedure Custombtnokclick(Sender:TObject);
public
procedure Create(sMessage:string);
end;

Implementação das funções:

procedure TMsgwindow.Create(sMessage: string);
begin
fMessage:=sMessage;
//Setando propriedades da janela
Self.BorderStyle:=bsDialog;
Self.Color:=clMoneyGreen;
Self.Position:=poOwnerFormCenter;
Self.Caption:='Mensagem';
Self.ClientHeight:=100;
Self.ClientWidth:=300;

//Setando propriedades do botão
fBtnok:=TButton.Create(Self);
fBtnok.Parent:=self;
fBtnok.Top:=50;
fBtnok.Left:=120;
fBtnok.Caption:='OK';
fBtnok.OnClick:=Custombtnokclick;

//Setando propriedades da label
fLabelmessage:=TLabel.Create(Self);
fLabelmessage.Parent:=Self;
fLabelmessage.Alignment:=taCenter;
fLabelmessage.Font.Size:=12;
fLabelmessage.Font.Style:=[fsBold];
fLabelmessage.Top:=20;
fLabelmessage.Left:=40;
fLabelmessage.Caption:=fMessage;
end;

procedure TMsgwindow.Custombtnokclick(Sender: TObject);
begin
Self.ModalResult:=mrOk;
end;


Chamando a janela:

procedure Showmsg;
begin
try
msgwindow:=TMsgwindow.CreateNew(Application.owner);
msgwindow.Create('Aviso');
msgwindow.ShowModal;
finally
FreeAndNil(msgwindow);
end;
end;

Quem diria.Delphi com classes! pois é...
É isso galera.Bons códigos ae!