Demian Lessa 

Obrigado pela atenção, é assim...

Tenho penas um form e uso nele vários ScrollBox e em cada ScrollBox, os edits 
para cadastrar seus respectivos dados.

São umas 10 tabelas com uma média de 30 campos cada e usando os fontes que 
pretendo, irá ficar grande para apenas um form, além de pesado.

Então pensei em usar uma nova unit ligando-a ao projeto de forma indireta, 
porém, não sei como proceder, travei nessa parte.

 


Demian Lessa <[EMAIL PROTECTED]> wrote:
Rafael,

Não quero entrar em sua semana, mas por que você está separando 
fisicamente uma rotina que deveria estar no próprio formulátio de 
contatos em primeiro lugar? Talvez você esteja com a idéia correta mas 
não esteja enxergando claramente a forma de implementá-la.

Veja só, se você irá separar código em uma outra unidade (Application | 
New... | Unit) então o código dessa unidade deverá ser tão independente 
do restante de seu código quanto possível, caso contrário, um pesadelo o 
espera na hora da manutenção. No seu exemplo particular, você deveria 
usar algo como:

procedure CadastraContatos(const Nome, Endereco, Cidade: string);
begin
   TbContatos.Insert;
   TbContatos.FieldByName('nome').asstring:= Nome;
   TbContatos.FieldByName('endereco').asstring:= Endereco;
   TbContatos.FieldByName('cidade').asstring:= Cidade;
   TbContatos.Post;
end;

Só que você ainda tem mais problemas com essa rotina. Em primeiro lugar, 
a tabela. Ela é uma variável global de sua unidade? ou da seção de 
implementação? Além do mais, em geral, não é indicado deixar tabelas 
abertas. Você pode usar uma abordagem menos otimista:

procedure CadastraContatos(const Nome, Endereco, Cidade: string);
begin
   qyContatos.ParamByName('nome').asstring:= Nome;
   qyContatos.ParamByName('endereco').asstring:= Endereco;
   qyContatos.ParamByName('cidade').asstring:= Cidade;
   qyContatos.ExecSQL;
end;

Onde qyContatos seria uma referência local à query de inclusão de novos 
contatos. No seu caso, talvez seja mais útil usar um DataModule global. 
Qualquer que seja o caso, acho que você precisa dar uma lida nas coisas 
mais básicas como a anatomia de uma unidade, interface, implementation, etc.

Na unit que você criou, para ter acesso às rotinas definidas, faça assim:

unit demo;

interface

uses ...;

procedure <nome1>;
procedure <nome2>;

implementation

uses ...;

procedure <nome1>;
begin
end;

procedure <nome2>;
begin
end;

end.

E, nas unidades que precisarem acessar as procedures nome1 e nome2, 
basta acrescentar a unit demo na cláusula uses.

Cordialmente,

Demian Lessa
Salvador - Brasil
Rafael Souza wrote:
> Fala Gente!
>  
> Seguinte:
> Quero criar uma Unit que armazenará minhas procedures e functions para
> que meu código não fique grande demais no projeto principal.
> Por exemplo, uma unit chamada funcoes, armazenará o seguinte:
> procedure CadastraContatos (Sender: TObject);
> begin
>      TbContatos.Insert;
>      TbContatos.FieldByName('nome').asstring:= fmContatosMan.edNome.text;
>      TbContatos.FieldByName('endereco').asstring:= 
> fmContatosMan.edEndereco.text;
>      TbContatos.FieldByName('cidade').asstring:= fmContatosMan.edcidade.text;
>      TbContatos.Post;
> end;
> E no projeto, um Button chamará o código para gravar os dados na tabela.
>  
> Como posso fazer isso?
> Alguma boa alma pode me ajudar?
>  
> Muito Obrigado
>  
> .Rafael Souza.


-- 
<<<<< 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:
[EMAIL PROTECTED] ou [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:



















                                       function SearchComboBox() { if 
(document.form_combo.keyword.value.length==0){  alert("Por favor, digite 
algo.");  return false; }else {  document.form_combo.action 
="http://br.rd.yahoo.com/SIG=12a7bjbv0/M=264105.3931087.6562589.1588051/D=brclubs/S=2137111264:HM/EXP=1109438893/A=2361264/R=0/SIG=11uaou2jn/*http://www.bondfaro.com/bondfaro/in/combosearch_in.jsp?sk=11";;
 } return true;} [input]   [input]   [input]  

---------------------------------
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:
[EMAIL PROTECTED]
  
   O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do 
Yahoo!. 


__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger 
http://br.download.yahoo.com/messenger/ 

[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:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
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:
    [EMAIL PROTECTED]

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

 



Responder a