criar uma unit com todas as suas rotinas

Delphi

09/09/2006

Como posso criar uma unit com todas as minhas rotinas???

Como devo chamar essa unit e como executar os procedimentos de outro formulario?

obrigado!


Souzaaguiar

Souzaaguiar

Curtidas 0

Respostas

Marco Salles

Marco Salles

09/09/2006

[b:5eceba5202]o certo é voce ter para cada classe uma Unit[/b:5eceba5202]

Quando voce tem Modulos , o certo é agrupar esses modulos em Units
seguindo algum criterio

Por exempo ..Modulos que tratam String ; Modulos que Tratam Horas ,
Modulos de funçoes matemáticas , Modulos de Impressão , Modulo de Arquivos , Modulo de validaçoes etc...

Como devo chamar essa unit e como executar os procedimentos de outro formulario?


o nome desta Unit deve ser o mais sugestivo o possivel , o mesmo vale para as classes e Modulos (Funçoes/Procedres) que voce criar...

[b:5eceba5202]Voce pode colocar tudo em Uma Pasta e colocar esta pasta no Library Path do delphi[/b:5eceba5202]

Por exemplo, você pode ter um diretório chamado c:\comum com tudo que é comum aos projetos e incluir esse diretório no Library Path.

no meu caso eu coloquei em :

C:\Arquivos de programas\Borland\Delphi7\Lib


Outra coisa... não copie o DCU se você tiver o PAS; é melhor deixar o PAS acessível ao seu projeto do que o DCU, pois se você modificar o PAS, basta recompilar os projetos que utilizam essa unit, sem precisar lembrar de ficar copiando o DCU de um lugar para outro.


Para chamar esta Unit no delphi basta colocar o Nome da Unit <que ja deve estatr instalada no Pacth do delphi> [b:5eceba5202]na uses da secção interface ou na uses da secção implementation[/b:5eceba5202]

Agora se sua intenção é somente ter uma unit com algumas funçoes que não serão usadas no futuro , basta criar um unit no projeto , salva-la [b:5eceba5202]e novamente , acessar esta unit na Secção Uses <interface ou Implementation> do formulario em questão[/b:5eceba5202]

Espero ter sido claro e ter contribuido com algo


GOSTEI 0
Marco Salles

Marco Salles

09/09/2006

Oi marcos, tudo certo? nao sei onde deixar uma mensagem informando q a dica deu certo mas sua resposta ajudou mt..


No Botao Responder

criei essa unit abaixo q habilita o botao inserir. Isso tah correto??? E como posso chamar em outro formulario esse procedimento? eu so iniciante dai essas perguntas idiotas.Obrigado!!! unit UfrmProcedimentos; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, DB, Grids, DBGrids; type TFrmProcedimentos = class(TForm) bbtInserir: TBitBtn; private { Private declarations } public procedure TrataBotoes; { Public declarations } end; implementation procedure TfrmProcedimentos.TrataBotoes; begin bbtInserir.Enabled := not bbtInserir.Enabled; end; end.



GOSTEI 0
Marco Salles

Marco Salles

09/09/2006

melhor dar um exemplo:

objetivo : sempre que clicar nun botão desabilitar o proprio botao

idéia: Criar um metodo que deve poder ser aplicado em todos os formulários

saida:
Escrever uma Unit

unit Unit2;

interface

uses
StdCtrls,dialogs;

procedure Desabilitar(sender:Tobject); //todo que esta qui é invisivel

implementation

//tudo aqui é visivel

procedure Desabilitar(sender:Tobject);
begin
if sender is Tbutton Then
 begin
   showmessage(´voce clicou em um Bottao´);
   Tbutton(sender).enabled:=false;
 end
else
 showmessage(´voce não clicou em um bottao´)
end;

end.


Para testar crie uma aplicação e adicione a Unit2
no formulario coloque um botao e um edit e no evento onclick dos dois chame o método

procedure TForm1.Button2Click(Sender: TObject);
begin
desabilitar(sender);
end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
desabilitar(sender);
end;


[b:77b6cec870]Mas para chamar o metodo a unit 2 tem que estar declarada imediatamente apos a secção Implementation do formulário[/b:77b6cec870]


GOSTEI 0
Marco Salles

Marco Salles

09/09/2006

so corrigindo :

[b:e9da206a37]a parte visivel é refernte a interface e a parte invisivel e referente a Implementatio... No modelo anterior escrevi de maneira inversa[/b:e9da206a37]


GOSTEI 0
POSTAR