jonata 0 Denunciar post Postado Outubro 2, 2013 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
Roberto Fagundes 40 Denunciar post Postado Outubro 11, 2013 O erro da porque nessa unit não existe o componente column. o que você pode fazer é pedir um TColumnItem nos parâmetros. Compartilhar este post Link para o post Compartilhar em outros sites
Almir Bispo 2 Denunciar post Postado Outubro 12, 2013 procedure TCadPrin01.DBGTitleClick(Column: TColumn);beginseu_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
thyagoollive 2 Denunciar post Postado Outubro 16, 2013 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