Ir para conteúdo
Fórum Script Brasil
  • 0

Estou Criando Um Componente E Esta Dando Erro


Guest - Douglas -

Pergunta

Guest - Douglas -

Seguinte galera... eu estou criando um componente erdando o componente TQuery, estou criando uma função dentro dele para gerar arquivos em excel... mais o q acontece é o seguinte eu criei um propriedade chamada Titulos no componente onde vão ser inseridos os titulos das colunas do excel... ele compila normal mais quando eu coloco ele num form e vou nas propriedades e clico na propriedade Titulos da esse erro ...

Cannot assing a nil to a TRichEditStrings

o código é esse

unit QueryExc;

interface

uses

SysUtils, Classes, DB, DBTables;

type

TQueryExc = class(TQuery)

private

{ Private declarations }

sTitulos : TStrings;

procedure SetQueryExc(Value: TStrings);

protected

{ Protected declarations }

public

TitulosExcel : TStringList;

procedure GeraExcel(sCaminhoArquivo: string);

constructor Create(AOwner: TComponent);

published

{ Published declarations }

property Titulos: TStrings read sTitulos write sTitulos;

end;

procedure Register;

implementation

procedure Register;

begin

RegisterComponents('Samples', [TQueryExc]);

end;

{ TQueryExc }

constructor TQueryExc.Create(AOwner: TComponent);

begin

inherited Create(AOwner);

sTitulos := TStringList.Create;

end;

procedure TQueryExc.GeraExcel(sCaminhoArquivo: string);

begin

//alskjdlkasjdklj

end;

procedure TQueryExc.SetQueryExc(Value: TStrings);

begin

if Titulos.Text <> Value.Text then

begin

Disconnect;

Titulos.BeginUpdate;

try

Titulos.Assign(Value);

finally

Titulos.EndUpdate;

end;

end;

end;

end.

Alguém pode me judar... essas informação que tem ai eu fiz igual a propriedade SQL do componente TQuery...

Valeu

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

fiz alguns testes até verificar que você não adicionou a cláusula override ao método Create.

...
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;
...
  destructor TQueryExc.Destroy; 
  begin
    sTitulos.Free;
    inherited;
  end;
...

Dicas:

1) preferencialmente, ao atualizar uma propriedade dento do código do objeto, utilize a variável e não a propriedade publicada. Ex. no método SetQueryExc, utilize sTitulos ao invés de Titulos;

2) não esqueça de "destruir" todo objeto que você possa ter criado para seu componente;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...