Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.20;
Скачать: CL | DM;

Вниз

ввод в TEdit   Найти похожие ветки 

 
nusik1990 ©   (2008-02-26 18:31) [0]

Здравствуйте уважаемые участники форума. У меня вот какой вопрос: можно лишь сделать так что у компонента TEdit ввод  и редактирование начиналось с правой части а не слева как обычно, насколько я знаю такого свойства у TEdit просто  нетю
Можно ли как-нибудь решить эту проблему. Заранее всем спасибо :)


 
DimaBr ©   (2008-02-27 08:34) [1]

Вы хотите написать новый компонент ?


 
nusik1990 ©   (2008-02-27 17:43) [2]

Если другого способа нет то придется, просто я не очень разбираюсь в создании компонентов а точнее никогда не создавал и не знаю. А это сколько времени может занять (примерно), и что для этого необходимо?


 
Семеныч   (2008-02-27 19:57) [3]

Попробуйте для начала обойтись малыми усилиями:

SetClassLong(Edit1.Handle, GCL_STYLE,
 GetClassLong(Edit1.Handle, GCL_STYLE) or ES_RIGHT);


 
{RASkov} ©   (2008-02-27 20:04) [4]

http://delphimaster.net/view/2-1203488436/


 
TStas ©   (2008-03-25 22:33) [5]

Написание компонента может и очень мало времени занять, другое дело, что такой компонент в среду ставить, наверно, не стоит. Ничего сильно сложного здесь нет, это обычное наследование, просто наследуют от компонета. Ну и помнить, что всё, что в published объявлено, появится в ObjectInspector"е, если компонент в среду установить.
Если нужно только изменить способ выравнивания текст, то можно взять мемо и выставить у него свойства и всё на этом завершить. Если нужен едит, пишуший задом наперёд, то придётся, наверно, самому писать, поскольку эдит берется из системы.


 
Leonid Troyanovsky ©   (2008-03-25 22:44) [6]


> TStas ©   (25.03.08 22:33) [5]

Ночь в Крыму, все в дыму и пушки стреляют.

--
Regards, LVT.


 
korneley ©   (2008-03-26 00:45) [7]


> если нужен едит, пишуший задом наперёд, то придётся, наверно,
>  самому писать
Не...Не всё. Вот сильно специфический случай на днях и случился. С TMaskEdit к тому же. Перекрытие CreateParams привело к желаемомк результату. Как подозреваю, [4] туда же пытается ссылаться.


 
Германн ©   (2008-03-26 01:02) [8]


> Leonid Troyanovsky ©   (25.03.08 22:44) [6]

"Война в Крыму, всё в дыму и ничего не видно".
Такую крылатую фразу я запомнил в молодости.


 
{RASkov} ©   (2008-03-26 09:44) [9]

> [5] TStas ©   (25.03.08 22:33)
> другое дело, что такой компонент в среду ставить, наверно, не стоит

А сегодня как раз - среда. Сегодня установку компонента делать не следует ;)
Кстати, я когда читал, то первая мысль была именно о дне недели)


> Как подозреваю, [4] туда же пытается ссылаться.

Могу "достать" ту ветку :)


 
korneley ©   (2008-03-26 10:30) [10]


> Могу "достать" ту ветку :)
Дык, как-то так было
type
 TMyEdit = class(TEdit)
 private
   FAlignment: TAlignment;
   procedure SetAlignment(const Value: TAlignment);
 protected
   procedure CreateParams(var Params : TCreateParams); override;
 published
   property Alignment: TAlignment read FAlignment write SetAlignment;
 end;

implementation

procedure TMyEdit.CreateParams(var Params: TCreateParams);
const
 EditControlStyles: array [TAlignment] of Cardinal = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited;
Params.Style := Params.Style + EditControlStyles[FAlignment];
end;

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

Ну и, раз сегодня среда, то можно
TEdit = class(StdCtrls.TEdit)
...
И никаких встраиваний. Но только на сегодня! Ну вот, научил плохому :)


 
{RASkov} ©   (2008-03-26 10:44) [11]

> [10] korneley ©   (26.03.08 10:30)
> Дык, как-то так было

Ага, почти так, только там еще и возможность ввода только циферок была, что здесь конечно же не нужно.
Только
> Params.Style := Params.Style + EditControlStyles[FAlignment];

Обычно так делают:
Params.Style := Params.Style or EditControlStyles[FAlignment];
В прочем в среду можно полюбому :)


 
korneley ©   (2008-03-26 11:02) [12]


>  только там еще и возможность ввода только циферок была

а вот для циферок есть ES_NUMBER (как было в том примере не помню)

> Обычно так делают:
>Params.Style := Params.Style or EditControlStyles[FAlignment];

В принципе да, но у "ES_..." вроде только один бит выставлен в единицу, да и среда опять же, потому и "плюс" канает :)



Страницы: 1 вся ветка

Текущий архив: 2008.04.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
2-1206351890
operator
2008-03-24 12:44
2008.04.20
Оптимальный способ парсинга строк.


4-1186639228
Classic
2007-08-09 10:00
2008.04.20
Необходимо перехватить момент печати на принтере


2-1206603785
AlexeyMir
2008-03-27 10:43
2008.04.20
Locate,LocateNext в Interbase


2-1206545585
MikeLevinN
2008-03-26 18:33
2008.04.20
far


6-1185300202
malyar
2007-07-24 22:03
2008.04.20
как получить все строки принятые idtcpclient(ом)