Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DBEdit Centardo (https://www.clubdelphi.com/foros/showthread.php?t=13002)

ramonibk 03-08-2004 16:30:21

DBEdit Centardo
 
Alguien sabria como poder centrar un Texto en un DBEdit????

Neftali [Germán.Estévez] 03-08-2004 17:24:40

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.

ruina 03-08-2004 17:29:37

pues el dbedit no tiene ninguna propiedad al respecto, sin embargo el DBText sí lo tiene, puede que te sirva si no necesitas editar.


La franja horaria es GMT +2. Ahora son las 07:01:16.

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