Problemas com criacao de componentes...
Olá galera..
Estou tentando criar um componentes pela primeira vez para facilitar algumas funcoes que sempre utilizo.
estou tentand criar um componente derivado do TStringGrid que execute alguns comandos nos eventos. Naum quero criar evento propriedades.. soh quero executar alguns comandos por exemplo no OnSelectCell, ou no On KeyPress do StringGrid..
No codigo que montei o evento KeyPress esta funcionando belezinha!!!
Agora preciso executar comandos tb no OnGetEditMask. Qdo coloco a funcao no secao PROTECTED. me retorna a seguinte mensagem de [b:de46cfb4b2]erro [/b:de46cfb4b2]:
[color=red:de46cfb4b2]Declaration of ´GetEditMask´ differs from previuos declaration.[/color:de46cfb4b2]
O que to fazendo de errado????
Segue o codigo abaixo
Valew galera
Abracos
Gustavo
Estou tentando criar um componentes pela primeira vez para facilitar algumas funcoes que sempre utilizo.
estou tentand criar um componente derivado do TStringGrid que execute alguns comandos nos eventos. Naum quero criar evento propriedades.. soh quero executar alguns comandos por exemplo no OnSelectCell, ou no On KeyPress do StringGrid..
No codigo que montei o evento KeyPress esta funcionando belezinha!!!
Agora preciso executar comandos tb no OnGetEditMask. Qdo coloco a funcao no secao PROTECTED. me retorna a seguinte mensagem de [b:de46cfb4b2]erro [/b:de46cfb4b2]:
[color=red:de46cfb4b2]Declaration of ´GetEditMask´ differs from previuos declaration.[/color:de46cfb4b2]
O que to fazendo de errado????
Segue o codigo abaixo
Valew galera
Abracos
Gustavo
unit StringGridAcesso;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids,Mask;
type
TCellsType = (ctNone, ctInteger, ctNumeric, ctDate, ctString);
TStringGridColItens = record
ColType : TCellsType;
MaxLen : Integer;
MaskEdit : String;
CanSelect : Boolean;
end;
TStringGridColDetail = array [0..9999] of TStringGridColItens;
TStringGridAcesso = class(TStringGrid)
private
{ Private declarations }
protected
{ Protected declarations }
procedure KeyPress(var Key: Char); override;
******* O ERRO ESTA AQUI ******************
procedure GetEditMask(ACol, ARow: Longint; var Value: String); ******* O ERRO ESTA AQUI ******************
override;
public
{ Public declarations }
ColDetails: TStringGridColDetail;
constructor Create (AOwner : TComponent); Override;
destructor Destroy; override;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents(´Novos´, [TStringGridAcesso]);
end;
constructor TStringGridAcesso.Create(AOwner: TComponent);
var FCont:integer;
begin
inherited;
for FCont:=0 to 9999 do
begin
ColDetails[FCont].CanSelect := True;
ColDetails[FCont].ColType := ctNone;
ColDetails[FCont].MaskEdit := ´´;
ColDetails[FCont].MaxLen := 0;
end;
end;
destructor TStringGridAcesso.Destroy;
begin
inherited;
end;
procedure TStringGridAcesso.GetEditMask(ACol, ARow: Longint; var Value: String);
begin
{mask cell se for do tipo Tdate}
case ColDetails[Col].ColType of
ctDate : Value := ´!99/99/0000;1; ´;
end;
end;
procedure TStringGridAcesso.KeyPress(var Key: Char);
begin
{Filtrar digitacao de acordo com o tipo do campo}
case ColDetails[Col].ColType of
ctDate,ctInteger : if (key in [´0´..´9´,8,13]) then Key := Key
else Key := 0;
ctNumeric : if (key in [´0´..´9´,´,´,8,13]) then Key := Key
else Key := 0;
ctNone,ctString : Key := Key;
end;
{limitar digitacao dos campos}
if not (key in [8, 13]) then
if (ColDetails[Col].MaxLen > 0) and
(Length(Cells[Col,Row]) > ColDetails[Col].MaxLen) then
key := 0;
inherited;
end;
end.Gustavo M
Curtidas 0
Respostas
Massuda
16/11/2004
O problema é que a classe TStringGrid já possui uma [b:354281ba9c]função[/b:354281ba9c] de nome GetEditMask, declarada como
Mude sua procedure GetEditText para uma função conforme a declaração acima.
TStringGrid = class(... function GetEditText(ACol, ARow: Longint): string; override; ...
Mude sua procedure GetEditText para uma função conforme a declaração acima.
GOSTEI 0
Paulo_amorim
16/11/2004
Olá
O problema ocorre pois o evento OnGetEditMask eh do tipo TGetEditEvent...
No caso, vc se esqueceu do parâmetro
Espero que ajude
Até+
O problema ocorre pois o evento OnGetEditMask eh do tipo TGetEditEvent...
type TGetEditEvent = procedure (Sender: TObject; ACol, ARow: Longint; var Value: String) of object;
No caso, vc se esqueceu do parâmetro
Sender: TObject
Espero que ajude
Até+
GOSTEI 0