Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Компонент отображения картинок и текста


Автор: Glorius 18.7.2009, 18:57
Такая задача. 
Нужно сделать на форме поле, для динамического отображения картинок и текста. Аналог поля "Отправить" во всевозможных аськах. То есть должна быть возможность одновременно с текстом вставить смайлик, который можно было бы сдвинуть пробелом например, или стереть клавишей Backspace. То есть чтобы картинка вела себя подобно тексту. Каким бы компонентом попользоваться? 

По поиску поискал - похоже что простого решения тут нету... можно ли как-то организовать решене задачи с использованием HTML? 

Автор: SVN74 18.7.2009, 20:20
Используй простой Memo + GDI

Автор: Glorius 18.7.2009, 21:20
Цитата(SVN74 @ 18.7.2009,  20:20)
Используй простой Memo + GDI

Мемо знаю, GDI - нет.
Поясните что это такое и с чем это едят?

Добавлено: точнее что это такое - я сейчас выясню, а вот как это можно практически использовать в моей задаче - было бы неплохо разъяснить.

Автор: SVN74 18.7.2009, 23:53
Вот отрывок кода для вывода Gif анимации на Memo (C++ Builder 2009):
Код

HDC DC1 = GetDC(Memo1->Handle);
TGIFImage *T= new TGIFImage();
T->LoadFromFile(L"048.gif");
TextOut(DC1,10,30,"Привет!!!",16);
 BitBlt(DC1,10,10,170,140, T->Images->Frames[Index]->Bitmap->Canvas->Handle,0,0,SRCCOPY);
и т.д.

Автор: Glorius 19.7.2009, 00:02
Цитата(SVN74 @ 18.7.2009,  23:53)
Вот отрывок кода для вывода Gif анимации на Memo (C++ Builder 2009):

А можно пояснить как GDI подключить к билдеру?

Добавлено: у меня 6-ой билдер.

Автор: SVN74 19.7.2009, 00:28
Цитата(Glorius @  19.7.2009,  00:02 Найти цитируемый пост)
А можно пояснить как GDI подключить к билдеру?


Никак, уже все подключено через VCL
Только Gif в 6-ой не будет работать, там надо дополнительно извращаться...
Используй просто JPEG или BMP

Автор: Glorius 19.7.2009, 01:22
Цитата(SVN74 @ 19.7.2009,  00:28)
Никак, уже все подключено через VCL
Только Gif в 6-ой не будет работать, там надо дополнительно извращаться...
Используй просто JPEG или BMP

А надо как раз gif.

Автор: SVN74 19.7.2009, 11:39
Цитата(Glorius @  19.7.2009,  01:22 Найти цитируемый пост)
А надо как раз gif. 


Тогда используй GDI+ 

Автор: Glorius 19.7.2009, 12:09
Цитата(SVN74 @ 19.7.2009,  11:39)
Тогда используй GDI+

Я б с удовольствием, если б знал как это можно практически использовать.

Автор: xvr 20.7.2009, 15:53
Если ты хочешь сделать это 
Цитата

То есть должна быть возможность одновременно с текстом вставить смайлик, который можно было бы сдвинуть пробелом например, или стереть клавишей Backspace. То есть чтобы картинка вела себя подобно тексту.
на основе Memo (без разницы с GDI или GDI+), то тебе придется написать свой редактор  smile 
Попробуй TRichEdit. Сам контрол (RICHEDIT) умеет вставлять картинки, вот только не уверен, что удасться заставить 6ку использовать RICHEDIT 2.0 (он использует 1.0, а в него картинки не вставишь IMHO)

Автор: A5uKa 21.7.2009, 08:09
Program Files\Common Files\microsoft shared\OFFICE12\RICHED20.DLL на 2007 офисе можно  smile 

12ый тобишь. Много плюсов - редактирование таблиц и тд )

Автор: SVN74 21.7.2009, 17:52
Можно конечно подключить GDI+ к Builder 6 (по извращаться с конструктором) и то не все будет работать и с этим придется смериться.
Поэтому предлагаю поменять Builder 6  на  Builder 2009 ( в него уже внедрили все, что нужно по графике) и использовать просто ListBox.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)