Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];

Вниз

ввод в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
2-1206612850
nicky000
2008-03-27 13:14
2008.04.20
ConnectDialog


2-1206121928
DJ_UZer
2008-03-21 20:52
2008.04.20
Выделение в мемо


2-1206716738
Kolan
2008-03-28 18:05
2008.04.20
Не удается присвоить значение полю структуры в объекте.


2-1206266038
Mikhail
2008-03-23 12:53
2008.04.20
Вставить ссылку на сайт.


2-1206286332
hahol_64_rus
2008-03-23 18:32
2008.04.20
не могу и все тут ....(с логикой )





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский