Fórum Como utilizar uma função que está numa determinada UNIT ? #153008
08/04/2003
0
Amjorge
Curtir tópico
+ 0Posts
08/04/2003
Anonymous
Depois vc tem que adicionar a unit na clausula Uses do form que vc quer usar.
Até mais !!
Fabio
fabio@cnaga.com.br
Gostei + 0
08/04/2003
Amjorge
Gostei + 0
08/04/2003
Anonymous
faz parte de todo o projeto ou melhor dizendo de todas as units, quando você precisa fazer menção de uma unit por exemplo de funções, onde você tem todas suas funções e deseja usa-las em várias units e nescessário que você informe para a unit atual que a sua função esta na unit funções por exemplo, e para fazer isso você pode fazer manualmente siplesmente colocando na claúsula uses que esta no inicio de sua unit a sua unit de funções apenas digitando o nome da unit no nosso exemplo funções:
Gostei + 0
09/04/2003
Dor_poa
Gostei + 0
09/04/2003
Julienmurray
Uses MinhaUnit;
OK?
:twisted: Julien ´Murray´ :twisted:
Gostei + 0
09/04/2003
Amjorge
Uso Delphi 3, a Unit (que não é um form) está no projeto, já declarei-a tanto na interface como na implementation e não funciona. :cry:
Gostei + 0
09/04/2003
Inutaishou
Gostei + 0
09/04/2003
Silvino Cavassana
Já resolveu seu problema?
Como você está fazendo a chamada dessa função?
Gostei + 0
10/04/2003
Amjorge
unit Funcoes;
interface
Uses SysUtils;
var
TesteTeste:Integer;
implementation
// Convenção de notação de variáveis:
// Booleana, Lógica ou Sim/Não: VarBo
// Inteiro de Qualquer Tipo: VarIn
// Char, String ou Texto: VarTx
// Real de Qualquer Tipo VarRe
// Data ou Hora VarDh
// Vetor ou Matrix VarVm
// Converte o texto da Data em Data padrão SQL
function SQLData(VarTxData:String):String;
var
VarInAno, VarInMes, VarInDia : Word;
VarInPosicao: Integer;
begin
If (VarTxData = ´´) or (VarTxData = ´ ´) or (VarTxData = ´ / / ´) then
begin
Result := ´null´
end
else
begin
DecodeDate(StrToDateTime(VarTxData),VarInAno, VarInMes, VarInDia);
Result := ´#´ + IntToStr(VarInMes) + ´/´ + IntToStr(VarInDia) + ´/´ + IntToStr(VarInAno) + ´´;
end;
end;
// Converte valor booleano em booleano por extenso
function SQLSN(VarBoSimNao:Boolean):String;
begin
If (VarBoSimNao = True)
then Result := ´True´
else Result := ´False´;
end;
// Converte o texto do Número Real para Número Real padrão SQL
function SQLNumero(VarTxNumero:String):String;
var
VarInIndice:Integer;
begin
VarInIndice := Pos(´.´,VarTxNumero);
While (VarInIndice > 0) Do Delete(VarTxNumero,VarInIndice,1);
VarInIndice := Pos(´,´,VarTxNumero);
If VarInIndice > 0 then
begin
Delete(VarTxNumero, VarInIndice, 1);
Insert(´.´, VarTxNumero, VarInIndice);
end;
If VarTxNumero = ´´ then VarTxNumero := ´0.00´;
Result := VarTxNumero;
end;
// Converte número interio para SQL
function SQLNumeroInteiro(VarTxNumero:String):String;
begin
If VarTxNumero = ´´ then VarTxNumero := ´0´;
Result := VarTxNumero;
end;
// Substitui um carcter numa determinada posição do texto por outro
function Substitui(VarTxTexto, VarTxCaracter:String;VarInPosicao:Integer):String;
begin
Insert(VarTxTexto, VarTxCaracter, VarInPosicao);
Delete(VarTxTexto, VarInPosicao + 1, 1);
Result := VarTxTexto;
end;
// Elimina aspas simples e duplas para texto SQL
function SQLTexto(VarTxTexto:String):String;
type
Posicao = array [1..255] of Integer;
var
VarInPosicao : Posicao;
VarInContador, VarInContadorMax : Integer;
begin
While Pos(Chr(39), VarTxTexto) > 0 Do Substitui(VarTxTexto, ´´´, Pos(Char(39), VarTxTexto));
VarInContador := 0;
While Pos(´´´, VarTxTexto) > 0 Do
begin
VarInContador := VarInContador + 1;
VarInPosicao[VarInContador] := Pos(´´´, VarTxTexto) + (VarInContador - 1) * 3;
Delete(VarTxTexto, VarInPosicao[VarInContador], 1);
end;
VarInContadorMax := VarInContador;
VarInContador := 0;
While (VarInContador < VarInContadorMax) Do
begin
VarInContador := VarInContador + 1;
Substitui(VarTxTexto, ´´´´´, VarInPosicao[VarInContador]);
end;
Result := VarTxTexto;
end;
// Retorna o último dia do mês
function UltimoDiaMes(VarDhData:TDateTime):Integer;
var
VarInAno, VarInMes, VarInDia : Word;
begin
DecodeDate(VarDhData, VarInAno, VarInMes, VarInDia);
Case VarInMes Of
1: VarInDia := 31;
2: VarInDia := 28;
3: VarInDia := 31;
4: VarInDia := 30;
5: VarInDia := 31;
6: VarInDia := 30;
7: VarInDia := 31;
8: VarInDia := 31;
9: VarInDia := 30;
10: VarInDia := 31;
11: VarInDia := 30;
12: VarInDia := 31;
end;
If (IsLeapYear(VarInAno)) and (VarInMes = 2) then VarInDia := 29;
Result := VarInDia;
end;
end.
E ABAIXO A UNIT QUE PRECISA DA FUNÇÃO:
unit MenuPrincipal;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, DBTables, Db;
type
TFormMenuPrincipal = class(TForm)
Image1: TImage;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
BitBtn12: TBitBtn;
BitBtn13: TBitBtn;
BitBtn14: TBitBtn;
BitBtn15: TBitBtn;
BitBtn11: TBitBtn;
Database1: TDatabase;
Query1: TQuery;
Label1: TLabel;
Label2: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMenuPrincipal: TFormMenuPrincipal;
VarInGrupo : Integer;
VarTxUsuario, VarTxNome : String;
VarBoCadastro, VarBoCondominio, VarBoEditarCadastro, VarBoEditarCondominio, VarBoOperacao, VarBoOperacaoCondominio, VarBoRelatorios, VarBoRelatoriosCondominio, VarBoAdministrador:Boolean;
implementation
uses Cadastros, Senha, Funcoes;
{$R *.DFM}
procedure TFormMenuPrincipal.BitBtn1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TFormMenuPrincipal.BitBtn2Click(Sender: TObject);
begin
Application.CreateForm(TFormCadastros, FormCadastros);
FormCadastros.ShowModal;
FormCadastros.Release;
end;
procedure TFormMenuPrincipal.FormShow(Sender: TObject);
var
teste:Integer;
begin
Application.CreateForm(TFormSenha, FormSenha);
FormSenha.ShowModal;
FormSenha.Release;
[b:c5f1c5efb5] TesteTeste := UltimoDiaMes(date);<- aqui está a função[/b:c5f1c5efb5]
FormMenuPrincipal.Query1.Close;
FormMenuPrincipal.Query1.SQL.Clear;
FormMenuPrincipal.Query1.SQL.Add(´SELECT * FROM UsuariosGrupos´);
FormMenuPrincipal.Query1.SQL.Add(´WHERE Codigo = ´+IntToStr(VarInGrupo));
FormMenuPrincipal.Query1.Open;
VarBoCadastro := FormMenuPrincipal.Query1.FieldByName(´Cadastro´).AsBoolean;
VarBoCondominio := FormMenuPrincipal.Query1.FieldByName(´Condominio´).AsBoolean;
VarBoEditarCadastro := FormMenuPrincipal.Query1.FieldByName(´EditarCadastro´).AsBoolean;
VarBoEditarCondominio := FormMenuPrincipal.Query1.FieldByName(´EditarCondominio´).AsBoolean;
VarBoOperacao := FormMenuPrincipal.Query1.FieldByName(´Operacao´).AsBoolean;
VarBoOperacaoCondominio := FormMenuPrincipal.Query1.FieldByName(´OperacaoCondominio´).AsBoolean;
VarBoRelatorios := FormMenuPrincipal.Query1.FieldByName(´Relatorios´).AsBoolean;
VarBoRelatoriosCondominio := FormMenuPrincipal.Query1.FieldByName(´RelatoriosCondominio´).AsBoolean;
VarBoAdministrador := FormMenuPrincipal.Query1.FieldByName(´Administrador´).AsBoolean;
FormMenuPrincipal.Query1.Close;
FormMenuPrincipal.BitBtn2.Enabled := VarBoCadastro;
FormMenuPrincipal.BitBtn3.Enabled := VarBoOperacao;
FormMenuPrincipal.BitBtn4.Enabled := VarBoCadastro;
FormMenuPrincipal.BitBtn5.Enabled := VarBoCadastro;
FormMenuPrincipal.BitBtn6.Enabled := VarBoOperacao;
FormMenuPrincipal.BitBtn7.Enabled := VarBoOperacao;
FormMenuPrincipal.BitBtn8.Enabled := VarBoOperacao;
FormMenuPrincipal.BitBtn9.Enabled := VarBoRelatorios;
FormMenuPrincipal.BitBtn10.Enabled := VarBoCondominio;
FormMenuPrincipal.BitBtn11.Enabled := VarBoOperacaoCondominio;
FormMenuPrincipal.BitBtn12.Enabled := VarBoOperacaoCondominio;
FormMenuPrincipal.BitBtn13.Enabled := VarBoOperacaoCondominio;
FormMenuPrincipal.BitBtn14.Enabled := VarBoOperacaoCondominio;
FormMenuPrincipal.BitBtn15.Enabled := VarBoRelatoriosCondominio;
Label1.Caption := ´Usuário: ´ + VarTxNome + ´ (´+ VarTxUsuario + ´)´;
Label2.Caption := DateTimeToStr(now());
end;
end.
Gostei + 0
10/04/2003
Amjorge
FALTOU DECLARAR NA SEÇÃO INTERFACE. DESCULPEM E OBRIGADO.
:lol: :D :lol: :D :lol: :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)