terça-feira, 15 de março de 2011

Como fazer uma unit como biblioteca

COMO FAZER DCU PARA SERVIR COMO BIBLIOTECA DE FUNCOES E COMO FAZER PARA QUE OUTRO PROGRAMA ENXERGUE-AS.

PRIMEIRO:
PARA FAZER UMA UNIT DE FUNCOES, VOCÊ TEM QUE COMPILA-LA PARA GERAR A EXTENSÃO DCU. PARA FAZER COM QUE ELA VIRE UMA BIBLIOTECA DE FUNÇÕES ELA TEM QUE TER A EXTENSÃO DCU.

SEGUNDO:
VOCÊ NÃO VAI CONSEGUIR COMPILAR UMA UNIT SE ELA ESTIVER SOZINHA, ISTO PORQUE O DELPHI SÓ COMPILA PROJETOS E COMO UNIT NÃO É PROJETO A OPÇÃO DE COMPILAÇÃO NÃO ESTARÁ DISPONÍVEL. PORTANTO, ABRA UM PROJETO QUALQUER, OU MESMO CRIE UM ALEATORIO E ABRA UMA NOVA UNIT, É NESTA UNIT E NÃO A DO PROJETO QUE VOCÊ CRIARÁ TODAS AS SUAS FUNÇÕES. DEPOIS DISTO ENTÃO VOCÊ ABANDONA O FORM E SÓ VAI USAR A UNIT.

TERCEIRO:
QUANDO VOCÊ ABRIR A UNIT, ESTA VIRÁ SOMENTE COM O NOME, INTERFACE, IMPLEMENTATION E END..

EXEMPLO:
Unit unit1;
Interface
Implementation
End.

QUARTO:
PARA VOCÊ CRIAR UMA FUNÇÃO O PROCEDIMENTO É IGUAL Á UNIT COMUM, MAS PARA QUE ELA SEJA ENXERGADA POR OUTROS PROGRAMAS PRECISA SER DECLARADA ABAIXO DA INTERFACE E ABAIXO DE POSSIVEIS USES NECESSÁRIOS AS SUAS FUNÇÕES.

EXEMPLO DE UMA UNIT DE FUNÇÕES:

unit ufuncoes; //NOME DA UNIT

interface

uses // CLASSES NECESSÁRIAS ÁS FUNÇÕES ABAIXO, NAS SUAS TALVEZ PRECISE DE OUTRAS
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Dialogs, StdCtrls, Grids, DBGrids;

function data(vdata:string):boolean; // DECLARAÇÃO DAS FUNÇÕES OU PROCEDURES

procedure cor(grade:tdbgrid;color:tcolor); // PARA PODEREM SER ENXERGADAS POR OUTRAS UNITS.
// COLOQUE OS MESMOS CABEÇALHOS DA SUA FUNÇÀO

implementation // AQUI QUE VOCÊ VAI CRIAR AS SUAS FUNÇÕES, NÃO SE ESQUEÇA O QUE CRIAR AQUI, TERÁ QUE DECLARAR EM CIMA SENÃO NENHUMA OUTRA UNIT AS ENXERGARÁ.

function data(vdata:string):boolean;
begin
try
StrToDate(vdata);
data:=true;
except
MessageDlg('Data Inválida !!' , mtInformation, [mbOk], 0);
data:=false;
end;
end;

procedure cor(grade:tdbgrid;color:tcolor);
// muda a cor para preto para todas as colunas de qualquer dbgrid
var
i:integer;
numcampos:integer;
begin
numcampos:=grade.FieldCount;
{subtraio -1 aqui embaixo porque as colunas começam de zero}
for I := 0 to numcampos-1 do // COLOCA AS 23 COLUNAS COM COR PRETA
grade.columns[i].font.color:=color;
end;
end.
 
QUINTO:
PARA QUALQUER UNIT ENXERGAR ESTAS DUAS FUNÇÕES ACIMA, É NECESSÁRIO QUE VOCÊ COLOQUE ESTA UNIT NO DIRETORIO DO SEU PROGRAMA QUE VAI UTILIZÁ-LA E DEPOIS É SÓ COLOCÁ-LA NA USES DA UNIT QUE FARÁ O USO DAS MESMAS. APÓS ISTO É SÓ CHAMAR AS FUNÇÕES QUE NELA CONSTEM QUE FUNCIONARÃO PERFEITAMENTE, INCLUSIVE PODEM SER DEBUGADAS, O DEBUG ENTRARÁ NA UNIT DAS FUNÇÕES SE VOCÊ FOR TECLANDO F7.

Nenhum comentário:

Postar um comentário