Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 23-01-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 24
marto Va por buen camino
Cita:
Empezado por Al González
Quizás el destructor heredado está siendo ejecutado antes de tiempo.
No lo sé, pero como podrás ver en el código al final, yo no lo llamo (por lo menos intencionadamente)

Cita:
Empezado por Al González
En realidad es TCustomComboBox, la clase padre de TComboBox (Delphi 6), quien normalmente instancía y destruye la propiedad Items.
Correcto, error mío

Cita:
Empezado por Al González
Quizás estás destruyendo esa propiedad en otro lugar o modificaste su método de lectura.
El método de lectura no se módifica e Items no se destruye

Cita:
Empezado por Al González
Pudiera ser que algún evento esté disparando una llamada al método SetFocus del control, lo cual causa la excepción mencionada si éste no tiene contenedor padre.
No le programo ningún evento, tansolo lo instancio y ejecuto

Cita:
Empezado por Al González
Por último debo agregar que el término sobrecarga se aplica más bien a los casos donde el compilador determina....
Buena correccíon, se me cruzaron los conceptos

Cita:
Empezado por Al González
De cualquier forma te agradecería que detallaras un poco más este caso.
Ok, te paso el código del componente, no es nada secreto y es muyyyyy sencillo:
Código:
unit NxAuxCombo;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, 
  StdCtrls, NxAuxiliar, Dialogs;

type
  TNxAuxCombo = class(TComboBox)
  private
    FOwnObjects: Boolean;
    function GetSelectedObject: TNxAuxiliar;
    procedure SetOwnObjects(const Value: Boolean);
  protected
  public
    property SelectedObject: TNxAuxiliar 
    				read GetSelectedObject;
    property OwnObjects: Boolean 
    				read FOwnObjects 
    				write SetOwnObjects;

    procedure Carrega(List: TStringList);
    procedure Clear; override;

    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Nex', [TNxAuxCombo]);
end;

{ TNxAuxCombo }

procedure TNxAuxCombo.Carrega(List: TStringList);
var
  i: Integer;
begin
  for i := 0 to List.Count -1 do
    Items.AddObject(List[i], List.Objects[i]);
end;


procedure TNxAuxCombo.Clear;
var
  i: Integer;
begin
  if FOwnObjects then
  begin
    for i := 0 to Items.Count - 1 do
      if Items.Objects[i] <> Nil then
        try Items.Objects[i].Free; except end;
  end;
  inherited;
end;

constructor TNxAuxCombo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FOwnObjects := true;
  Style := csDropDownList;

end;

destructor TNxAuxCombo.Destroy;
var
  i: Integer;
begin
  if FOwnObjects then
  begin
    for i := 0 to Items.Count - 1 do
      if Items.Objects[i] <> Nil then
        try Items.Objects[i].Free; except end;
  end;

  inherited;
end;

function TNxAuxCombo.GetSelectedObject: TNxAuxiliar;
begin
  if Items.Objects[ItemIndex] is TNxAuxiliar then 
    Result := TNxAuxiliar(Items.Objects[ItemIndex])
  else Result := Nil;
end;

procedure TNxAuxCombo.SetOwnObjects(const Value: Boolean);
begin
  FOwnObjects := Value;
end;

end.
__________________
E pur si muove

Última edición por marto fecha: 23-01-2004 a las 20:51:32.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:48:30.


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
Copyright 1996-2007 Club Delphi