Criação de classe.

Delphi

11/01/2007

Qria criar uma unit q fosse ponto para msg dentro da aplicação. para passar flags de uma unit para outra ..... então a intenção seria d criar uma unit q instanciasse um objeto para toda a aplicação.

unit UMensagens;

interface
type
TMsgDoSistema=class(TObject)
constructor create;
destructor Destroy;
private
fMsgCriaOuImporta: String;
public
property MsgCriaOuImporta:String read fMsgCriaOuImporta write fMsgCriaOuImporta;
end;

var
MsgSis: TMsgDoSistema;

implementation

uses SysUtils;
{ TMsgDoSistema }

constructor TMsgDoSistema.Create;
begin
inherited Create;
end;

destructor TMsgDoSistema.Destroy;
begin
end;
end.

1º Gera um erro qdo chamo. O q ha de errado?
procedure TFCadastroDeFormMain.FormShow(Sender: TObject);
begin
MsgSis.Create;
end;

??

2º Se eu chamar do modulo principal posso ver a property dele em toda a aplicação?


Host

Host

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

11/01/2007

Colega,

Creio que sua idéia não está de acordo com as boas práticas de programação. Entretanto, para corrigir o problema atual, faça:

Unit da classe:

interface
type
TMsgDoSistema=class(TObject)
private
fMsgCriaOuImporta: String;
public
constructor create;
destructor Destroy;
property MsgCriaOuImporta:String read fMsgCriaOuImporta write fMsgCriaOuImporta;
end;

implementation

uses SysUtils;
{ TMsgDoSistema }

constructor TMsgDoSistema.Create;
begin
inherited Create;
end;

destructor TMsgDoSistema.Destroy;
begin
end;
end.


No OnShow do formulário:

var Mensagem: TMsgDoSistema;
begin
  Mensagem := TMsgDoSistema.create;

  Mensagem.MsgCriaOuImporta := ´MDA - Marrado de arame´;

  FreeAndNil(Mensagem);
end;



GOSTEI 0
Host

Host

11/01/2007

So podia ser o Zanella mesmo ... grande Zanella o q deste forum sem ti.


GOSTEI 0
Massuda

Massuda

11/01/2007

Não entendi o que seria essa ´unit q fosse ponto para msg dentro da aplicação´... não seria mais simples usar variáveis globais?
unit BlaBlaBla;

interface

var
  StringQueRecebeAlgo: string;

implementation

end.



GOSTEI 0
POSTAR