Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Inicializar componentes propios (https://www.clubdelphi.com/foros/showthread.php?t=34537)

jzginez 12-08-2006 20:24:50

Inicializar componentes propios
 
Hola amigos hace ya vastante tiempo uno de los master de este foro (desafortunadamente no recuerdo quien) en un tema proporcionaba un programa y el código de como cambiar combobox para hacer que te mostrara varias columnos y te regresara el valor que se localizaba en x columna el proyecto se llama pcombobox, esto es como simple historia y por si alguien mas lo recuerda.

El caso es que en lo personal me gusto mucho esos cambios y como lo he usado en varios sistemas, hoy que tengo un poco de tiempo lo modifique lo suficiente para hacerlo un componente, la declaración me quedo como sigue:
Código Delphi [-]
type
  arreglos = array of String;
  TComboBoxMultiple = class(TComboBox)
  private
    { Private declarations }
    ColMostrar,
    ColAlmacenar: Integer;
    Resultados: arreglos;
    procedure DrawTxt(S: string; ARect: TRect);
    function GetField(S: string; FieldIndex: integer; Delimiter: Char): string;
  protected
    { Protected declarations }
    procedure DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
  public
    { Public declarations }
    constructor Create(AOwner : TComponent); override;    {Constructor}
    destructor Destroy; override;                         {Destructor}
    Procedure EscribeColAlmacenar(Valor: Integer);
    Procedure EscribeColMostrar(Valor: Integer);
    Function LeeResultados: Arreglos;
  published
    { Published declarations }
     property ColumnaAlmacenar: Integer read ColAlmacenar write EscribeColAlmacenar default 1;
     property ColumnaMostrar: Integer read ColMostrar write EscribeColMostrar default 1;
     Property Valores: arreglos read LeeResultados;
  end;

el componente funciona, el problema es que cuando quiero usar este componente y lo coloco en alguna forma las propiedades ColumnaAlmacenar y ColumnaMostrar en el inspector de propiedades estan en 0 cuando segun yo deberian de ser 1 y si las cambio en el mismo inspector de propiedades no hacen lo que deberian de hacer pero si las cambio por código si funcionan bien.

alguien podra saber que esta pasando, Gracias

Héctor Randolph 13-08-2006 06:31:14

En el constructor inicializa los campos para forzar a que tengan los valores que has puesto como default.

Código Delphi [-]
constructor TComboBoxMultipleCreate.(AOwner : TComponent); 
begin
  .
  .
  .
  ColMostrar:=1;
  ColAlmacenar:=1;
  . 
  . 
end;

Saludos


La franja horaria es GMT +2. Ahora son las 16:57:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi