Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про alignment у TEdit. [D6, XP]


vegarulez ©   (2008-02-20 09:20:00) 

В CLX это свойство есть в VCL сечас вставил в проект TEdit и оное свойство отсутсвует. Поэтому есть  Вопрос:
1. как быть в VCL?
2. как в VCL проект вставить компонент CLX? Неважно TEdit, или любой другой.


Семеныч   (2008-02-28 06:56:00) [1]

> {RASkov}

И CreateParams - protected, а не public.
:o)


{RASkov}   (2008-02-21 10:27:00) [2]

Только Digit, а не Diget :)


{RASkov}   (2008-02-21 10:25:00) [3]

> циферки...


> добавить ES_RIGHT

+ ES_NUMBER

 TMyEdit = class(TEdit)
 private
   FAlignment: TAlignment;
   FOnlyDiget: Boolean;
   procedure SetAlignment(const Value: TAlignment);
   procedure SetOnlyDiget(const Value: Boolean);
 public
   procedure CreateParams(var Params : TCreateParams); override;
 published
   property Alignment: TAlignment read FAlignment write SetAlignment;
   property OnlyDiget: Boolean read FOnlyDiget write SetOnlyDiget;
 end;
...............................
procedure TMyEdit.CreateParams(var Params: TCreateParams);
const AlSt: array [TAlignment] of Cardinal = (ES_LEFT, ES_RIGHT, ES_CENTER);
var St: Cardinal;
begin
 inherited;
 St:=AlSt[FAlignment];
 if FOnlyDiget then St:=St or ES_NUMBER;
 Params.Style := Params.Style or St;
end;

procedure TMyEdit.SetAlignment(const Value: TAlignment);
begin
 if FAlignment <> Value then begin
  FAlignment := Value;
  RecreateWnd;
 end;
end;

procedure TMyEdit.SetOnlyDiget(const Value: Boolean);
begin
 if FOnlyDiget <> Value then begin
  FOnlyDiget := Value;
  RecreateWnd;
 end;
end;


vegarulez   (2008-02-21 10:13:00) [4]

Johnmen ©   (21.02.08 09:45) [6]
да я в этом с тобой согласен )
Попробую - спасип.

MBo ©   (21.02.08 09:42) [5]
кинь ссылкой чтоб почитать как это реализовывается.
типа:

myEdit:Tedit;
...
myEdit:=Tedit.Create(nil);
{[а тут вставить "перекрытый метод CreateParams???"}
myEdit.Free;

или я не так тя понял? кинь чем нить, чтоб думалось в нужном направлении...
з.ы. тока не кирпичом )


Johnmen   (2008-02-21 09:45:00) [5]


> vegarulez ©   (21.02.08 09:25) [4]

Возьми что-нибудь стороннее. Напр. TCurrencyEdit из RxLib.
Другие пути тебе ещё рановато, как я понял...:)


MBo   (2008-02-21 09:42:00) [6]

создать наследника TEdit, в перекрытом методе CreateParams добавить ES_RIGHT


vegarulez   (2008-02-21 09:25:00) [7]

2 ЮЮ ©   (21.02.08 09:02) [2]
смотреть  Johnmen ©   (21.02.08 09:21) [3]

2 Johnmen ©   (21.02.08 09:21) [3]
циферки...
просто типа чтоб по правую сторону находились... так удобнее....


Johnmen   (2008-02-21 09:21:00) [8]


> ЮЮ ©   (21.02.08 09:02) [2]

Вообще-то автор говорил об Alignment, а не об Align. Разница понятна?
И о какой нехилой библиотеке речь?

> vegarulez ©

Что в этом едите предполагается едитить?


ЮЮ   (2008-02-21 09:02:00) [9]

> 2. как в VCL проект вставить компонент CLX? Неважно TEdit,
> или любой другой.

В Help хоть раз заглядывал?

CLX Reference                          VCL Reference
   

TEdit                                  TEdit

Unit                                   Unit

QStdCtrls                              StdCtrls

З.Ы. чтобы твой ехе-шник заработал на другои компьютере придется таскать нехилую run-time библиотеку.

Что такое TEdit, растянутый на весь экран/ пол экрана? Может тебе TMemo использовать при таких аппетитах?


vegarulez   (2008-02-21 08:13:00) [10]

Удалено модератором


Наверх

Титульная страница Поиск, карта сайта Написать письмо