Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
varkan
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 14
#1

Выравнивание текста в TEdit - C++ Builder

06.02.2015, 13:28. Просмотров 1983. Ответов 14
Метки нет (Все метки)

День добрый.

Вопрос.
Есть Edit1, Edit2 в них текст. Требуется выровнять текст
1. по правой стороне Edit1,
2. по центру в Edit2

Вариант с BiDiMode не работает.

Спасибо за помощь.


PS ответа на форуме не нашел, если такой есть, ткните носом.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2015, 13:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выравнивание текста в TEdit (C++ Builder):

Выравнивание текста в ячейке грида при вводе текста - C++ Builder
Вечер добрый. Не подскажите, у меня выравнивание работает (по вертикале и 5 пикселей от левого края по горизонтали) int x,y; x =...

Выравнивание текста в ячейке по вертикали в зависимости от высоты текста - C++ Builder
Подскажите, есть ли возможность прорисовывать текст в ячейке грида, в зависимости от её высоты. Видимо пересчитывать как то с помощью ...

Изменение цвета текста Label в зависимости от TEdit - C++ Builder
имеется два поля tedit по нажатии button, происходят некоторые вычисления и в tedit выводятся значения нужно сделать так, чтобы если...

Drag&Drop выделенного текста между компонентами TMemo, TListBox и TEdit - C++ Builder
Здраствуйте. У меня такое вот задание: Используя Drag&Drop, сделать возможным перетягивание выделенного текста между компонентами TMemo,...

ListBox выравнивание текста - C++ Builder
может у кого есть код переноса текста на новую строку если текст не влазит(вариант нужен без hint,scroll,сторонних компонентов)

Выравнивание текста в TRichEdit - C++ Builder
На форме два компонента. TRichEdit и TSpinEdit. Нужно чтобы при изменении значения в TSpinEdit-е изменялся отступ текста в TRichEdit-е....

14
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24619 / 16289 / 5004
Регистрация: 22.10.2011
Сообщений: 28,839
Записей в блоге: 5
06.02.2015, 13:32 #2
У Edit-а есть свойство Alignment, прямо в Object Inspector-е выставь первому в taRightJustify, второму - в taCenter
0
varkan
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 14
06.02.2015, 13:35  [ТС] #3
такого свойства у Edit-а нет. (PS С++ Builder 6)
Название: 1.png
Просмотров: 142

Размер: 6.9 Кб
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24619 / 16289 / 5004
Регистрация: 22.10.2011
Сообщений: 28,839
Записей в блоге: 5
06.02.2015, 13:37 #4
Цитата Сообщение от varkan Посмотреть сообщение
С++ Builder 6
В мусор.

Тысячу раз говорил - хотите решать задачу - берите современные средства разработки, хотите изобретать костыли, необходимые чтобы потом начать решать задачу - берите Билдер 5 или 6. Ты свой выбор сделал, а я костылями не занимаюсь...
0
varkan
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 14
06.02.2015, 13:39  [ТС] #5
спасибо за помощь.

еще варианты?
0
SatanaXIII
Супер-модератор
Эксперт С++
5649 / 2693 / 252
Регистрация: 01.11.2011
Сообщений: 6,589
Завершенные тесты: 1
06.02.2015, 13:47 #6
Цитата Сообщение от varkan Посмотреть сообщение
еще варианты?
C++
1
2
int EditWidth = Edit1->Width ;
int EditTextWidth = this->Canvas->TextWidth( Edit1->Text );
Развлекайтесь.

Цитата Сообщение от volvo Посмотреть сообщение
У Edit-а есть свойство Alignment
Оно наверное внутри тоже относительно канвы просто смещает текст, да?
0
varkan
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 14
06.02.2015, 13:52  [ТС] #7
а можно весь текст программы?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24619 / 16289 / 5004
Регистрация: 22.10.2011
Сообщений: 28,839
Записей в блоге: 5
06.02.2015, 13:56 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
SatanaXIII, ну я для кого про перехватчики писал?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// в Header-файле, перед описанием класса формы
namespace Aligned_Edit
{
    class TEdit : public Stdctrls::TEdit
    {
    private:
        int FStyle;
        void MySetStyle(int AStyle)
        {
            if(AStyle != FStyle)
            {
                FStyle = AStyle;
                RecreateWnd();
            }
        }
 
    protected:
        virtual void __fastcall CreateParams(Controls::TCreateParams &Params)
        {
            Stdctrls::TEdit::CreateParams(Params);
            Params.Style |= FStyle;
        }
 
    public:
        __fastcall virtual TEdit(Classes::TComponent* AOwner)
            : Stdctrls::TEdit(AOwner)
        {
            FStyle = ES_LEFT;
        }
        __property int MyAlignment = { read=FStyle, write=MySetStyle };
    };
};
#define TEdit Aligned_Edit::TEdit
 
// Дальше - класс формы, как обычно
class TForm1 : public TForm
, изменять очень просто:
C++
1
2
    Edit1->MyAlignment = ES_RIGHT;
    Edit2->MyAlignment = ES_CENTER;
Оно надо, такие велосипеды писать? Мазохизм какой-то просто...
2
varkan
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 14
06.02.2015, 13:59  [ТС] #9
Спасибо большое!

Все работает!

Тема закрыта.
0
SatanaXIII
Супер-модератор
Эксперт С++
5649 / 2693 / 252
Регистрация: 01.11.2011
Сообщений: 6,589
Завершенные тесты: 1
06.02.2015, 15:16 #10
volvo, перехватчик да, как работает стиль? При отрисовке эдита он сдвигает текст в середину канвы этого же эдита? Или там какая-то магия?
0
ivan.-94
Я Фоюмчанин ? дааааа)
208 / 199 / 13
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
06.02.2015, 15:49 #11
SatanaXIII, Если я правильно понимаю volvo у эдита создал какой то объек Param и у него значение Style меняется.
Тогда судя по всему, если я правильно понимаю, как происходит отрисовка знает только билдер - в нем это реализовано.
0
ivan.-94
Я Фоюмчанин ? дааааа)
208 / 199 / 13
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
06.02.2015, 16:01 #12
На доквики эмбаркадеро тишина по TCreateParams.
volvo, а я вот тут посмотрел TEdit и подумал - а может можно было проще?
Выравнивание текста в TEdit
0
ivan.-94
Я Фоюмчанин ? дааааа)
208 / 199 / 13
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
06.02.2015, 16:07 #13
Хотя нет я не прав
C++
1
2
3
4
5
6
7
8
9
namespace Aligned_Edit
{
    class TEdit : public Stdctrls::TEdit
    {
    public:
        using Stdctrls::TEdit::Alignment;
    };
};
#define TEdit Aligned_Edit::TEdit
Не работает
А ну я сглупил)))
На Embarcadero ведь справка для 2010 версий компилятора и ++
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24619 / 16289 / 5004
Регистрация: 22.10.2011
Сообщений: 28,839
Записей в блоге: 5
06.02.2015, 16:08 #14
Цитата Сообщение от SatanaXIII Посмотреть сообщение
При отрисовке эдита
Нет, не при отрисовке, а при создании окна. Окно Edit-а создается с нужным стилем, задающим выравнивание. При смене стиля окно просто пересоздается заново, "всего и делов то" (С) "Осенний марафон"

Цитата Сообщение от ivan.-94 Посмотреть сообщение
На доквики эмбаркадеро тишина по TCreateParams
Просто CreateParams, TCreateParams, где ж тишина?
1
ivan.-94
Я Фоюмчанин ? дааааа)
208 / 199 / 13
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
06.02.2015, 16:22 #15
volvo, просто я искал:Выравнивание текста в TEdit
Но все норм если искать Vcl.Controls и у него TCreateParams
0
06.02.2015, 16:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2015, 16:22
Привет! Вот еще темы с ответами:

RichEdit - выравнивание текста - C++ Builder
Прива, пацпны как можно запрограмировать кнопку виравнивание таекста "С лева"?

Выравнивание текста TRichEdit по ширине - C++ Builder
Здравствуйте! Нужна помощь в написании кода для выравнивания текста в RichEdit по ширине! Облазил кучу тем но решения не нашел! ...

TEdit - C++ Builder
Добрый день! Есть такой вопрос: Что нужно сделать, чтобы в TEdit не было возможности вставить текст из буфера обмена при помощи CTRL+V...

про TEdit - C++ Builder
Можно ли как-то запретить изменять часть текста, который изначально введён в Edit. Т.е., к примеру, изначально есть: MyFile.txt - нужно,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.