Unit

16/01/2006

0

Eu tenho a unit_principal

E ela tá enorme e bagunçada então queria organizar.

Queria fazer assim:

Colocar tipo unit_banco

nessa unit fica as funções do banco de dados

unit_clientes

nessa fica as funções de clientes

mas o problema é que: criei um componente e nesse componente tem a função ex: OnClick

só que essa função não consegui pegar da unit_clientes

Como faço para ela chamar a função??


Rudá

Rudá

Responder

Posts

16/01/2006

Massuda

O ideal é escrever essas units relacionadas às ´regras do negócio´ sem que elas tenham conhecimento de como é a interface com o usuário.

Por exemplo (bem genérico), uma unit relacionada com clientes não deveria ter um método relacionado com o OnClick de um botão em um form; esse tipo de relacionamento faz mais sentido estar na unit do form do que na de clientes.


Responder

18/01/2006

Rudá

O que eu quero fazer por exemplo é.

Tenho várias funções de sql

Ex:

SqlQuery();

Nela vai ser executado As query

SqlCampo();

Nela vou pegar um valor de um campo

Só que eu quero fazer uma unit para essas funções pq eu irei usar em todo o sistema ela e queria deixar separado, para ter uma melhorar organização!

Tem a unit_sql

Nessa unit vai ter

Query();
Campo();
Etc...

E em algum forme quando precissar usar a função faço o seguinte

Sql.Query();
Sql.Campo();
Etc...

Tem como fazer isso??


Responder

18/01/2006

Adriano Santos

Sim claro, basta vc criar sua unit_sql e declarar no Uses do form de cada form que vc precisar usar ex:



unit MeuFormCadastro;

...

uses
Windows, Classes....unit_sql...etc;

...


Pronto


Responder

18/01/2006

Rudá

E como ficaria minha unit para usar as funções como falei

Sql.Aqui teria todas as funções que coloquei é como se fosse
Form.AAA();


Responder

18/01/2006

Adriano Santos

Um exemplo de unit seria assim:

unit MinhaUnit;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Buttons, ExtCtrls, StdCtrls, ComCtrls, ToolWin, ImgList, DBTables, DB,
  DbGrids, ShellApi, Jpeg, XpMenu, Registry, Grids, Ambiente, Typinfo, DbCtrls;

{Minhas Constantes}
const
  C_DiaSemana: array[1..7, 1..3] of string = ((´Domingo´, ´Dom´, ´Domingo´),
    (´Segunda-Feira´, ´Seg´, ´Segunda´),
    (´Terça-Feira´, ´Ter´, ´Terça´),
    (´Quarta-Feira´, ´Qua´, ´Quarta´),
    (´Quinta-Feira´, ´Qui´, ´Quinta´),
    (´Sexta-Feira´, ´Sex´, ´Sexta´),
    (´Sábado´, ´Sab´, ´Sábado´));

  C_Mes: array[1..12, 1..2] of string = ((´Janeiro´, ´Jan´),
    (´Fevereiro´, ´Fev´),
    (´Março´, ´Mar´),
    (´Abril´, ´Abr´),
    (´Maio´, ´Mai´),
    (´Junho´, ´Jun´),
    (´Julho´, ´Jul´),
    (´Agosto´, ´Ago´),
    (´Setembro´, ´Set´),
    (´Outubro´, ´Out´),
    (´Novembro´, ´Nov´),
    (´Dezembro´, ´Dez´));

  {DONE : Ajustar os estados}
  C_UF: array[1..27, 1..2] of string = ((´São Paulo´, ´SP´),
    (´Rio de Janeiro´, ´RJ´),
    (´Minas Gerais´, ´MG´),
    (´Pernanbuco´, ´PE´),
    (´Bahia´, ´BA´),
    (´Espírito Santo´, ´ES´),
    (´Goiás´, ´GO´),
    (´Tocantins´, ´TO´),
    (´Pará´, ´PA´),
    (´Paraná´, ´PR´),
    (´Amazonas´, ´AM´),
    (´Acre´, ´AC´),
    (´Maranhão´, ´MA´),
    (´Mato Grosso´, ´MT´),
    (´Mato Grosso do Sul´, ´MS´),
    (´Piauí´, ´PI´),
    (´Paraíba´, ´PB´),
    (´Distrito Federal´, ´DF´),
    (´Rio Grande do Sul´, ´RS´),
    (´Santa Catarina´, ´SC´),
    (´Rôndonia´, ´RO´),
    (´Rorâima´, ´RR´),
    (´Alagoas´, ´AL´),
    (´Amapá´, ´AP´),
    (´Ceará´, ´CE´),
    (´Rio Grande do Norte´, ´RN´),
    (´Sergipe´, ´SE´));

  {Declaração das Minhas Funções}
function Dc_MessageDlg(Msg: string; AType: TMsgDlgType; AButtons:
  TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult = mrNone;
  Portugues: Boolean = True): Word;

{Minhas funções}

implementation

function Dc_MessageDlg(Msg: string; AType: TMsgDlgType; AButtons:
  TMsgDlgButtons; IndiceHelp: LongInt; DefButton: TMOdalResult = mrNone;
  Portugues: Boolean = True): Word;
var
  I: Integer;
  Mensagem: TForm;
begin
  Mensagem := CreateMessageDialog(Msg, AType, Abuttons);
  Mensagem.HelpContext := IndiceHelp;
  with Mensagem do
  begin
    for i := 0 to ComponentCount - 1 do
    begin
      if (Components[i] is TButton) then
      begin
        if (TButton(Components[i]).ModalResult = DefButton) then
        begin
          ActiveControl := TWincontrol(Components[i]);
        end;
      end;
    end;
    if Portugues then
    begin
      if Atype = mtConfirmation then
        Caption := ´Confirmação´
      else if AType = mtWarning then
        Caption := ´Aviso´
      else if AType = mtError then
        Caption := ´Erro´
      else if AType = mtInformation then
        Caption := ´Informação´;
    end;
  end;
  if Portugues then
  begin
    TButton(Mensagem.FindComponent(´YES´)).Caption := ´&Sim´;
    TButton(Mensagem.FindComponent(´NO´)).Caption := ´&Não´;
    TButton(Mensagem.FindComponent(´CANCEL´)).Caption := ´&Cancelar´;
    TButton(Mensagem.FindComponent(´ABORT´)).Caption := ´&Abortar´;
    TButton(Mensagem.FindComponent(´RETRY´)).Caption := ´&Repetir´;
    TButton(Mensagem.FindComponent(´IGNORE´)).Caption := ´&Ignorar´;
    TButton(Mensagem.FindComponent(´ALL´)).Caption := ´&Todos´;
    TButton(Mensagem.FindComponent(´HELP´)).Caption := ´A&juda´;
  end;
  Result := Mensagem.ShowModal;
  Mensagem.Free;
end;

end.




Responder

18/01/2006

Rudá

Fiz esse exemplo simples

unit unit_sql;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

procedure Query();

implementation

procedure Query();
begin
ShowMessage(´oi´);
end;

end.


Ai coloquei na uses do form unit_sql

E onde declaro como falei Sql. aqui vai as funções que coloquei na unit_sql???


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar