quinta-feira, 31 de julho de 2014

Preço do delphi xe6


Recentimente fiz um orçamento do novo delphi xe6. e o preço que me passaram!!!


Upgrade Delphi XE6 Professional -  R$1.934,60
Upgrade Delphi XE6 Enterprise - R$5.300,60
Upgrade Delphi XE6 Ultimate - R$7.782,60
Upgrade Delphi XE6 Architect - R$8.836,60


   Produto
Edição
Tipo
Licença
Valor - R$
DELPHI XE6
PROFESSIONAL
NEW USER
NAMED
R$ 3.532,60

  Produto
Edição
Tipo
Licença
Valor - R$
DELPHI XE6
ENTERPRISE
NEW USER
NAMED
R$ 8.836,60

  Produto
Edição
Tipo
Licença
Valor - R$
DELPHI XE6
ULTIMATE
NEW USER
NAMED
R$ 12.372,60

  Produto
Edição
Tipo
Licença
Valor - R$

DELPHI XE6
ARCHITECT
NEW USER
NAMED
R$ 14.140,60











Condição de pagamento:
- boleto bancário em 7 dias
- boleto bancário em 14  e 28 dias
- cartão de crédito (à vista ou com parcelamento em até 12 vezes, com juros de 1,5% ao mês).
Adquirindo a versão XE6, você também tem acesso a algumas versões anteriores, para continuar dando suporte às suas aplicações, como Delphi 7, 2007, 2009, 2010, XE , XE2, XE3, XE4 e XE5. Gostaria de lembrar que os produtos da Embarcadero estão disponíveis em licenças nomeadas ou concorrentes e também podem ser adquiridos com manutenção. Além disso, a Embarcadero oferece uma gama completa de treinamentos oficiais e serviços, para auxiliá-lo no desenvolvimento de suas aplicações.
Este e-mail não é uma proposta oficial, sendo que os valores acima informados estão sujeitos a alterações sem prévio aviso. Para receber uma proposta oficial caso tenha interesse em efetivar a sua compra, por favor, responda a este e-mail com a Ficha Cadastral anexa preenchida, confirmando o produto.

quinta-feira, 24 de julho de 2014

Tutorial: Programa para BackUp E Restore(Copiar e restaurar)



 Tutorial: Programa para BackUp E Restore(Copiar e restaurar)

Ola a todos!

Esse é a minha quarta postagem desse blog. E resolvi mostrar com construir um aplicativo de back-up e Restore, para banco de dados Firebird e Interbase.

Para iniciar nossa aplicação, vamos precisar dos seguintes componentes. 1 TpageControl. Ajuste a propiedade align para alclient:

fig 01

Adicione três Tabsheet, para isso clique com o botão direito do mouse sobre o Pagecontrol e selecione New Page :

fig 02
Repita o processo para cria as três que precisaremos. No final renomeie e deixe com a tela abaixo. Salve com o nome que desejar:

fig 03

Adicione agora mais 3 Edits, 1 DriveComboBox, 1 DirectListbox, 1 PopupMenu, 1 OpenDialog, 2 botoes(Tanto faz um Tbutton, ou SpeedButton) e 1 campo memo. Agora vamos para os componentes da paleta Intebase, seleciones os seguintes componentes: IbBackUpService, 1 IbBackupRestore. Deixe como a imagem abaixo:
fig 04



Agora que terminamos o a janela de backup. Vamos da inicio a codificação.

1 Clique na propriedade DirList do DriveComboBox1 e selecione DirectoryListBox1.
2 No evento Onclick do DirectoryListBox1 adicione o seguinte codigo:
Edit3.Text := DirectoryListBox1.Directory+'\'+Edit2.Text;

Explicando:
No edit 2 você digita o nome do seu backup ou deixa o nome padrão que ira aparecer, assim que nos avançarmos no codigo. Na edit3 aparece o local que você escolheu para o backup


3. No evento onClick do bitBtn1, insira o seguinte código:
if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;

Edit2.Text := 'backup'+formatdatetime('ddmmyy', date)+'.gbk'; // adiciona a data como nome padrão do backUo

BitBtn2.Enabled := true;
end;


fig 05


Explicando:

if OpenDialog1.Execute then – Executa o Opendialog;
Edit1.Text := OpenDialog1.FileName; - Pega o caminho do arquivo e joga no edit1;
Edit2.Text := 'backup'+formatdatetime('ddmmyy', date)+'.gbk'; - Define o nome padrão do backup como sendo a data atual do computador + a extensão gbk, que a extensão padrão para backups. Dessa forma outros aplicativos de backup de banco de dados também irão reconhecer o seu.



4. No evento onclick do botão bitBtn2, adicione o seguinte código:


fig 06

procedure TfrmBackUp.BitBtn2Click(Sender: TObject);
begin

if Edit1.Text = '' then
begin
ShowMessage('Arquivo de BackUp não informado. Por favor informe o aqruivo!!!');
end
else

try
Screen.Cursor := crHourGlass;// muda o cursos do mouse
with IBBackupService1 do // inicia o backup
begin
LoginPrompt := false;
Active := true;
Verbose := true;
DatabaseName := edit1.Text;
BackupFile.Add(DirectoryListBox1.Directory+'\'+edit2.Text);

ServiceStart; //inicia o backup

while not Eof do
begin
memo1.Lines.Add(GetNextLine) // mostra o andamento no memo1.text

end;
end;
finally
showMessage('BackUp efetuado com sucesso');// infomra se o processo ocorreu com sucesso
Screen.Cursor := crDefault;
end;
Application.ProcessMessages;
end;


Agora que já temos nossa codificação montada, é necessário configura os componestes da paleta IBBackupService1 e IBRestore1.

1. Clique no IBBackupService1, faças as seguintes alterações, como mostra a figura a seguinte:

Deixe a propriedade active como FALSE;
ServeName como LOCALHOST;
Protocol como TCP;
ServerType com IBServer;
Login Prompt como FALSE;








fig 07


Pronto nossa tela de BACKUP esta pronta, vamos dar inicio a tela de Restore.

Clique na opção restauração no formulario.

Adicione 3 bitBtn, duas Edits e 1 Memo.

Deixe a tela com a seguir:

fig 08

1. No evento onClick do bitBtn3, insira o seguinte codigo:

procedure TfrmBackUp.BitBtn3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Edit3.Text := OpenDialog1.FileName;
end;

BitBtn5.Enabled := true;
BitBtn4.Enabled := true;
end;

Nesse evento você deve informa qual a origem do backup, ou seja, onde o arquivo de backup se encontra.





Fig 09

2. No evento onClick do bitBtn4, adicione o seguinte codigo:

procedure TfrmBackUp.BitBtn5Click(Sender: TObject);
begin
OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName); // extrai o camino do aplicativo. Você tambem pode mudar essa opção.
if OpenDialog1.Execute then
edit5.Text := OpenDialog1.FileName;
end;


3. No evento do botão bitBtn4(Iniciar Restauração), digite o seguinte código:

procedure TfrmBackUp.BitBtn4Click(Sender: TObject);
begin
try
Screen.Cursor := crHourGlass;
with IBRestoreService1 do // inicia a restauração
begin
Attach;

DatabaseName.add(edit5Text); // pego o caminho do bd
BackupFile.Add(edit4.Text);
Active := true;
Verbose := true; // serve para mostrar o andamento do processo no memo2.text
Options :=[Replace];
ServiceStart; //inicia a operação

while not Eof do
begin
memo2.Lines.Add(GetNextLine) // mostra o andamento

end;
end;
finally
showMessage('Restauração efetuado com sucesso');
Screen.Cursor := crDefault;
end;
Application.ProcessMessages; // fim do processo

end;

Configure o OpenDialog1. Clique no propiedade Filter. E configure com mostra a imagem a seguir:



















Agora é só a tela de créditos, faça a seu gosto coloque o seu nome, ou sua empresa, seu logotipo, isto é, se for de seu agrado:






Segue o código fonte do aplicativo completo para analisarem.

unit UBackUp;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ComCtrls,
IBServices, Vcl.FileCtrl, IBFilterDialog, Vcl.Menus, Vcl.Imaging.jpeg,
Vcl.ExtCtrls;

type
TfrmBackUp = class(TForm)
IBBackupService1: TIBBackupService;
IBRestoreService1: TIBRestoreService;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
OpenDialog1: TOpenDialog;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Edit3: TEdit;
Edit4: TEdit;
Label3: TLabel;
Label4: TLabel;
DriveComboBox1: TDriveComboBox;
DirectoryListBox1: TDirectoryListBox;
Edit2: TEdit;
Memo1: TMemo;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Memo2: TMemo;
Label7: TLabel;
PopupMenu1: TPopupMenu;
Novapasta1: TMenuItem;
DefinirpastaparaoRestaurao1: TMenuItem;
BitBtn5: TBitBtn;
TabSheet3: TTabSheet;
Memo3: TMemo;
Image1: TImage;
Label8: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure DirectoryListBox1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure Novapasta1Click(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure TabSheet2Resize(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmBackUp: TfrmBackUp;

implementation

{$R *.dfm}

uses UProc_Func;

procedure TfrmBackUp.BitBtn1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit1.Text := OpenDialog1.FileName;

Edit5.Text := 'backup'+formatdatetime('ddmmyy', date)+'.gbk';

BitBtn2.Enabled := true;
end;

procedure TfrmBackUp.BitBtn2Click(Sender: TObject);
begin

if Edit1.Text = '' then
begin
ShowMessage('Arquivo de BackUp não informado. Por favor informe o aqruivo!!!');
end
else

try
Screen.Cursor := crHourGlass;
with IBBackupService1 do
begin
// ServerName := 'localhost';
LoginPrompt := false;
// Params.Add('user_name=SYSDBA');
// Params.add('password=masterkey');
Active := true;
Verbose := true;
DatabaseName := edit1.Text;
BackupFile.Add(DirectoryListBox1.Directory+'\'+edit5.Text);

ServiceStart;

while not Eof do
begin
memo1.Lines.Add(GetNextLine)

end;
end;
finally
showMessage('BackUp efetuado com sucesso');
Screen.Cursor := crDefault;
end;
Application.ProcessMessages;
end;

procedure TfrmBackUp.BitBtn3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Edit3.Text := OpenDialog1.FileName;
end;

BitBtn5.Enabled := true;
BitBtn4.Enabled := true;
end;

procedure TfrmBackUp.BitBtn5Click(Sender: TObject);
begin
OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName);
if OpenDialog1.Execute then
edit4.Text := OpenDialog1.FileName;
end;


procedure TfrmBackUp.DirectoryListBox1Click(Sender: TObject);
begin
Edit2.Text := DirectoryListBox1.Directory+'\'+Edit5.Text;
end;

procedure TfrmBackUp.FormShow(Sender: TObject);
begin
Edit2.Text := DirectoryListBox1.Directory;

Edit1.Text := cam_bd;
end;

procedure TfrmBackUp.Novapasta1Click(Sender: TObject);
var
pasta:string;
begin

pasta:='';
pasta:=DirectoryListBox1.Directory+'\'+InputBox('Digite o nome para a nova pasta','','');

forceDirectories(Pasta);
DirectoryListBox1.Update;
end;

procedure TfrmBackUp.TabSheet1Show(Sender: TObject);
begin
Novapasta1.Enabled:=true;
DefinirpastaparaoRestaurao1.Enabled := false;
end;

procedure TfrmBackUp.TabSheet2Resize(Sender: TObject);
begin
Novapasta1.Enabled:=false;
DefinirpastaparaoRestaurao1.Enabled := true;
end;

procedure TfrmBackUp.BitBtn4Click(Sender: TObject);
begin
try
Screen.Cursor := crHourGlass;
with IBRestoreService1 do
begin
Attach;

DatabaseName.add(edit4.Text);
BackupFile.Add(edit3.Text);
Active := true;
Verbose := true;
Options :=[Replace];
ServiceStart;

while not Eof do
begin
memo2.Lines.Add(GetNextLine)

end;
end;
finally
showMessage('Restauração efetuado com sucesso');
Screen.Cursor := crDefault;
end;
Application.ProcessMessages;

end;


end.