[Lazarus-es] Componente visual
Horacio Jamilis
hjamilis en pymesoft.com.ar
Vie Nov 20 17:00:56 CET 2009
Prueba poner en la parte pública de la clase el metodo:
procedure Loaded; override;
y en su implementación, poner el código de "inicialización".
Este método se llamará después que todas las propiedades del formulario
(o módulo de datos) hayan sido cargadas, y te permitirá, en tiempo de
ejecución, completar la inicialización de tu componente.
Espero que te sirva,
Suerte
Horacio
Héctor S. Ponce escribió:
> Hola, Es la primera vez que intento hacer un componente visual
> heredando de un TDBCombobox... el componente se compila, se instala,
> lo uso, pero no logro hacer que el mismo se cargue inicialmente... ya
> he probado hacer override de varios procedures (create, UpdateData,
> etc) sigue sin funcionar...
>
> Por favor si alguien me tira una pista. Aca está el fuente.
>
> Gracias
>
>
> unit DBComboDic;
>
> {$mode objfpc}{$H+}
>
> interface
>
> uses
> Classes, SysUtils, LResources, Forms, Controls, Graphics,
> Dialogs, DBCtrls, sqldb, StdCtrls, ibconnection;
>
> type
> TDBComboDic = class(TDBComboBox)
> private
> FCDTabla: string;
> FCDCampo_clave: string;
> FCDCampo_descr: string;
> FCDconn: TIBConnection;
> FCDMostrar_descr: TEdit;
> CDDescrip: TStringList;
> protected
> procedure Change; override;
> procedure UpdateData(Sender: TObject); virtual;
> public
>
> published
> property CDconn: TIBConnection Read FCDconn Write FCDconn;
> property CDTabla: string Read FCDTabla Write FCDTabla;
> property CDCampo_clave: string Read FCDCampo_clave Write
> FCDCampo_clave;
> property CDCampo_descr: string Read FCDCampo_descr Write
> FCDCampo_descr;
> property CDMostrar_descr: TEdit Read FCDMostrar_descr Write
> FCDMostrar_descr;
>
> end;
>
>
> procedure Register;
>
> implementation
>
> procedure TDBComboDic.UpdateData(Sender: TObject);
> var
> dst: TSQLQuery;
> begin
> inherited;
> dst := TSQLQuery.Create(nil);
> if FCDconn <> nil then
> dst.database := FCDconn;
> if CDconn <> nil then
> dst.database := CDconn;
> if dst.DataBase <> nil then
> begin
> dst.sql.Clear;
> dst.sql.Text := 'select ' + CDcampo_clave + ', ' + CDcampo_descr +
> ' from ' + CDtabla;
> dst.Open;
> while not dst.EOF do
> begin
> items.add(dst.FieldByName(CDcampo_clave).AsString);
> CDDescrip.add(dst.FieldByName(CDcampo_clave).AsString+'='+
> dst.FieldByName(CDcampo_descr).AsString);
> end;
> end;
> dst.Free;
> end;
>
>
> procedure TDBComboDic.Change;
> begin
> if CDMostrar_descr <> nil then
> CDMostrar_descr.Text :=
> CDDescrip.values[dst.FieldByName(CDcampo_clave).AsString];
> end;
>
> procedure Register;
> begin
> RegisterComponents('Data Controls', [TDBComboDic]);
> end;
>
> end.
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
More information about the Lazarus-es
mailing list