Square Study Of Math

Study Of Math Discover Studyofmath R Study Of Math T Study Of Math Study Of Math Szh Category Intermediate Subject Math Chap 2 Subject Math Exercise 2 4 Study Of Math ActiveDelphi ::xibir tópico - [Resolvido] Erro: Control '' has no parent Windows

Study Of Math Discover Studyofmath R Study Of Math T Study Of Math Study Of Math Szh Category Intermediate Subject Math Chap 2 Subject Math Exercise 2 4 Study Of Math

lucas_alves
Colaborador



Registrado: Domingo, 30 de Agosto de 2009
Mensagens: 1630
Localização: São Gonçalo - Rio de Janeiro

Enviada: Qui Jan 27, 2011 4:03 pm    Assunto:

O componente estava funcionando, mais depois começou a dar esse erro!

Deve ser apenas um pequeno detalhe que eu tenha mexido e está provocando esse erro toda vez que eu insiro este componente no Form!

Abraços!!!
_________________
Agora eu também programo em PHP.
Voltar ao Topo
lucas_alves
Colaborador



Registrado: Domingo, 30 de Agosto de 2009
Mensagens: 1630
Localização: São Gonçalo - Rio de Janeiro

Enviada: Sex Jan 28, 2011 10:07 am    Assunto:

Pra Cima!
_________________
Agora eu também programo em PHP.
Voltar ao Topo
adriano_servitec
Colaborador



Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 14299
Localização: Curitiba-PR

Enviada: Sex Jan 28, 2011 10:12 am    Assunto:

Lucas, eu acho não tenho certeza, que vc esqueceou decriar o componente, no create do componente.

Exemplo

Código:
Componente := TObjeto.Create(Self); //Ou seu parente se for um container.


Código:
with componente do
beginb
  Parent := Self;
  //ou
  Parent           := TWinControl(AOwner);
end;

_________________
Voltar ao Topo
lucas_alves
Colaborador



Registrado: Domingo, 30 de Agosto de 2009
Mensagens: 1630
Localização: São Gonçalo - Rio de Janeiro

Enviada: Sex Jan 28, 2011 9:19 pm    Assunto:

adriano_servitec escreveu:
Lucas, eu acho não tenho certeza, que vc esqueceou decriar o componente, no create do componente.

Exemplo

Código:
Componente := TObjeto.Create(Self); //Ou seu parente se for um container.


Código:
with componente do
beginb
  Parent := Self;
  //ou
  Parent           := TWinControl(AOwner);
end;


Obrigado por responder!

Não era esse o problema, tentei fazer dos dois modos acima porém deu erro de incompatibilidade!

Abraços!!!
_________________
Agora eu também programo em PHP.
Voltar ao Topo
lucas_alves
Colaborador



Registrado: Domingo, 30 de Agosto de 2009
Mensagens: 1630
Localização: São Gonçalo - Rio de Janeiro

Enviada: Sex Jan 28, 2011 10:06 pm    Assunto:

pessoal, conseguir resolver! faltou um "SetParentComponent(AOwner);" no evento OnCreate!

Ficou assim:
Código:

unit ComboIndex;

interface

uses
  SysUtils, Classes, {Dialogs,Windows,Messages,} Controls, StdCtrls,db,DBCtrls;

type
  TDBComboBoxIndex = class(TComboBox)
  private
    FItemDefault : Integer;
    FDataLink : TFieldDataLink;
    function GetDataField: String;
    function GetDataSource: TDataSource;
    procedure SetDataField(const Value: String);
    procedure SetDataSource(const Value: TDataSource);
    Function Validar : Boolean;
    procedure SetItemDefault(const Value: Integer);
  protected
    procedure ActiveChange(Sender: TObject);
    procedure DataChange(Sender: TObject);
    procedure EditingChange(Sender: TObject);
    procedure UpdateData(Sender: TObject);
    procedure Change; override;
    procedure ChangeConfiData;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    Property DataSource : TDataSource Read GetDataSource Write SetDataSource;
    Property DataField : String Read GetDataField Write SetDataField;
    Property ItemDefault : Integer read FItemDefault Write SetItemDefault Default 0;


  end;

procedure Register;

implementation

uses Math;

procedure Register;
begin
  RegisterComponents('Data Controls', [TDBComboBoxIndex]);
end;

{ TDBComboBoxIndex }

constructor TDBComboBoxIndex.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  SetParentComponent(AOwner);
  ItemIndex:=ItemDefault;
  Enabled:=False;
  FDataLink:=TFieldDataLink.Create;
 
  with FDataLink do
  begin
    Control:=Self;
    OnDataChange:=DataChange;
    OnEditingChange:=EditingChange;
    OnUpdateData:=UpdateData;
    OnActiveChange:=ActiveChange;
  end;

    if  (Validar) and not (csDesigning in ComponentState) and (FDataLink.Editing) and (Trim(FDataLink.Field.AsString)='') then
           FDataLink.Field.AsInteger:=ItemDefault;


end;

destructor TDBComboBoxIndex.Destroy;
begin
  FDataLink.Free;
  FDataLink:=Nil;
  inherited Destroy;
end;

function TDBComboBoxIndex.Validar: Boolean;
begin
  Result:=(FDataLink<>nil) And (FDataLink.Field<>nil) and (FDataLink.Active);
end;

procedure TDBComboBoxIndex.ActiveChange(Sender: TObject);
begin
  Enabled:=Validar;
  if Validar then
  SetItemIndex(FDataLink.Field.AsInteger);
end;

procedure TDBComboBoxIndex.DataChange(Sender: TObject);
begin
  if Validar then
SetItemIndex(FDataLink.Field.AsInteger);
end;



procedure TDBComboBoxIndex.EditingChange(Sender: TObject);
begin
 if (csDesigning in ComponentState) then Exit;

  if (Enabled) and (FDataLink.Editing) and  (Trim(FDataLink.Field.AsString)='') then
  FDataLink.Field.AsInteger:=ItemDefault;
end;


procedure TDBComboBoxIndex.UpdateData(Sender: TObject);
begin

 if Validar then
  SetItemIndex(FDataLink.Field.AsInteger);
end;


function TDBComboBoxIndex.GetDataField: String;
begin
  Result:=FDataLink.FieldName; xStudy Of Math Discover Studyofmath R Study Of Math T Study Of Math Study Of Math Szh Category Intermediate Subject Math Chap 2 Subject Math Exercise 2 4 Study Of Math ActiveDelphi ::xibir tópico - [Resolvido] Erro: Control '' has no parent Windowsn u Study Of Math Study Of Math rStudy Of Math Discover Studyofmath R Study Of Math T Study Of Math Study Of Math Szh Category Intermediate Subject Math Chap 2 Subject Math Exercise 2 4 Study Of Math ActiveDelphi ::xibir tópico - [Resolvido] Erro: Control '' has no parent Windowsl k Study Of Math