
- Gustavo Oliveira
- 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;
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;
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
$ 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
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 >
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
Assinar:
Postagens (Atom)