Ver Mensaje Individual
  #2  
Antiguo 03-08-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.293
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por ramonibk
Alguien sabria como poder centrar un Texto en un DBEdit????
Se puede hacer sinmucha complicación derivando el Control DBEdit y modificando los parámetros de creación de la ventana. Para ello sobreescribes el procedimiento CreateParams del control.
El código del ontrol es muy sencillo y quedaría algo así:

Código Delphi [-]
unit CDBEditAlign;
 
//====================================================
interface
uses
  Windows, Messages, SysUtils, Classes, Controls, StdCtrls, DBCtrls;
type
  // Tipo para la propiedad de alineación
  TEditAlignment = (eaLeft, eaCenter, eaRight);
  // clase del nuevo control
  TDBEditAlign = class(TDBEdit)
  private
    { Private declarations }
    fAlignment: TEditAlignment;
    procedure setAlignment(nValue: TEditAlignment);
  protected
    { Protected declarations }
    // redefines la rutina para cambiar los parámetros de creacion
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public declarations }
  published
    { Published declarations }
    // Prop. nueva de alineacion
    property Alignment: TEditAlignment read fAlignment write setAlignment;
  end;
 
// rutina para regisrar el componente
procedure Register;
 
//====================================================
implementation
 
//: Set  de la propiedad.
procedure TDBEditAlign.setAlignment(nValue: TEditAlignment);
begin
  // Ha cambiado el valor?
  if fAlignment <> nValue then begin
    fAlignment:= nValue;
    // recrear la ventana del control
    RecreateWnd;
  end;
end;
 
// Parametros de creacion
procedure TDBEditAlign.CreateParams(var Params: TCreateParams);
const
  Alignments: array[TEditAlignment] of Longint = (ES_LEFT, ES_CENTER, ES_RIGHT);
begin
  inherited CreateParams(Params);
  CreateSubClass(Params, 'DBEDIT');
  Params.Style := Params.Style or Alignments[fAlignment];
end;
 
// Registrar el componente
procedure Register;
begin
  RegisterComponents('samples', [TDBEditAlign]);
end;
end.

Crea un package, ańádelo e instálalo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita