Sonda Web                                Directório - a sua melhor selecção de sites
Minha foto
Analista Programador Sênior. Delphiano desde 1998. Programador Delphi, PHP e Java

quarta-feira, 24 de fevereiro de 2010

Campanha de divulgação do lançamento do Firebird 2.5

MindTheBird - é a campanha mundial de divulgação do lançamento do Firebird 2.5! A idéia é colocar o Firebird sob os holofotes da mídia especializada, e você pode ajudar nessa tarefa, falando sobre o Firebird no seu blog, site, listas de discussão, etc. e divulgando a campanha também! Visite o site oficial da campanha para baixar banners e materiais de apoio!

quarta-feira, 17 de fevereiro de 2010

Função Para Configurações de Botões

Hoje vou colocar uma função para vcs usarem em seus formulários de acesso a dados.
Para usa-la vc precisa só padronizar o nome dos botões.
{::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Use quando tabela estiver em dsBrowse
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;}
procedure BrowseState ( Form : TForm );
var i : Integer;
begin
  for i := 0 to Form.ComponentCount - 1 do
    begin
       if Form.Components[i] is TDBComboBox then
        begin
          ( Form.Components[i] as TDBComboBox).Style    := csSimple;
          ( Form.Components[i] as TDBComboBox).readOnly := True;
        end;

       if Form.Components[i] is TDBLookupComboBox then
         ( Form.Components[i] as TDBLookupComboBox).Enabled  := False;

       if Form.Components[i] is TDBEdit then
         ( Form.Components[i] as TDBEdit).ReadOnly := True;

       if Form.Components[i] is TDBCheckBox then
        begin
           ( Form.Components[i] as TDBCheckBox).ReadOnly := True;
           if ( Form.Components[i] as TDBCheckBox).State =  cbGrayed  then
             (Form.Components[i] as TDBCheckBox).State :=  cbUnchecked;
       end;

     if Form.Components[i] is TDBGrid then
         ( Form.Components[i] as TDBGrid).Enabled := True;

      if Form.Components[i] is TBitBtn then
       begin
         if( Form.Components[i] as TBitBtn).Name = 'BitBtnGravar' Then
           (Form.Components[i] as TBitBtn).Enabled := False;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnCancelar' Then
           (Form.Components[i] as TBitBtn).Enabled := False;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnIncluir' Then
           (Form.Components[i] as TBitBtn).Enabled := True;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnAlterar' Then
           (Form.Components[i] as TBitBtn).Enabled := True;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnExcluir' Then
           (Form.Components[i] as TBitBtn).Enabled := True;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnPesquisa' Then
           (Form.Components[i] as TBitBtn).Enabled := True;
       end;

      if Form.Components[i] is TDBNavigator then
         ( Form.Components[i] as TDBNavigator).Enabled := True;
    end;
end;

{:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
 Fim Função BowseState
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;}




{:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
Use quando tabela estiver em dsInsert ou DsEdit
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;}
Procedure InsertState ( Form : TForm );

var i : Integer;
begin
   for i := 0 to Form.ComponentCount - 1 do
     begin
        if Form.Components[i] is TDBComboBox then
         begin
           ( Form.Components[i] as TDBComboBox).Style    := csDropDown;
           ( Form.Components[i] as TDBComboBox).readOnly := False;
           ( Form.Components[i] as TDBComboBox).Enabled  := True;
        end;

        if Form.Components[i] is TDBLookupComboBox then
           ( Form.Components[i] as TDBLookupComboBox).Enabled  := True;

      if Form.Components[i] is TDBEdit then
         ( Form.Components[i] as TDBEdit).ReadOnly := False;

      if Form.Components[i] is TDBCheckBox then
        begin
          ( Form.Components[i] as TDBCheckBox).ReadOnly := False;
          (Form.Components[i] as TDBCheckBox).State     :=  cbUnchecked;
        end;
      if Form.Components[i] is TBitBtn then
       Begin
         if( Form.Components[i] as TBitBtn).Name = 'BitBtnIncluir' Then
           (Form.Components[i] as TBitBtn).Enabled := False;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnAlterar' Then
           (Form.Components[i] as TBitBtn).Enabled := False;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnExcluir' Then
           (Form.Components[i] as TBitBtn).Enabled := False;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnCancelar' Then
           (Form.Components[i] as TBitBtn).Enabled := True;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnGravar' Then
           (Form.Components[i] as TBitBtn).Enabled := True;

         if( Form.Components[i] as TBitBtn).Name = 'BitBtnPesquisa' Then
           (Form.Components[i] as TBitBtn).Enabled := False;
       end;

      if Form.Components[i] is TDBGrid then
         ( Form.Components[i] as TDBGrid).Enabled := False;

      if Form.Components[i] is TDBNavigator then
         ( Form.Components[i] as TDBNavigator).Enabled := False;
    end;
end;
{:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
 Fim Função InsertState
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;}
para chama-la é muito simples :
em seu form de cadastro  de clientes no botão Incluir
Procedure TF_Cllientes.BitbtnIncluir.click(Sender : Tobject);
begin
    Sua_Tabela_Clientes.Insert;
    InsertState( F_Clientes );
end. 

Qualquer dúvida só escreverem.

terça-feira, 16 de fevereiro de 2010

Instalação e Configuração do Servidor SubVersion com Apache (Windows)



Nesta publicação vou falar de uma ferramenta extremamente importante para nós desenvolvedor o SubVersion. Ferramenta para armazenamento de fontes, essencial para que desenvolve em grupo.
1.Instalando o Apache             A instalação do apache não tem mistério. Onde pedir domínios e nome do servidor informe “localhost”. Dê preferência para instalá-lo como serviço para garantir que o subversion funcione mesmo sem usuário logado. É importante usarmos a Versão 2.0 do Apache.
2. Instalando o Subversion             A Instalação do SubVersion, assim como a instalação do apache não tem segredo.

3. Configurando SubVersion
            O Primeiro passo é criar uma pasta para armazenar os seus projetos. Vamos criar via windows uma pasta chamada: Projetos_Delphi ( Dê preferência para criar esta pasta na segunda partição do HD ).
 Dentro desta pasta vamos criar as pastas de seus projetos, vamos supor que vc esteja desenvolvendo um software de automação comercial. Então a estrutura fica assim : "d:\Projetos_Delphi\comercial".
  Vamos para o prompt de comando:

$ svnadmin create d:\Projetos_Delphi

Em seguida vamos criar a pasta do projeto

$ svnadmin create d:\Projetos_Delphi\comercial

Posteriormente, abra o arquivo “C:\Projetos_Delphi\conf\svnserver.conf” e descomente as seguintes linhas:
[general]
anon-access = read
auth-access = write

Repita o processo mas agora na pasta comercial, abra o arquivo “C:\Projetos_Delphi\comercial\conf\svnserver.conf” e descomente as seguintes linhas:
[general]
anon-access = read
auth-access = write

3. Criando os usuários no Apache para acessar o SubVersion
Pelo prompt de comando Navegue até a pasta \Bin do apache , onde se encontra o htpasswd.exe. O comando htpasswd será utilizado para criar usuários e atribuir suas senhas. Exemplo:
$ htpasswd -cm C:\Delphi_Projetos\svn-auth-file  nome_usuario1
$ New password: *****
$ Re-type new password: *****
$ Adding password for user nome_usuario
Para adicionar outros usuários o procedimento é o mesmo. A única mudança está no parâmetro -c que impõe a criação / substituição do arquivo svn-auth-file. Ou seja, após a primeira execução o comando passa a ser:
$ htpasswd -m C:\Projetos_Delphi\svn-auth-file  nome_usuario2

4. Criando as Permissões no SubVersion
Crie um arquivo com o nome de svn-acl na pasta C:\Projetos_Delphi e adicione as seguintes linhas:
[comercial:/]
Nome_usuario1=  rw
Nome_usuario2 = r
Traduzindo estas três linhas: no repositório (Projetos_Delphi ) o usuário “nome_usuario1” lê e escreve, enquanto que “nome_usuario2” apenas lê o repositório.
4. Criando o  álias no Apache
Por fim, abra o arquivo Apache2\conf\httpd.conf e adicione as seguintes linhas:

       < location / comercial >

       DAV svn
       SVNPath C:/Delphi_Projetos/comercial
       AuthType Basic
       AuthName “ Projeto Comercial ”
       AuthUserFile C:/Projetos_Delphi/svn-auth-file
       Require valid-user
       AuthzSVNAccessFile C:/Projetos_Delphi/svn-acl

       < / location >  

Reinicie o Apache e pelo browse através da url http://localhost/comercial. Informe o usuário e senha e verifique se retornou “Revision 0: /”.