Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > чат на VB


Автор: striker 4.8.2005, 05:47
Как-то раз возникло желание написать свой чат (во-первых надо было решить проблему общения в локальной сети, а во-вторых, было самому интересно, смогу ли я). Начал писать... Писал на VB6.0! Мог конечно и на Delphi, но отдал предпочтение именно VB из-за легкости ну и т.д. Для обмена сообщениями использовал компонент dsSocket Winsock Custom Control. В версии 0.1 моего чата уже всё довольно нормально работало, но захотелось большего! Захотел я сделать так, чтобы ползователи сами выбирали цвет своего ника. Пришлось менять стандартный textbox на richtextbox. Всё сделал! Работает! И опять мне показалось мало! Захотелось сделать еще и смайлики. Вот тут и появились первые проблемы! Не нашёл я функции, чтоб картинка из файла сама подгружалась в richtextbox. Пришлось идти обходными путями! Сделал прогу text1.text=richtextbox1.textRTf! Суть вот в чём! Короче переводишь картинку в текст (теги rtf), создаёшь в проекте чата текстовое поле, куда и заносишь эти rtf-теги. Когда надо было вставить смайл, то методом selRTF вставлялся этот текст! Всё бы хорошо, но вот когда стало много смайлов, то управляться с ними стало сложно! Сколько смайлов, столько и текстовых полей соотвественно. Вот такой вот корявый способ! Может кто знает другой способ. Хотелось бы, чтобы смайлы вставлялись из файла-картинки!

И еще одна проблема... Короче в richtextbox можно растягивать картинки! Это хотя не такая уж и проблема, но хотелось бы, чтобы картинки нельзя было растягивать! Посоветуйте, как!


Автор: Akina 4.8.2005, 08:14
Цитата(striker @ 4.8.2005, 06:47)
Хотелось бы, чтобы смайлы вставлялись из файла-картинки!

Это возможно, но по-любому будет криво.

Цитата(striker @ 4.8.2005, 06:47)
бы, чтобы картинки нельзя было растягивать!

Это - особенность RichTextBox...

Вообще-то если хочешь все сразу - то не используй стандартных контролов, у них слишком много уже заложено свойств и поведений. Рисуй по чистой канве.

Автор: CompWorm 5.8.2005, 19:54
сделай невидимое окно с пыхчер-боксом, вставь туды smile.jpg (это ты должен такую неприкольную картинку сделать, куда поместишь строго по столбикам и строкам все смайлы.) создай текстовый файл, где опиши положение каждого смайла в общей картинке (или сразу массив). все. когда появляется тег картинки, программа сверяется с данными массива, и копирует часть smile.jpg с нужным смайлом в буфер!
тупа, правда? smile

Автор: Гость_KEKC 10.8.2005, 16:34
Молодец! Скинь потом на artur_e@list.ru. Я тоже свой чат делал - CCCP_Phone назвал.
- - -
Там, где у тебя должно быть окно с сообщениями, поставь WEB Browser (Microsoft Internet Controls). Он будет с 3D краями, но это можно исправить... HTML знаешь? Да - отлично. Нет - нечего там знать:
В проге, когда обновляется сообщение, создаешь файл (каждый раз он будет переписываться), например "temp.htm" и вписываешь туда текст (ниже). Вот так:
Код:
---
Open iif(len(app.path)=3, app.path, app.path & "\") & "temp.htm" for output as #1
Print #1, "<html><body>" & sMsg & "</body></html>"
Close #1
---
Подразумивается, что в sMsg - текст сообщений. До этого кода его надо создать.
Допустим у тебя в sMsg лежит "Привет всем! smile Как дела?" и ты хочешь вместо ":)"
поставить смайлик из файла "c:\smile.bmp" (можно даже не из файла, а из нэта!).
Тогда делаешь так:
sMsg = Replace(sMsg,":)","<img src='c:\smile.bmp'>")
И ЭТО ВСЁ!!! smile

Можно ещё цвет фона поменять и всё такое...

Автор: Гость_KEKC 10.8.2005, 16:36
Вот такая помесь HTML и VB. Прошу не удалять! К стати, забыл: в конце не забудь удалить html-файл. Kill iif(len(app.path)=3, app.path, app.path & "\") & "temp.htm".

Автор: :) 7.11.2005, 19:10
smile ужастно..

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