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
TEditAlignment = (eaLeft, eaCenter, eaRight);
TDBEditAlign = class(TDBEdit)
private
fAlignment: TEditAlignment;
procedure setAlignment(nValue: TEditAlignment);
protected
procedure CreateParams(var Params: TCreateParams); override;
public
published
property Alignment: TEditAlignment read fAlignment write setAlignment;
end;
procedure Register;
implementation
procedure TDBEditAlign.setAlignment(nValue: TEditAlignment);
begin
if fAlignment <> nValue then begin
fAlignment:= nValue;
RecreateWnd;
end;
end;
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;
procedure Register;
begin
RegisterComponents('samples', [TDBEditAlign]);
end;
end.
Crea un package, añádelo e instálalo.