Текущий архив: 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.47 MB
Время: 0.033 c