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

Ваш аккаунт

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

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

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

Посоветуйте компонент

332
27 сентября 2010 года
Valiant
416 / / 27.09.2004
Посоветуйте компонент на котором можно подобное реализовать. Интересует именно отрисовка и надписи. Количество вхождений неизвестно. Что то в духе ListBox.
332
28 сентября 2010 года
Valiant
416 / / 27.09.2004
подумал... и сделал на основе ListBox`а. Тему можно закрыть.
63K
28 сентября 2010 года
Motorcode
11 / / 22.09.2010
А можно посмотреть на ваше решение? Может быть тоже кому-нибудь понадобится..
8
28 сентября 2010 года
mfender
3.5K / / 15.06.2005
Цитата: Valiant
подумал... и сделал на основе ListBox`а. Тему можно закрыть.


А я бы сделал наследыша на TScrollBox'е.
Впрочем, присоединяюсь к предыдущему высказавшемуся: тут принято решение предъявлять.

332
28 сентября 2010 года
Valiant
416 / / 27.09.2004
Черновой вариант, тестировалась только отрисовка:
Код:
TJPEGImage * BG, *rl, *gl;
       Graphics::TBitmap *trBitmap = new Graphics::TBitmap();
       trBitmap->Canvas->Font->Name = "Arial";
       trBitmap->Canvas->Font->Style = TFontStyles() << fsBold;
       TSize trText = trBitmap->Canvas->TextExtent(ListBox1->Items->Strings[Index]);
       trBitmap->Width  = trText.cx+1;
       trBitmap->Height = trText.cy+1;
       trBitmap->Canvas->TextOut(1,1,ListBox1->Items->Strings[Index]);
       trBitmap->Transparent = true;
       trBitmap->TransparentColor = trBitmap->Canvas->Pixels[0][0];
       trBitmap->TransparentMode = tmAuto;

       BG = new TJPEGImage();
       rl = new TJPEGImage();
       gl = new TJPEGImage();
       BG->LoadFromFile(ExtractFileDir(Application->ExeName)+ "\\res\\main_bg.jpg");
       rl->LoadFromFile(ExtractFileDir(Application->ExeName)+ "\\res\\red_lamp.jpg");
       gl->LoadFromFile(ExtractFileDir(Application->ExeName)+ "\\res\\green_lamp.jpg");
       ListBox1->Canvas->Draw(Rect.Left,Rect.Top,BG);
       ListBox1->Canvas->Draw(Rect.Left+5,Rect.Top+2,ptBitmap);
       ListBox1->Canvas->Draw(Rect.Right-25,Rect.Top+9.5,gl);

Осталось всё это привести в человеческий вид и сделать сглаживание шрифтов. =)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог