Criacao de Componentes - Default propriedade

Delphi

29/11/2004

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


Gustavo M

Gustavo M

Curtidas 0

Respostas

Tinorj

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:

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

Gustavo M

29/11/2004

Mas no caso vou modificar uma propriedade do tipo ancestral, onde declaro a propriedade? utilizo override?


GOSTEI 0
Michaell

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


GOSTEI 0
Paulo_amorim

Paulo_amorim

29/11/2004

Olá

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
POSTAR