[Lazarus-es] Componente visual
Héctor S. Ponce
hectorsponce en gmail.com
Vie Nov 20 13:09:21 CET 2009
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.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20091120/0a1a4514/attachment-0002.html>
More information about the Lazarus-es
mailing list