Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jonata

biblioteca UNIT de Funções

Recommended Posts

pessoal estou montando um form padrao pra minha aplicação e nele tem um DRGRID que ao clicar no title de uma coluna o nome vai pra um campo edit...para filtrar os dados da pesquisa...

 

bem só que como é uma PROCEDURE que vou utilizar em vários forms...criei um UNIT que serve como biblioteca de funções excenciais...

 

então fica assim:

 

FORM

-----------------------------------------------------------

unit uCadPadrao01;

 

{$mode objfpc}{$H+}

 

interface

 

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, DBGrids,uCollection,uDM;

 

type

 

{ TCadPrin01 }

 

TCadPrin01 = class(TForm)

DBG: TDBGrid;

procedure DBGTitleClick(Column: TColumn);

private

{ private declarations }

public

{ public declarations }

end;

 

var

CadPrin01: TCadPrin01;

nomeForm:string;

 

implementation

 

{$R *.lfm}

 

{ TCadPrin01 }

 

procedure TCadPrin01.DBGTitleClick(Column: TColumn);

var nome, legenda:string;

begin

FiltroPesq("nada_a_declarar");

end;

 

 

biblioteca

-----------------------------------------------------------

 

unit uCollection;

 

{$mode objfpc}{$H+}

 

interface

 

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, DBGrids;

function FiltroPesq(FormName:string):string;

 

 

implementation

 

function FiltroPesq(FormName:string):string;

var nome,legenda:string;

begin

 

nome:=Column.FieldName;

legenda:=Column.Title.Caption;

MessageShow(nome+legenda);

 

end;

end.

 

só que dá o seginte erro na UINT Colletion:

 

ucollection.pas(17,16) Error: Identifier not found "Column"

 

alguém tem uma luz?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TCadPrin01.DBGTitleClick(Column: TColumn);
begin
seu_edit_tal.text:=dbgrid.colunm[item valor inteiro].title.caption;
end;

 

 

//chama assim;

DBGtitle.Click;

 

Precisa apenas declarar como publica no form principal e chamar referenciando o form do procedimento:

meu-form-tal.DBGtitle.Click;//o form principal

Compartilhar este post


Link para o post
Compartilhar em outros sites

jonata.

 

Na function FiltroPesq não foi declarada o componente Column conforme o Roberto Fagundes citou. Porém não é TColumnItem :upset:

Altere sua function para receber desta forma:

function FiltroPesq(FormName:string; Collumn: TCollumn):string;
  var nome,legenda:string;
begin
  nome:= Column.FieldName;
  legenda:= Column.Title.Caption;
  MessageShow(nome+legenda);
  Result := '??? -> o que você pretende com function';
end;

E na chamada fica: FiltroPesq("nada_a_declarar", Collumn);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.