Criacao de Componentes - Default propriedade
Ola amigos programadores..
estou tentando montar um componente com algumas funcoes que sempre utilizo.. O componente eh derivado do TStringGrid. Gostaria de saber como modifico o default da propriedade ColCount de maneira que qdo inserir o componente o padrao seja sempre ColCount = 1??
Segue o inicio do codigo do componente,
valew galera.
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;
isRequered : Boolean;
end;
TStringGridColDetail = array [0..9999] of TStringGridColItens;
TStringGridAcesso = class(TStringGrid)
private
{ Private declarations }
LastCol,LastRow : Integer;
btBloqRow : Boolean;
function ValidaCell(ACol, ARow:Integer) : boolean; virtual;
function RowIsNull(nrRow:Integer):Boolean;
Function UMaskEdit (EditMask:String):String;
procedure DelRow(var delRow:Integer);
function ValidaRow(aRow:Integer; var aColErr: integer) : boolean;
protected
{ Protected declarations }
procedure KeyPress(var Key: Char); override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure DoEnter; override;
procedure DoExit; override;
function GetEditMask(ACol, ARow: Longint): string; override;
function SelectCell(ACol, ARow: Longint): Boolean; override;
public
{ Public declarations }
ColDetails: TStringGridColDetail;
constructor Create (AOwner : TComponent); Override;
destructor Destroy; override;
published
{ Published declarations }
end;
procedure Register;
implementation
estou tentando montar um componente com algumas funcoes que sempre utilizo.. O componente eh derivado do TStringGrid. Gostaria de saber como modifico o default da propriedade ColCount de maneira que qdo inserir o componente o padrao seja sempre ColCount = 1??
Segue o inicio do codigo do componente,
valew galera.
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;
isRequered : Boolean;
end;
TStringGridColDetail = array [0..9999] of TStringGridColItens;
TStringGridAcesso = class(TStringGrid)
private
{ Private declarations }
LastCol,LastRow : Integer;
btBloqRow : Boolean;
function ValidaCell(ACol, ARow:Integer) : boolean; virtual;
function RowIsNull(nrRow:Integer):Boolean;
Function UMaskEdit (EditMask:String):String;
procedure DelRow(var delRow:Integer);
function ValidaRow(aRow:Integer; var aColErr: integer) : boolean;
protected
{ Protected declarations }
procedure KeyPress(var Key: Char); override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure DoEnter; override;
procedure DoExit; override;
function GetEditMask(ACol, ARow: Longint): string; override;
function SelectCell(ACol, ARow: Longint): Boolean; override;
public
{ Public declarations }
ColDetails: TStringGridColDetail;
constructor Create (AOwner : TComponent); Override;
destructor Destroy; override;
published
{ Published declarations }
end;
procedure Register;
implementation
Gustavo M
Curtidas 0
Respostas
Tinorj
29/11/2004
Eu não li seu código, mas vou responder sua pergunta. Para você colocar valores default em variáveis, propriedades e etc, crie um construtor para seu componente:
Espero ter ajudado.
type
TNovoComponente = class(TComponent)
...
constructor Create;
{ Você deverá colocar os mesmos parametos da class ancestral }
...
constructor Create;
begin
inherited;
{... Aqui você coloca os valores default ...}
end;
...Espero ter ajudado.
GOSTEI 0
Gustavo M
29/11/2004
Mas no caso vou modificar uma propriedade do tipo ancestral, onde declaro a propriedade? utilizo override?
GOSTEI 0
Michaell
29/11/2004
[quote:3ac0a653e0=´Gustavo M´]Mas no caso vou modificar uma propriedade do tipo ancestral, onde declaro a propriedade? utilizo override?[/quote:3ac0a653e0]
Colega,
No construtor do seu Componente descendente de ´TStringGrid´ sete o valor ´default´ da propriedade ColCount.
[]´s
Colega,
No construtor do seu Componente descendente de ´TStringGrid´ sete o valor ´default´ da propriedade ColCount.
[]´s
GOSTEI 0
Paulo_amorim
29/11/2004
Olá
O que o Michael quis dizer deve ser algo como:
Assim ele irá pegar a propriedade ColCount do seu componente e alterá-la para 1...
Espero que ajude
Até+
O que o Michael quis dizer deve ser algo como:
interface constructor Create(AOwner: TComponent); override; (...) implementation constructor Create(AOwner: TComponent); begin inherited Create(AOwner); ColCount := 1; end;
Assim ele irá pegar a propriedade ColCount do seu componente e alterá-la para 1...
Espero que ajude
Até+
GOSTEI 0