Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2010, 13:18   #1
Yuran
Форумчанин
 
Регистрация: 18.02.2008
Сообщений: 198
По умолчанию TEdit курсор справа

Здрасте.

Как заставить ТЭдит писать справа на лево, то есть установить выравнивание по рпавому краю?

нашол вроде бы рабочую процедуру которая работает с канвой, но она "портит" перваоначальный вид эдита (пропадает цвет и шрифт меньше)
Процедура вот:

Код:
procedure REdit(var ThisEdit : TEdit);
var
  Left, Width: Integer;
  GString: string;
  Rgn: TRect;
  TheCanvas: TControlCanvas;
begin
  TheCanvas := TControlCanvas.Create;
  try
    TheCanvas.Control := ThisEdit;
    GString := ThisEdit.Text;
    Rgn := ThisEdit.ClientRect;
    TheCanvas.FillRect(Rgn);
    Width := TheCanvas.TextWidth(GString);
    Left := Rgn.Right - Width - 1;
    TheCanvas.TextRect(Rgn, Left, 0, GString);
  finally
    TheCanvas.Free;
  end;
end;
затем нужно написать
REdit(Edit1);
и текст перепрыгнет к правому краю, но заливка становится белой и размер текста меньше. Может кто знает выход.

Последний раз редактировалось Stilet; 11.05.2010 в 13:22.
Yuran вне форума Ответить с цитированием
Старый 11.05.2010, 13:26   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Заставить ? Написать наследник.
Вложения
Тип файла: rar TAlignEdit.rar (2.3 Кб, 20 просмотров)
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 11.05.2010, 14:11   #3
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
procedure REdit(var ThisEdit: TEdit);
var
  Left, Width: Integer;
  GString: string;
  Rgn: TRect;
  TheCanvas: TControlCanvas;
begin
  TheCanvas := TControlCanvas.Create;
  try
    TheCanvas.Control := ThisEdit;
    TheCanvas.Brush.Color := ThisEdit.Color; // added
    TheCanvas.Pen.Color := ThisEdit.Color; // added
    TheCanvas.Font := ThisEdit.Font; // added
    GString := ThisEdit.Text;
    Rgn := ThisEdit.ClientRect;
    TheCanvas.FillRect(Rgn);
    Width := TheCanvas.TextWidth(GString);
    Left := Rgn.Right - Width - 1;
    TheCanvas.TextRect(Rgn, Left, 0, GString);
  finally
    TheCanvas.Free;
  end;
end;
ZuBy вне форума Ответить с цитированием
Старый 11.05.2010, 14:29   #4
Yuran
Форумчанин
 
Регистрация: 18.02.2008
Сообщений: 198
По умолчанию

Спасибо. Попробую, затем отпишусь.

Kotofff, а как теперь ЭТО ВКЛЮЧИТЬ? Объясните пожалуйста!

Последний раз редактировалось Stilet; 13.05.2010 в 08:22.
Yuran вне форума Ответить с цитированием
Старый 13.05.2010, 08:01   #5
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Установить как компонент.
Он появится в закладке SwissDelphiCenter
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 13.05.2010, 13:07   #6
Yuran
Форумчанин
 
Регистрация: 18.02.2008
Сообщений: 198
По умолчанию

Понятно. Спасибо огромное
Yuran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
уберите курсор (в конце программы верните курсор), HECTOR.A. Паскаль, Turbo Pascal, PascalABC.NET 2 05.06.2009 20:10
Переход по ENTER на ячейку справа komar73 Microsoft Office Excel 2 10.02.2009 19:06
Как передать в TEdit подстроку под курсор nnova Общие вопросы Delphi 5 05.11.2008 05:01
Расположить объект справа от меню romets Win Api 2 21.08.2008 16:43
Поставить курсор в конец строки в TEdit Никки Общие вопросы Delphi 2 17.03.2008 00:27