Re: [delphi-br] Re: PRFWK - Framework para acesso a dados

2010-05-31 Por tôpico Marcos Douglas
2010/5/30 Paulo Coutinho pa...@prsolucoes.com:
 Alguém testou?

 Tem alguma sugestão?


Não testei, mas vi o código.
Se está buscando opiniões, espero que aceite as críticas construtivas abaixo:

- Não entendi porque o framework é para acesso a dados. Isso já temos
aos montes por aí.
- Existem várias classes praticamente sem código; ou elas são
desnecessárias ou imcompletas.
- Na classe TPRFWK_Gerente (sugiro utilizar nomes bem menores nas
classes e units) vc tem atributos do tipo TPRFWK_ClientDataSet e
TPRFWK_ADODataSet. Se o framework é para acesso a dados de forma
transparente vc não deveria amarrar a forma de conexão; nem todos
utilizam ClientDataSet.
- unit projeto_teste\UFrmPrincipal.pas possui códigos bem confusos:
procedure TFrmPrincipal.alterarItem;
begin
  if (lvItens.ItemIndex  -1) then
  begin
gMembro := TPRFWK_Membro.Create;

gMembro.ID := StrToInt(lvItens.Items[lvItens.ItemIndex].Caption);
gMembro := gGR_Membro.obter(gMembro) as TPRFWK_Membro;

if (gMembro  nil) then
begin
  gMembro.nome := edNome.Text;
  gGR_Membro.alterar(gMembro);
  gMembro.Free;
end;

carregarGrid();
  end;
end;

procedure TFrmPrincipal.excluirItem;
begin
  if (lvItens.ItemIndex  -1) then
  begin
gMembro := TPRFWK_Membro.Create;

gMembro.ID := StrToInt(lvItens.Items[lvItens.ItemIndex].Caption);
gMembro := gGR_Membro.obter(gMembro) as TPRFWK_Membro;

if (gMembro  nil) then
begin
  gGR_Membro.excluir(gMembro);
  gMembro.Free;
end;

carregarGrid();
  end;
end;

procedure TFrmPrincipal.inicializar;
var
  lTemp  : String;
begin
  //título
  lTemp := 
MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('APLICACAO',
'titulo', '');
  self.Caption := lTemp;

  //conexão
  //TSqlConnection ou TAdoConnection
  gConexao := TPRFWK_Conexao.Create;
  gConexao.vendorlib   :=
MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('CONEXAO',
'vendorlib', '');
  gConexao.libraryName :=
MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('CONEXAO',
'libraryname', '');
  gConexao.criarConexao(
MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('CONEXAO',
'driver', ''),

MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('CONEXAO',
'nomeconexao', '')
 );
  gConexao.conectar;
end;

Sem manual e/ou exemplos claros, fica muito dificil o pessoal começar
a utilizar.


Marcos Douglas


[delphi-br] Criando Matriz

2010-05-31 Por tôpico Leonardo Baldino
alguel sabe como eu posso fazer para criar uma matriz em tempo de execução
usando valores de duas variaveis integer para linha e coluna.

-- 
Leonardo Carlos Baldino - The Highlander


[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Criando Matriz

2010-05-31 Por tôpico Rubem Rocha
Esboce mais ou menos o q você quer fazer. Pode ser um pedaço de código
hipotético que ilustre bem sua idéia.

Sds.

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Leonardo Baldino
Enviada em: segunda-feira, 31 de maio de 2010 14:10
Para: Grupo_Delphi
Assunto: [delphi-br] Criando Matriz

 

  

alguel sabe como eu posso fazer para criar uma matriz em tempo de execução
usando valores de duas variaveis integer para linha e coluna.

-- 
Leonardo Carlos Baldino - The Highlander

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Criando Matriz

2010-05-31 Por tôpico Leonardo Baldino
algo do tipo eu insero em dois edits o numero de colunas e linhas e quando
eu clico em um bitbtn eu crio uma matriz em tempo de execução com o numero
de linhas e colunas que eu indiquei

Em 31 de maio de 2010 15:11, Rubem Rocha rubem.ro...@dtmanaus.com.brescreveu:



 Esboce mais ou menos o q você quer fazer. Pode ser um pedaço de código
 hipotético que ilustre bem sua idéia.

 Sds.

 De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto:
 delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em
 nome de Leonardo Baldino
 Enviada em: segunda-feira, 31 de maio de 2010 14:10
 Para: Grupo_Delphi
 Assunto: [delphi-br] Criando Matriz


 alguel sabe como eu posso fazer para criar uma matriz em tempo de execução
 usando valores de duas variaveis integer para linha e coluna.

 --
 Leonardo Carlos Baldino - The Highlander

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Leonardo Carlos Baldino - The Highlander


[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] Criando Matriz

2010-05-31 Por tôpico Dirlei
Leonardo,

Esse código tem uma procedure que faz o que você precisa:
http://pastebin.com/7er6ymyp

O nome da procedure é alocarMatriz.



[]'s
Dirlei Dionísio.

Novo artigo: Quando utilizar soluções de contorno
http://MaisQueBomCodigo.blogspot.com



Em Seg, 2010-05-31 às 15:10 -0300, Leonardo Baldino escreveu:
   
 alguel sabe como eu posso fazer para criar uma matriz em tempo de
 execução
 usando valores de duas variaveis integer para linha e coluna.
 
 -- 
 Leonardo Carlos Baldino - The Highlander





RES: [delphi-br] Criando Matriz

2010-05-31 Por tôpico Rubem Rocha
Se você está usando arrays de variants, prefira o uso da função
VarArrayCreate(). Caso contrário, se você está trabalhando com arrays de
tipos de dados primitivos, sugiro que você crie funções especializadas para
cada tipo de array que você irá trabalhar. O exemplo abaixo trabalha com
vetores e matriz de valores numéricos inteiros.

program DynArraySample;

{$APPTYPE CONSOLE}

uses
  SysUtils{$IF CompilerVersion = 14.0}, Types{$IFEND};

type
{$IF CompilerVersion  14.0}
  TIntegerDynArray = array of Integer;
{$IFEND}
  TIntegerMultiDynArray = array of TIntegerDynArray;

function CreateIntegerArray(const Columns: integer): TIntegerDynArray;
overload;
begin
  SetLength(Result, Columns);
end;

function CreateIntegerArray(const Rows, Columns: integer):
TIntegerMultiDynArray; overload;
var
  i: integer;
begin
  SetLength(Result, Rows);
  for i := Low(Result) to High(Result) do
Result[i] := CreateIntegerArray(Columns);
end;

var
  i, j: Integer;
  Vetor: TIntegerDynArray;
  Matriz: TIntegerMultiDynArray;

begin
  Randomize;

  Vetor := CreateIntegerArray(3);
  for i := Low(Vetor) to High(Vetor) do
Vetor[i] := Random(100);
  WriteLn('Mostrando vetor criado ...');
  for i := Low(Vetor) to High(Vetor) do
WriteLn(Vetor[i]);
  WriteLn; WriteLn;
  SetLength(Vetor, 0);

  Matriz := CreateIntegerArray(3, 4);
  for i := Low(Matriz) to High(Matriz) do
for j := Low(Matriz[i]) to High(Matriz[i]) do
  Matriz[i, j] := Random(100);
  WriteLn('Mostrando matriz criada ...');
  for i := Low(Matriz) to High(Matriz) do
  begin
for j := Low(Matriz[i]) to High(Matriz[i]) do
  Write(Matriz[i, j], ' ');
WriteLn;
  end;
  SetLength(Matriz, 0);

  WriteLn(Eoln);
end.

Boa sorte.
Sds.

-Mensagem original-
De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Leonardo Baldino
Enviada em: segunda-feira, 31 de maio de 2010 14:19
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Criando Matriz

algo do tipo eu insero em dois edits o numero de colunas e linhas e quando
eu clico em um bitbtn eu crio uma matriz em tempo de execução com o numero
de linhas e colunas que eu indiquei

Em 31 de maio de 2010 15:11, Rubem Rocha
rubem.ro...@dtmanaus.com.brescreveu:



 Esboce mais ou menos o q você quer fazer. Pode ser um pedaço de código
 hipotético que ilustre bem sua idéia.

 Sds.

 De: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br [mailto:
 delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br] Em
 nome de Leonardo Baldino
 Enviada em: segunda-feira, 31 de maio de 2010 14:10
 Para: Grupo_Delphi
 Assunto: [delphi-br] Criando Matriz


 alguel sabe como eu posso fazer para criar uma matriz em tempo de execução
 usando valores de duas variaveis integer para linha e coluna.

 --
 Leonardo Carlos Baldino - The Highlander

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Leonardo Carlos Baldino - The Highlander


[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 







[delphi-br] BDE 64bit - -

2010-05-31 Por tôpico rodrigoojapa
Pessoal, 

Fiz a instalação do BDE, no windows 64, mas não tem o drive do Oracle...
Alguem sabe como posso incluir o drive do oracle?

Ja fiz até a cópia dos arquivos de um windows 32,mas não deu certo.



[delphi-br] Aplicação 100% CPU

2010-05-31 Por tôpico jccj2...@ymail.com
Galera...
desenvolvi um aplicação com delphi 2010 para cadastro de 
clienes,fornecedores,materiais e vendas usando banco de dados MySql 5.1 e 
conexão dbexpress, o problema é que no meu notebook(processador 2 nucleos AMD, 
3GB Ram) e meu Desktop(processador semprom 1.8, 512 Ram) o programa roda normal 
mas no cliente (processador 1.6 e 1.5GB Ram)não roda fica sempre com 100% de 
CPU e nem abre o programa.

Obs: nas minhas máquinas tem o delphi 2010 instalado.



[delphi-br] UserControl

2010-05-31 Por tôpico sergio cavalcante
Pessoal, alguém já mexeu com essa suíte? Achei a idéia espetacular, instalei
no Delphi 2010, mas ele não cria automaticamente as tabelas, até pq não faz
o primeiro login. Então criei na mão as mesmas, mas ele não reconhece a
senha do meu usuário de jeito nenhum, nem o usuário e senha do primeiro
Login. alguém pode me dar uma mão?

Atenciosamente,
--
Sérgio Cavalcante


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Web Service - Servidor Linux

2010-05-31 Por tôpico Magnun Oliveira
Bom dia pessoal, tenho um sistema em que necessitava de um envio de uma
solicitacao e recebimento de uma resposta pela Web.
Fazia isso por email, com Indy, depois criei um client de email, filtrava as
mensagens e processava as respostas.
Para melhorar o POG criei um WebService simples, com SOAP, ISAPI, etc ...
porem, o servidor que vou utilizar é Linux.

Como fazer isso no D7/D2010 ?

Obrigado.


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] UserControl

2010-05-31 Por tôpico Nazareno Neto
Quando usei, eu deixei as tabelas todas default, e ele crio tudo direitinho,
qual o banco que vc usa?

Em 31 de maio de 2010 10:31, sergio cavalcante
sergio.cavalca...@gmail.comescreveu:



 Pessoal, alguém já mexeu com essa suíte? Achei a idéia espetacular,
 instalei
 no Delphi 2010, mas ele não cria automaticamente as tabelas, até pq não faz
 o primeiro login. Então criei na mão as mesmas, mas ele não reconhece a
 senha do meu usuário de jeito nenhum, nem o usuário e senha do primeiro
 Login. alguém pode me dar uma mão?

 Atenciosamente,
 --
 Sérgio Cavalcante

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Nazareno Neto
Desenvolvedor Delphi e Firebird

http://www.delphisistemas.com.br
nazarenon...@delphisistemas.com.br
nazareno.nobr...@gmail.com


[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] UserControl

2010-05-31 Por tôpico sergio cavalcante
Oi Nazareno,
Obrigado pela resposta.

Firebird. Deixei elas default tbm e ele reclamou que a tabela que ele
deveria criar não existia.

Atenciosamente,
--
Sérgio Cavalcante



2010/5/31 Nazareno Neto nazareno.nobr...@gmail.com

 Quando usei, eu deixei as tabelas todas default, e ele crio tudo
 direitinho,
 qual o banco que vc usa?

 Em 31 de maio de 2010 10:31, sergio cavalcante
 sergio.cavalca...@gmail.comescreveu:

 
 
  Pessoal, alguém já mexeu com essa suíte? Achei a idéia espetacular,
  instalei
  no Delphi 2010, mas ele não cria automaticamente as tabelas, até pq não
 faz
  o primeiro login. Então criei na mão as mesmas, mas ele não reconhece a
  senha do meu usuário de jeito nenhum, nem o usuário e senha do primeiro
  Login. alguém pode me dar uma mão?
 
  Atenciosamente,
  --
  Sérgio Cavalcante
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 



 --
 Nazareno Neto
 Desenvolvedor Delphi e Firebird

 http://www.delphisistemas.com.br
 nazarenon...@delphisistemas.com.br
 nazareno.nobr...@gmail.com


 [As partes desta mensagem que não continham texto foram removidas]



 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 






[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Re: PRFWK - Framework para acesso a dados

2010-05-31 Por tôpico Paulo Coutinho
Olá,

Obrigado pelas criticas, com certeza ajudam muito.

Mas vou explicar alguns detalhes.

O framework utiliza o padrão DAO ou MODELO/GERENTE, então você não usa
diretamente componentes como ado ou dbx, você cria os modelos e o framework
se encarrega de montar baseado nas configurações do arquivo INI, embora você
até possa acessar o dbx ou ado pelo gerente, mas não recomendo.

A transparência do framework permite deixar você livre de qual componente
suar, já que estou colocando os 2 padrões do delphi, mas nada impede de você
alterar o gerente para usar o UniDac por exemplo.

Outra vantagem é você trabalhar com componentes desconectados e liberando da
memória o desnecessário, sempre criando e excluindo o objeto quando não usar
mais.

Outra vantagem é você trabalhar com objetos , utilizando padrões e definindo
uma metodologia de desenvolvimento para seus projetos, ao invés de manipular
componentes, você vai manipular objetos, como :

- cliente.nome
- mercadoria.valor
- pessoa.data_nascimento
- etc...

Os códigos não são confusos, apenas IFs para saber se o grid tem item
selecionado e depois vem:


///
gMembro := TPRFWK_Membro.Create;

gMembro.ID := 1; //substitui por um numero
gMembro := gGR_Membro.obter(gMembro) as TPRFWK_Membro;

//estou dizendo neste bloco que criei um objeto da minha classe de dominio
Membro, defini o atributo padrão ID para 1 e usei o gerente para obter
este objeto pela chave ID.

//por padrão todas os modelos do dominio possuem o atributo ID (pode ser
alterado na classe pai dos modelos)
///



if (gMembro  nil) then
begin
 gMembro.nome := edNome.Text;
  gGR_Membro.alterar(gMembro);
  gMembro.Free;
end;

carregarGrid();


//aqui estou verificando se o valor retornado para meu objeto não está nulo,
ou seja, se realmente encontrou o Membro pelo ID dele.

Em seguida defino o nome do membro como o texto do edit e uso o gerente para
alterá-lo e libero o modelo recebido da memória.



Não vi complicação. E em nenhum momento me preocupei com componentes. Essa é
a regra. Esqueça esse lance de componente, foque na orientação a objetos.


Mais uma classe útil, é usada aqui:

///
lTemp :=
MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('APLICACAO','titulo',
'');
self.Caption := lTemp;

//aqui eu estou usando uma classe do framework para obter do arquivo de
configuração o TITULO da aplicação, mas em aplicações que tenho aqui, possuo
trocentas configurações pelo INI, então ajuda bastante.

///


Mais alguma dúvida?



Em 31 de maio de 2010 09:09, Marcos Douglas m...@delfire.net escreveu:



 2010/5/30 Paulo Coutinho pa...@prsolucoes.com paulo%40prsolucoes.com:

  Alguém testou?
 
  Tem alguma sugestão?
 

 Não testei, mas vi o código.
 Se está buscando opiniões, espero que aceite as críticas construtivas
 abaixo:

 - Não entendi porque o framework é para acesso a dados. Isso já temos
 aos montes por aí.
 - Existem várias classes praticamente sem código; ou elas são
 desnecessárias ou imcompletas.
 - Na classe TPRFWK_Gerente (sugiro utilizar nomes bem menores nas
 classes e units) vc tem atributos do tipo TPRFWK_ClientDataSet e
 TPRFWK_ADODataSet. Se o framework é para acesso a dados de forma
 transparente vc não deveria amarrar a forma de conexão; nem todos
 utilizam ClientDataSet.
 - unit projeto_teste\UFrmPrincipal.pas possui códigos bem confusos:
 procedure TFrmPrincipal.alterarItem;
 begin
 if (lvItens.ItemIndex  -1) then
 begin
 gMembro := TPRFWK_Membro.Create;

 gMembro.ID := StrToInt(lvItens.Items[lvItens.ItemIndex].Caption);
 gMembro := gGR_Membro.obter(gMembro) as TPRFWK_Membro;

 if (gMembro  nil) then
 begin
 gMembro.nome := edNome.Text;
 gGR_Membro.alterar(gMembro);
 gMembro.Free;
 end;

 carregarGrid();
 end;
 end;

 procedure TFrmPrincipal.excluirItem;
 begin
 if (lvItens.ItemIndex  -1) then
 begin
 gMembro := TPRFWK_Membro.Create;

 gMembro.ID := StrToInt(lvItens.Items[lvItens.ItemIndex].Caption);
 gMembro := gGR_Membro.obter(gMembro) as TPRFWK_Membro;

 if (gMembro  nil) then
 begin
 gGR_Membro.excluir(gMembro);
 gMembro.Free;
 end;

 carregarGrid();
 end;
 end;

 procedure TFrmPrincipal.inicializar;
 var
 lTemp : String;
 begin
 //título
 lTemp :=
 MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('APLICACAO',
 'titulo', '');
 self.Caption := lTemp;

 //conexão
 //TSqlConnection ou TAdoConnection
 gConexao := TPRFWK_Conexao.Create;
 gConexao.vendorlib :=

 MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('CONEXAO',
 'vendorlib', '');
 gConexao.libraryName :=

 MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('CONEXAO',
 'libraryname', '');
 gConexao.criarConexao(

 MD_PRFWK_Utilidades.TPRFWK_Utilidades.obterInstancia().obterConfiguracao('CONEXAO',
 'driver', ''),