Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

надстрочные/подстрочные символы в визуальных компонентах Builder 6

26K
03 мая 2007 года
#Максим
9 / / 03.05.2007
подскажите, пожалуйста, чайнику:

возможно ли отображение надстрочных и подстрочных символов компонете ComboBox и подобных ему. Сие нужно для выбора пользователем размерности (метры квадратные и пр.)
294
06 мая 2007 года
Plisteron
982 / / 29.08.2003
IMHO, для этого тебе потребуется самому отрисовывать итемы твоего комбобокса в событии OnDrawItem (не забудь в событии OnMeasureItem указать размеры твоего итема). Берёшь RichEdit, в ComboBox1DrawItem() пишешь в RichEdit навороченный текст своего итема и говоришь RichEdit1->PaintTo()...
IMHO, примерно так.
26K
06 мая 2007 года
#Максим
9 / / 03.05.2007
Спасибо за наводку! Попробую теперь сам разобраться.:) Только не знаю, как это сделать в RichEdit. Но все равно - спасибо.
26K
08 мая 2007 года
#Максим
9 / / 03.05.2007
Цитата: Plisteron
... и говоришь RichEdit1->PaintTo()...
IMHO, примерно так.



Не совсем так... PaintTo() выводит в ComboBox с текстом ВСЕ ЧТО УГОДНО!!! только не RichEdit (у него только фон в лучшем случае):rolleyes:
или это только у меня??

Кто-нибудь может мне подсказать что-нибудь по этой теме?:confused:
Идея с PaintTo() мне понравилась, но,

во-первых, не выводится текст (именно из RichEdit), а
во-вторых, как все-таки программно записать надстрочные символы в RichEdit (если он вдруг согласится рисоваться в ComboBox вместе с текстом).

294
09 мая 2007 года
Plisteron
982 / / 29.08.2003
Цитата: #Максим
Не совсем так... PaintTo() выводит в ComboBox с текстом ВСЕ ЧТО УГОДНО!!! только не RichEdit (у него только фон в лучшем случае):rolleyes:
или это только у меня??

Кто-нибудь может мне подсказать что-нибудь по этой теме?:confused:
Идея с PaintTo() мне понравилась, но,

во-первых, не выводится текст (именно из RichEdit), а
во-вторых, как все-таки программно записать надстрочные символы в RichEdit (если он вдруг согласится рисоваться в ComboBox вместе с текстом).



Чёрт, действительно. С другими контролами такое проходит на ура, а с RichEdit -- индейская народная изба фигвам, и я не понимаю, почему.
Придётся ручками.

Код:
void __fastcall TfrmMain::ComboBox1DrawItem(TWinControl *Control,
      int Index, TRect &Rect, TOwnerDrawState State)
{
    TCanvas    *vas = ComboBox1->Canvas;

    vas->Font->Name = "Arial"
    vas->Font->Size = 6;

    AnsiString  tem = "Item";
    int         ze1 = vas->Font->Size;
    int         ze2 = vas->TextWidth(tem);

    vas->TextOutA(Rect.Left, Rect.Top, tem);
    vas->Font->Size = 4;
    vas->TextOutA(Rect.Left + ze2, Rect.Top + 6, IntToStr(Index));
    vas->Font->Size = ze1;

}

Примерно так. Косяки с отрисовкой выделенной области, думаю, сам победишь. См. аргумент State.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог