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

Вниз

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

 
Budy ©   (2004-02-09 15:20) [0]

Приветствую всех!
Как можно сделать чтоб значение Text у TEdit выводилось справа, а не слева?
Заранее спасибо!


 
Serge ©   (2004-02-09 15:24) [1]

Используй ТМемо с WantReturns =False.


 
Budy ©   (2004-02-09 20:00) [2]

Нет, к сожалению TMemo не подойдет. Нужна одна строка ввода!
Но всеравно спасибо за совет!


 
Баралгин   (2004-02-10 01:55) [3]

Можно эдит засунуть в Panel и панели присвоить Align, допустим Bottom, а чёб она и по длине нормальная была (при изменении размера формы), то в В обработчик формы "Resize" напиши Edit1.widht:=Panel1.widht-1;(панель в которой Эдит)


 
reticon ©   (2004-02-10 02:29) [4]

создать наследника от TEdit и добавить ему свойство Alignment :)

Alignment = (taCenter, taLeftJustify, taRightJustify)


 
Defunct   (2004-02-10 03:59) [5]

Чтобы долго не мучаться можно поставить поверх Edit1 еще один Edit2:

С инициализацией
Edit1.OnFocus := OnEdit1Focus;
Edit2.BorderStyle:=bsNone;
Edit2.Parent := Edit1;
Edit2.Width := 2;
Edit2.Top := 2;
Edir2.Width := 2;
Edit2.Left := Edit1.CleintWidth - Edit2.Width;
Edit2.Height := Edit1.ClientHeight;

при вводе текста масштабировать размер Edit2 и положение Edit2

Procedure OnEdit2Change(Sender: TObject);
Begin
Edit2.Width := Edit2.Canvas.TextWidth(Edit2.Text);
Edit2.Left := Edit1.ClientWidth - Edit2.Width;
// Обслуживание вводимого текста
End;

И добавить процедуру OnEdit1Focus, которая запрещает фокусировку в Edit1.
Procedure OnEdit1Focus(Sender: TObject);
Begin
CanFocus := False;
End;


 
Юрий Зотов ©   (2004-02-10 04:32) [6]

Вот простенький компонентик, который реализует [4]

type
TMyEdit = class(TEdit)
private
FAlignment: TAlignment;
procedure SetAlignment(const Value: TAlignment);
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure KeyPress(var Key: Char); override;
published
property Alignment: TAlignment
read FAlignment write SetAlignment default taLeftJustify;
end;

procedure TMyEdit.CreateParams(var Params: TCreateParams);
const
AlignmentFlags: array[TAlignment] of DWORD =
(ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited;
if FAlignment <> taLeftJustify then
with Params do
Style := Style and not (ES_LEFT or ES_WANTRETURN)
or AlignmentFlags[FAlignment] or ES_MULTILINE
end;

procedure TMyEdit.KeyDown(var Key: Word; Shift: TShiftState);
begin
if Key in [VK_PRIOR, VK_NEXT, VK_UP, VK_DOWN] then
Key := 0
else inherited
end;

procedure TMyEdit.KeyPress(var Key: Char);
begin
if Key = Char(VK_RETURN) then
Key := #0
else inherited
end;

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


 
Defunct   (2004-02-10 04:49) [7]

Вот проверенный пример:

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.OnClick :=Edit1Click;
Edit1.OnEnter := Edit1Enter;
Edit2.BorderStyle:=bsNone;
Edit2.Parent := Edit1;
Edit2.Width := 8;
Edit2.Top := 1;
Edit2.Left := Edit1.ClientWidth - Edit2.Width + 4;
Edit2.Height := Edit1.ClientHeight;
Edit2.OnChange := Edit2Change;
end;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
Edit2.SetFocus;
end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
Edit2.SetFocus;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
Edit2.Width := Canvas.TextWidth(Edit2.Text)+8;
Edit2.Left := Edit1.ClientWidth - Edit2.Width + 4;
end;


 
Budy ©   (2004-02-10 07:50) [8]

Хорошо, верных вариантов много! Испробовал все.
Больше мне понравился вариант [7].
Но вот проблемка есть, как же сделать, чтоб курсора в Edit1 не было? А то щелкаешь по Edit1, сначала в нем моргнет, потом уже в Edit2.



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
4-80364
Rimd
2003-12-20 16:46
2004.02.25
StringGrid и API


3-79575
werq
2004-01-29 13:10
2004.02.25
Мастаки, какой есть бесплатный компонент по сохранению в DBF?


3-79617
mamont
2004-02-02 03:13
2004.02.25
DBGrid+DateTimepicker


8-80027
AAA111
2003-10-23 21:16
2004.02.25
Печать на принтер


1-79693
jen
2004-02-14 04:20
2004.02.25
Можно ли в ячейке StringGrid изменить цвет части текста