Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2009-11

Componente visual

6 messages · 5 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Héctor S. Ponce

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.freepascal.org/pipermail/lazarus-es/attachments/20091120/0a1a4514/attachment-0001.html>

Reply by email

JoshyFun
to Héctor S. Ponce

Hello H�ctor,

Friday, November 20, 2009, 1:09:21 PM, you wrote:

HSP> Hola, Es la primera vez que intento hacer un componente visual heredando de HSP> un TDBCombobox... el componente se compila, se instala, lo uso, pero no HSP> logro hacer que el mismo se cargue inicialmente... ya he probado hacer HSP> override de varios procedures (create, UpdateData, etc) sigue sin HSP> funcionar...
HSP> Por favor si alguien me tira una pista. Aca est� el fuente.

Yo nunca he hecho un componente as� que no puedo ayudar, pero quiz� un ejemplo como este:

https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/gradcontrols/src/

te ayude a ver donde falla el tema. Esta otra p�gina puede ser de utilidad:

http://wiki.lazarus.freepascal.org/Lazarus_Packages

Best regards, JoshyFun

Reply by email

franmate en gmail.com
to JoshyFun

Un saludo,

He visto referencias en internet (foro de lazarus ) a un componente llamado mplayer2 , pero no lo encuentro . alguna idea? , sabeis donde puedo localizarlo?

El d�a 20 de noviembre de 2009 13:37, JoshyFun <joshyfun en gmail.com> escribi�:

Show quoted text 31 lines
Hello H�ctor, Friday, November 20, 2009, 1:09:21 PM, you wrote: HSP> Hola, Es la primera vez que intento hacer un componente visual heredando de HSP> un TDBCombobox... el componente se compila, se instala, lo uso, pero no HSP> logro hacer que el mismo se cargue inicialmente... ya he probado hacer HSP> override de varios procedures (create, UpdateData, etc) sigue sin HSP> funcionar... HSP> Por favor si alguien me tira una pista. Aca est� el fuente. Yo nunca he hecho un componente as� que no puedo ayudar, pero quiz� un ejemplo como este: https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/gradcontrols/src/ te ayude a ver donde falla el tema. Esta otra p�gina puede ser de utilidad: http://wiki.lazarus.freepascal.org/Lazarus_Packages -- Best regards, �JoshyFun _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email

JoshyFun
to franmate en gmail.com

Hello franmate,

Friday, November 20, 2009, 2:32:12 PM, you wrote:

fgc> He visto referencias en internet (foro de lazarus ) a un componente fgc> llamado mplayer2 , pero no lo encuentro . alguna idea? , sabeis donde fgc> puedo localizarlo?

El mplayer2 es, si no me equivoco, el "Windows Media Player" activex control, por lo tanto s�lo para Windows y de funcionamiento un tanto "curioso".

Si necesitas reproducir audio te aconsejo ACS, aunque es un poco complicado de instalar, si no me equivoco:

http://wiki.lazarus.freepascal.org/ACS

http://sourceforge.net/projects/lazarus-ccr/files/Code%20and%20Component%20Packages/Audio%20Components%20Suite%202.3/

https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/acs

Best regards, JoshyFun

Reply by email

Horacio Jamilis
to Héctor S. Ponce: Hola, Es la primera vez que intento hacer un componente visual heredando de un…

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�:

Show quoted text 99 lines
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

Reply by email