Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Propiedad Text en DBLookUpComboBox (https://www.clubdelphi.com/foros/showthread.php?t=67297)

edgwin 10-04-2010 16:39:12

Propiedad Text en DBLookUpComboBox
 
Hola amigos del foro.

Estoy tratando de crear un componente personalizado heredado de DBLookUpComboBox y quiero agregarle la propiedad "Text".

Este es mi codigo:

Código Delphi [-]
unit DBUPCLookupComboBox;
 
interface
 
uses
  SysUtils, Classes, Controls, DBCtrls, Messages, Dialogs ;
 
type
  TDBUPCLookupComboBox = class(TDBLookupComboBox)

  private
    function GetText: TCaption;
    procedure SetText(const Value: TCaption);
  protected
    {}
  public
    {}
  published
    property Text: TCaption read GetText write SetText;
  end;
 
procedure Register;
 
implementation
 
function TDBUPCLookupComboBox.GetText: TCaption;
var
  Len: Integer;
begin
  Len := GetTextLen;
  SetString(Result, PChar(nil), Len);
  if Len <> 0 then GetTextBuf(Pointer(Result), Len + 1);
end;
 
procedure TDBUPCLookupComboBox.SetText(const Value: TCaption);
begin
  if GetText <> Value then SetTextBuf(PChar(Value));
end;
 
procedure Register;
begin
  RegisterComponents('UPC', [TDBUPCLookupComboBox]);
end;
end.

Pero cuando instalo y trato de aplicar algun texto a la propiedad "Text" simplemente no lo hace.

¿Alguien me puede ayudar?

Gracias!

ecfisa 11-04-2010 01:20:21

Hola edwin.

No creo posible dicha implementación, por que el TDBLookupComboBox funciona relacionado a un DataSource y no veo manera que te muestre un texto 'descolgado' como si fuese un TComboBox.

Pero de todos modos esperaremos que otro compañero con más conocimientos del tema nos ilumine...

Saludos.

juanlaplata 14-04-2010 13:57:22

Hola edgwin, como dice ecfisa este componente muestra, si esta conectado de la manera adecuada, "datos de un campo de una tabla de una base de datos".
No se cual es el resultado de la operacion SetTextBuf(PChar(Value)); ,
Es decir, a donde es que va a almacenar el contenido de Value.
Si no , trata de que dentro de la implementacion del set, hacer el insert en la tabla a la cual esta relacionado el DBLookUpComboBox.
No digo que esto sea asi, solo es lo que tengo entendido de como trabaja este componente.
Saludos. Suerte .

edgwin 17-04-2010 15:46:10

Cita:

Empezado por juanlaplata (Mensaje 360463)
Hola edgwin, como dice ecfisa este componente muestra, si esta conectado de la manera adecuada, "datos de un campo de una tabla de una base de datos".
No se cual es el resultado de la operacion SetTextBuf(PChar(Value)); ,
Es decir, a donde es que va a almacenar el contenido de Value.
Si no , trata de que dentro de la implementacion del set, hacer el insert en la tabla a la cual esta relacionado el DBLookUpComboBox.
No digo que esto sea asi, solo es lo que tengo entendido de como trabaja este componente.
Saludos. Suerte .

Gracias Juanlaplata por responder.

Bueno, lo que intento hacer es simular el "DisplayEmpty", que el componente de BDlookupComboBox hacia en los componentes Vg2Lib, comoponentes que para D2010 ya no existen. Seguramente me van a sugerir que descarge los componentes JEDI pero lo que aqui en la empresa no queremos es que de un dia para otro (digamos cuando salga D2012) esos componentes desaparezcan o no tengan soporte para versiones nuevas de Delphi (como sucedio con los Vg2Lib). Es por eso que decidi hacer o simular lo que el componente hacia ... pero bueno, creo que me voy a dedicar a buscar un poco mas ya sea para hacer el componente o comprarlo (ya que, si alguien se ha fijado, los componentes no-free tienen muy buen soporte como los TSM por ejemplo).

Saludos!


La franja horaria es GMT +2. Ahora son las 11:33:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi