Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Правое выравнивание текста в компоненте Edit(2)

Delphi , Компоненты и Классы , TEdit

Code:

{ Пример TEdit с правым выравниванием
© Song }
 
type
TForm1 = class(TForm)
 procedure FormCreate(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
end;
 
{ Обявляем класс нашего едита как потомок от стандартного}
type TMySuperEdit=class(TCustomEdit)
public
{ Внутри класса переопредялем процедуру CreateParams,
    т.к. нужный нам стиль можно изменить только на создании или пересоздании
    окна  }
Procedure CreateParams(Var Params: TCreateParams); override;
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
Procedure TMySuperEdit.CreateParams(Var Params: TCreateParams);
Begin
{ Вызываем родительский обработчик, чтобы он сделал все процедуры по созданию объекта класса }
inherited CreateParams(Params);
{ Изменяем стиль }
With Params Do Style:=Style or ES_RIGHT;
End;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
{ Создаём едит на основе нашего класса и кладём его на форму }
With TMySuperEdit.Create(Self) Do Parent:=Self;
end;

 Автор: Song

 Взято из http://forum.sources.ru

Программный пример на языке Delphi, демонстрирующий создание правого выравнивания редактируемого поля с помощью компонента TEdit.

Код определяет два класса: TForm1, который является наследником стандартного класса TForm, и TMySuperEdit, который является наследником класса TCustomEdit. Класс TMySuperEdit переопределяет процедуру CreateParams, чтобы установить стиль редактируемого поля в правое выравнивание.

Разбивка кода:

  1. Класс TForm1 определяет частный раздел, где можно объявить приватные переменные и методы.
  2. Публичный раздел пуст, что означает, что этот класс не будет иметь доступных извне членов или свойств.
  3. Класс TMySuperEdit объявлен как наследник класса TCustomEdit. Это означает, что он наследует все свойства и методы родительского класса.
  4. Процедура CreateParams переопределяется для установки стиля редактируемого поля в правое выравнивание. Используется оператор With, чтобы модифицировать объект Params, который содержит информацию о параметрах создания окна. Свойство Style устанавливается в включение константы ES_RIGHT, которая указывает, что текст должен быть правым выравненным.
  5. В процедуре FormCreate класса TForm1 создается экземпляр класса TMySuperEdit и добавляется к форме с помощью метода Create. Свойство Parent редактируемого поля устанавливается в форму.

Код структурирован и легко понятен. Однако есть несколько вещей, которые можно улучшить:

  1. Можно добавить комментарии, чтобы объяснить, что каждый раздел кода делает.
  2. Можно использовать более описательные имена переменных вместо одиночных букв (например, Params вместо P).
  3. Можно рассмотреть использование отдельного класса для настройки стиля редактируемого поля, а не жестко закодировать его в процедуре CreateParams.

Альтернативное решение:

Вместо переопределения процедуры CreateParams можно создать отдельный класс, который обертывает свойства и методы правого выравнивания редактируемого поля. Это сделает код более модульным и повторно используемым.

Например:

type
  TRightAlignedEdit = class(TCustomEdit)
  public
    constructor Create(AOwner: TComponent); override;
  end;

constructor TRightAlignedEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Style := Style or ES_RIGHT;
end;

В этом классе можно использовать в процедуре создания формы:

procedure TForm1.FormCreate(Sender: TObject);
var
  Edit: TRightAlignedEdit;
begin
  Edit := TRightAlignedEdit.Create(Self);
  Parent := Self;
end;

Эта APPROACH более гибкая и легче поддерживаемая, особенно если вам нужно создать несколько правых выравниваемых редактируемых полей в вашем приложении.

В статье описывается пример реализации правого выравнивания текста в компоненте Edit2 Delphi, путем переопределения процедуры CreateParams класса TCustomEdit и изменения стиля окна.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TEdit ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:50:14/0.0035879611968994/0