SmashChat

 

После построения локальной сети, сразу возникла необходимость в общениями между пользователями сети. Для этого мы стали пробовать разные программы. Сначала пользовались обычным WinChat. Но он ведь может осуществлять соединение только между двумя пользователями. Надо было что-то более лучше. Потом появилась отличная программа quickChat. Мы все очень обрадывались и стали пользоваться только ею. Но со временем всетаки в этой программе было найдено множество глюков и недоделок. Мы пытались обращаться к автору данной программы с просьбой исправления данных ошибок, но автор нас проигнорировал. Т.к. программа хоть и бесплатная для Российских пользователей, но всетаки наши замечания были пропущены мимо ушей. А нормального общения в сети у нас тем неменее не наблюдалось. Поэтому я однажды просто взял и решил! Сделаю свой чат! А что? По идее должно получиться. Вродебы тут ничего особо сложного. Остальные пользователи сети восприняли мою идею как очередной бред и не верили в мои способности. А я тем временем приступил к разработке данной программы. Назвал ее SmashChat. Понятно, что чат для нашей сети. ;-) Я пошел простым путем. И не стал сильно заморачиваться и изобретать собственный велосипед. Я просто стал копировать 1:1 программу quickChat. (простите меня пожалуйста за плагиат ;). Первая версия программы SmashChat была копией quickChat, но дальше пошло все в гору. Я стал придумывать новые фичи и новые возможности. Работа шла полным ходом. Пользователи нашей сети посмотрев мою программу, практически безоговорочно снесли со своих компьютеров глючный quickChat и сразу все хором пересели на мой набирающий силы SmashChat. ;-)
Когда моя программа стала более менее работоспособной и стабильной в работе, то мной было решено выложить ее в инетрнет, дабы дать ей жизнь во внешнем мире. Выложил ее на несколько сайтов в интернете. И результат не заставил себя долго ждать. Сразу очень много пользователей кинулось скачивать мою программу. Постоянно писали письма по поводу тех или иных улучшений. Кто-то находил глюки и просил их исправить. Естетсвенно я все доделывал и исправлял и по мере возможностей пытался выкладывать в интернет новые версии.
Потом однажды мне пришло письмо от человека который занимается составлением списков нового софта для журнала Компьютер Пресс. Моя программа естественно была бесплатной и ее включили в список данного журнала №2 2001 года. В результате программа SmashChat v.1.0.2.116 (3.11.2000) разошлась по стране тиражем 40 тыс экземпляров на компакт-диске вместе с журналом. ;-) За что редаторам большое спасибо.
 
Usefull Software ComputerPeress №2 2001Полезная программа КомпьтерПресс №2 2001
 
На данный момент программа представляет собой большие возможности в общении для пользователей локальных сетей. В том числе программа специально была оптимизированна на работу в многосегментных локальных сетях, т.к. наша сеть является многосегментной. В последней версии программы была введена новая возможность, пересылка файлов между пользователями. И данная фича сейчас находится в стадии совершеннствования и разработки. Также планируется в будущем не заканчивать работу над программой, а продолжать ее как можно в больших направлениях. ;-)
 
Описание программы:
 
Программа - чат для локальной сети.
 
Возможности программы:
Версии для скачивания:
 
Дата Версия Что нового
8.12.2001 SmashChat v.1.0.2.299 (HTTP, архив RAR)
SmashChat v.1.0.2.299 (HTTP, архив RAR SFX)
SmashChat v.1.0.2.299 (FTP, архив RAR)
SmashChat v.1.0.2.299 (FTP, архив RAR SFX)
>>>
27.06.2003 SmashChat v.1.0.2.361 (HTTP, архив RAR)
SmashChat v.1.0.2.361 (HTTP, архив RAR SFX)
SmashChat v.1.0.2.361 (FTP, архив RAR)
SmashChat v.1.0.2.361 (FTP, архив RAR SFX)
>>>
6.09.2003 SmashChat v.1.0.2.412 (HTTP, архив RAR)
SmashChat v.1.0.2.412 (HTTP, архив RAR SFX)
SmashChat v.1.0.2.412 (FTP, архив RAR)
SmashChat v.1.0.2.412 (FTP, архив RAR SFX)
>>>
25.08.2004 SmashChat v.1.0.3.845 (HTTP, архив RAR)
SmashChat v.1.0.3.845 (HTTP, архив RAR SFX)
SmashChat v.1.0.3.845 (FTP, архив RAR)
SmashChat v.1.0.3.845 (FTP, архив RAR SFX)
>>>


Обсуждение программы в форуме:

http://forums.avtograd.ru/viewtopic.php?t=6547722

Скриншоты программы:

Скриншот основного окна программы SmashChat интерфейс SmashChat

Скриншот основного окна программы SmashChat интерфейс WindowsXP

Скриншот основного окна программы SmashChat интерфейс WinAmp

Скриншот основного окна программы SmashChat интерфейс Vasil

Скриншот основного окна программы SmashChat v.1.0.2.360

Скриншот окна пересылки файлов программы SmashChat

Скриншот окна настройки цветов программы SmashChat

История созания программы SmashChat
 
Часть истории за 2000 год безвоздмездно потеряна.
 
+ Переписал работу UDP полснотью на WinApi, раньше было NMUDP. Сейчас на сокетах работают броадкасты 255.255.255.255
+ Теперь размеры окна мессаги сохраняются.
+ Пpи попытки создать лог папка, если её pасположение неизвестно создается и в нее записывается лог.
+ Темy - Заменил с TEdit на TMemo.
+ При выгрузке программы по WM_QUERYENDSESSION - сохраняются все настройки.
+ В мессаге кнопки теперь прикрепляются к правомy краю.
+ Убрал автоматический вход в приват в Away режиме.
+ По дефаулту при первом запуске чата, добавляется в список бродкастов адрес 255.255.255.255.
+ Исправил прикольный глюк, с одинаковыми именами, получалось что если попадут два одинаковых имени, то при переименовании оба переименовывались. Сейчас все ок.
+ Изменил внyтренний сетевой формат сообщений, теперь он стал более оптимальным. Появилась несовместимость чата с ранними версиями.
+ В теме разговора подписывается в скобках кто ее поменял.
+ Все сообщения об ошибках вместо назойливо появлявшихся мессаг боксов, теперь пишyтся в системный канал.
+ Сделал новyю менюшкy - Отключение прокрyтки.
+ Большая новая фича! Hаконец-то доделал фильтрацию двойных пакетов отсылаемых бродкастом если на компе несколько ip адресов. Раньше фильтрация была основана на ip адресе пользователя, и было не очень хорошо, т.к. одинаковые мессаги все равно приходили от одного юзера но с разных ip адресов. Сейчас я сделал, что фильтрация двойных пакетов основывается на имени пользователя.
+ Добавил в фильтрацию двойных пакетов, потомy что забыл в прошлый раз добавить фильтрацию пакетов при переименовании и изменении статyса пользователя.
+ Исправил прорисовкy имени пользователя в списке пользователей, при снятии фокyса ввода со списка пользователей, если горизонтальный скролл бар был сдвинyт вправо так, что имя пользователя не влазило в окошко по горизонтали. Сейчас все Ок.

[10.02.2001]
+ Исправил алгоритм цветовыделения строк, теперь цветовыделение работает прям точно также как и в Golded, раньше надо было со значками ставить обязательно пробелы, и не работало цветовыделение одним и тем же цветом в одной строке - несколько раз. Вот коды цветовыделения: @*clSilver*@ _*clRed*_ &*clLime*& ^*clYellow*^ /*clBlue*/ #*clFuchsia*# %*clAqua*% \clBlack\ _clMaroon_ &clGreen& ^clOlive^ /clNavy/ #clPurple# %clTeal% @clGray@ *clWhite*
+ Многострочные сообщения теперь отсылаются одним пакетом, а не как было раньше - каждая строчка своим пакетом.
+ Добавил менюшку в настройках окна - включение/выключение разукрашивания цветовых кодов символов.
+ При цветовыделении - скрытие цветовых кодовых символов, менюшка.
+ Убрал коды слешей из цветовыделения: $*clBlue*$ $clNavy$ ~clBlack~. Цветовыделение теперь работает просто отлично!
+ Для цветовыделения добавил новый пункт меню: Enabled and Stripped. Цветовые кодовые символы - вырезаются.
+ В цветовыделении яркие цвета теперь выделяются не ** а ||. Тогда все цвета выделяются вот такими кодовыми символами: @|clSilver|@ _|clRed|_ &|clLime|& ^|clYellow|^ $|clBlue|$ #|clFuchsia|# %|clAqua|% ~clBlack~ _clMaroon_ &clGreen& ^clOlive^ $clNavy$ #clPurple# %clTeal% @clGray@ *clWhite*

[12.02.2001]
+ На списке пользователей, если навести на пользователя то курсор меняется со стрелки на руку.
+ В сабже и строке ввода, если всего одна строка, то вертикального скроллбара нету, если больше одной строки, то скроллбар появляется.
+ Раньше при переимновании пользователя его имя как-то странно мелькало, сейчас исправил.
+ В трей хинте, если включено вырезание цветовых кодов, то они вырезаются, если включено скрытие цветовых кодов, то скрываются.
+ Если пользователь в оффлайне, то ему нельзя слать сообщения, к нему нельзя войти в приват, звуковые сообщения посылать тоже нельзя, и еще нельзя смотреть инфо.

[14.02.2001]
+ При запуске чата, если в сабже несколько строк, то не появлялся скролл бар - исправил.
+ В меню на закладках каналов - Close первым в списке.
+ Поправил окошко UDP Settings - теперь в нем все размеры контролов в стиле SmashChat-а.
+ Поправил окошко About под стиль SmashChat.
+ Поправил окошко Sound Events под стиль SmashChat.
+ Поправил окошко User Info под стиль SmashChat.

[15.02.2001]
+ Изменил вид окошка User Info, стало красивее. :)
+ Избавился от автоматического включения скроллбара в сабже и в строке ввода, потому как из-за этого при вставке большого текста чат выполняет некорректную операцию, как это устранить пока не придумал, поэтому пока скролл бары будут просто всегда включены и не пропадать автоматически.
+ Переделал алгоритм создания новых каналов чата, отсюда, переключение между каналами стало быстрее, поиск каналов стал быстрей и это прямой путь после которого будет возможно проще и быстрее сделать фичу пользовательских общих каналов.

[16.02.2001]
+ Сделал чтобы в System Tray на иконке отображался статус пользователя.
+ Усовершенствовал процедуру создания канала. Теперь в чате есть три типа каналов - 1 системный, 2 - общий, 3 - приватный. Причем после создания канала на него ставится флаг и при переключении закладки на этот канал, если он системный то отсылается NickName joins the net, если он общий - NickName joins the chanel, если приватный - NickName joins the chat.
+ В звуковых событиях добавил 3 события join chanel, leave chanel и change user status.
+ Изменил интерфейс в окошке звуковых событий, добавил опцию которая отключает это событие.
+ При нажатии на опцию PC Specker клавишей Enter все события ставятся на PC Specker, раньше была кнопка, ее я выкинул.
+ Исправил глюк, если приходила мессага в канал которого нет в чате, то появлялась критическая ошибка - исправил.
+ Переименовал каналы #Main в #Talks и #Sys в #Main.

[17.02.2001]
+ В меню Window Settings опции сохранения и дефаултов сделал в подменю.
+ События на новую строку в чате перенес из меню над рожей в отдельное меню конфигурации - NewLine Events

[18.02.2001]
+ Сделал чтобы при выходе из программы, во все открытые каналы, слалось соответственно в зависимости от типа канала, что пользователь покинул его.
+ Новое меню - обновление списка пользователей, в нем два подменю: Обновление по таймеру, где можно выбрать интервал в секундах, Обновление при открытии окна чата.
+ Наконец-то сделал чтобы у разных окон чата при переключении между ними Alt+Tab были разные иконки.
+ Наконец-то избавился от главной формы которая была Main, скрытая и не видная, она там бестолку висела в фоне, сейчас главной формой стала основное окно чата, раньше я этого сделать не мог, т.к. не знал как сделать чтобы например при сворачивании главной формы, все остальные формы не сворачивались, но сейчас все по правилам.
+ Исправил глюк со входом в приватный чат, от которого создавались две закладки.

[20.02.2001]
+ Начал делать окошко Channels, возможность создавать новые каналы.

[21.02.2001]
+ Доделал окошко Channels, задействовал все его контролы, кнопки и т.д. Теперь можно создавать каналы, получать список уже созданных каналов, входить в выбранный канал. В списке каналов галочкой отмечаются автосоздаваемые каналы при запуске чата.
+ Устранил глюк, который позволял создавать два одинаковых канала. Кажется каналы работают как надо, потестируем посмотрим.
+ Не работало удаление каналов из списка - исправил.
+ При закрытии канала - активным становится ближайсший.

+ Добавил менюшку настройки каналов в конфигурацию.

[22.02.2001]
+ Нарисовал новые иконки для менюшек конфигурации шрифт и цвета.
+ Добавил новое окно - настройки цветов, тут можно настраивать цвета окна сообщений и главного окна чата. Для окошка мессаги - фон сообщения и цвет строк, причем планируется сделать чтобы строки квоты разукрашивались разными цветами в зависимости от четного или нечетного количества значков квоты >. Для главного окна чата - настройки цвета и фона всех контролов, тема разговора, окны чата, окошко редактирования строки, окошко список пользователей, и имя пользователя. И настройки цветов системных сообщений. На окне настройки цветов есть кнопка Apply которая приводит в в действие все измененные цвета в чате.

[23.02.2001]
+ Нашел wav файлы для трех новых звуковых событий.
+ Исправил недоделку связанную с появлением кнопки главной формы на таск баре, при появлении других окон чата.
+ Небыло звука на событие вход в чат, когда я сам вхожу в чат, сейчас сделал нормально.
+ Новая фича, System Messages, можно включать выключать появление определенных системных сообщений.
+ В настройках окна, в дефаултовых установках, сделал дефаултовые установки цветов окошек чата.
+ Исправил глюк от которого кушались мессаги что юзер вошел в чат, при начале приватного разговора.
+ Исправил недоделку если приходит мессага, что юзер вышел или вошел в канал, а у меня нету такого канала, то звук проигрывался, сейчас все нормально.

[24.02.2001]
+ Переименовал все названия классов со стандартных имен в нестандартные имена смашчата.
+ Изменил алгоритм входа в приватный чат, кажется теперь мессаги о входе в приват не теряются, но это еще надо проверять.
+ Если много раз нажимать обновление информации и потом резко закрыть окно, то по приходу этой информации появлялась ошибка списка - исправил.
+ В каком-то странном случае инфо обновило не то окно - исправил.
+ В окошке каналов - задействовал события DblClick на списках каналов.

[25.02.2001]
+ Рисование эскизов нового интерфейса чата.

[26.02.2001]
+ Рисование эскизов нового интерфейса чата.

[27.02.2001]
+ Устранил глюк от которого не появлялось что пользователь вошел в чат, оказывается если у пользователя окно чата было закрыто, то оно при появлении обновляло список пользователя и как раз отсылка строки о том что пользователь вошел в чат оказывалась в то время, когда пользователя которому отсылалась эта строка - небыло в списке поэтому его Ip адрес небыл определен и мессага отсылалась в никуда.

[1.03.2001]
+ Новый интерфейс - тема раговора внутри заклади канала, строка ввода текста тоже внутри закладки канала. Список пользователей и имя пользователя остались на прежнем месте.

[2.03.2001]
+ Придумал чтобы можно было сворачивать и закрывать окошки темы темы разговора, окошка списка пользователей и окошка имени пользователя.

[3.03.2001]
!!! Программа SmashChat разошлась по стране тиражем в 44 тыс. экземпляров на CD вместе с журналом Компьютер Пресс. ВАУ!!! :)
+ Для основного окна чата по Alt+Tab рисуется hi-color 32х32 иконка.
+ Кнопочки минимизации сабжа, имени и пользователей работают на полную силу.
+ Задействовал кнопки закрытия сабжа, имени и пользователей.
+ В конфигурации в настройках окна, добавил новую менюшку View
+ Вид окон, тут можно включать/выключать или сворачивать/разворачивачивать окошки сабжа, имени и пользователей.

[4.03.2001]
+ Усовершенствовал алгоритм обработки нажатий на кнопочки сворачивания и закрытия контролов.

[6.03.2001]
+ Выкинул самодельные кнопки сворачивания и закрытия, которые были слеплены из TPanel+TLabel и с ручной обработкой нажатия и отжатия. Вместо них поставил стандартные TSpeedButton, но чтобы они не пропадали, пришлось поправить VCL библиотеку, чтобы добавить в TSpeedButton новое свойство AlwaysShow, которое не позволяет кнопке исчезать. Теперь кнопочки SpeedButton есть всегда, а не только тогда, когда на них наведешь мышку.

[9.03.2001]
+ Исправил Tab Order.
+ Добавил дефаултовые цветные макросы.
+ Убрал лишнее мигание Hint In Tray.

[17.03.2001]
! Вышла новая версия программы. SmashChat v.1.0.2.294

[12.04.2001]
+ Сделал рамку вокруг имени и списка пользователей. Для этого пришлось опять править VCL библиотеку.
+ Назначил горячие клавиши для сворачивания и закрытия окошек: Ctrl+F1 - Сворачивание окошка с темой разговора; Ctrl+F2 - Сворачивание окошка с именем пользователя; Ctrl+F3 - Сворачивание окошка со списком пользователей; Alt+F1 - Закрытие окошка с темой разговора; Alt+F2 - Закрытие окошка с именем пользователя; Alt+F3 - Закрытие окошка со списком пользователей;
+ Сделал в менюшке на строке ввода две менюшки: Previous Line Ctrl+PgUp Next Line Ctrl+PdDn.

[14.04.2001]
+ Исправил несколько глюков связанных с неправильной обработкой сворачивания и закрытия окошек.
+ Сделал сохранение состояния View.
+ Добавил новую опцию Left Placement которая отвечает за размещение имени и списка пользователей слева или справа. Ctrl+L - Переключение размещения имени и списка пользователей.
+ Соответственно исправил фичу Default State которая размещает все окошки в состояния по умолчанию.
+ В списке пользователей неактивное выделение теперь рисуется, дефаултовым задизабленным цветом.
+ Избавился от проверок на #0 в процедуре печати строки.
+ Новая фича: Allow Request Info. Разрешение отсылки информации о системе, памяти, активной программе. Если у пользователя запрещена отсылка какой либо информации, то он сам не сможет просматривать эту информацию у других пользователей.
+ Сделал диалог выбора папки для сохранения логов. А то раньше было неудобно писать вручную куда сохранять логи.

[15.04.2001]
+ Сделал на вход в приватный чат горячую клавишу Ctrl+P.
+ Сделал менюшку в списке пользователей Say Nick Ctrl+Y.

[20.04.2001]
+ Избавился от висения в фоне окошка с настройками звуков.

[23.04.2001]
+ Действие SayNick сделал так, как будто это макрос, вставка имени туда, куда поставлен курсор.
+ ctrl+m - массовое сообщение убрал лишнюю обработку в процедуру ChangeChat.

[5.05.2001]
+ Начал проектировать окошко пересылки файлов. Окно представляет собой два ListView. Первый - очередь файлов для отсылки. Второй - очередь файлов для приема. Для приема и отсылки есть Tool кнопки, для управление передачей. И некоторые настройки.

[6.05.2001]
+ Продолжил проекрирование окна пересылки файлов. Придумал статусные сообщения, о статусе приема или передачи файлов. Нарисовал иконки соответствующие статусу. Сделал автоматическое изменение размера последней колонки в ListView причем размер вычисляется с учетом размера вертикального скроллбара. Это же автоматическое изменение размера подключил и к MessagesArchive.

[7.05.2001]
+ В автоматическом изменении размера последней колонки ListView Если не удается узнать ширину вертикального скроллбара, то делается Application.ProcessMessages и повторно получается размер скроллбара.
+ Начал делать прогрессбар в окошке MessagesArchive.
+ Сделал появление окна перед загрузкой сообщений, после загрузки сообщений автоматически показывается последнее в списке сообщение.

[9.05.2001]
+ Доделал прогресс бар, причем скорость загрузки и количество сообщений от прогресс бара практически не зависят. Сам прогресс бар показывает процесс загрузки плавно и красиво.
+ Если фокус ввода на списке пользователей, вход в приватный чат можно вызывать по клавише Enter.

[16.05.2001]
+ Изменил нумерацию версий для архивных файлов. Было: ShCh1022.rar Стало: ShCh2295.rar

! Вышла новая версия программы. SmashChat v.1.0.2.295

[22.05.2001]
+ Изменил дефаултовый размер окна сообщений.
+ Сделал более правильное Quote.

[28.05.2001]
+ Сделал разукрашивание строк квоты в сообщениях.
+ Задействовал разукрашивание цветовых кодовых символов в мессагах, только работает криво как-то.

[29.05.2001]
+ Доделал доконца разукрашивание цветовых кодовых символов в мессагах. Сейчас вообще стало все так красиво! :)

[03.06.2001]
+ Запретил resize окна цветов.
+ Исправил TabOrder в окошке информации.

[15.06.2001]
+ Нарисовал новую иконку для экзешника, теперь рожица более улыбающаяся. Эту иконку я сделал по типу два в одном, т.е. внутри этой иконки содержатся две иконки первая размером 32х32, вторая размером 16х16.
+ Убрал лишние ресурсы иконок в кнопках в окошке Channels.

[18.06.2001]
+ Убрал лишние ресурсы иконок из окошка About.
+ Убрал лишние ресурсы иконок из окошка Message.
+ Убрал лишние ресурсы иконок из окошка Sounds.
+ Убрал лишние ресурсы иконок из окошка Colors.
+ Убрал лишние ресурсы иконок из окошка Connection.
+ Исправил дерганье скроллера в закладке All в архиве сообщений.
+ Сделал показывание иконки на кнопке Send в окошке сообщений, если обычное письмо, то иконка с одним письмом, если массовое, то иконка массового сообщения.
+ Исправил ошибку из-за которой не работала отсылка массовых сообщений из архива сообщений.
+ Устранил мигание лишнего FocusRect в списке пользователей.

[19.06.2001]
+ Переделал алгоритм прорисовки иконок на закладках каналов и загорание их красным цветом. Избавился от ручной прорисовки этих иконок. Сделал чтобы номер иконки получался во время создания нового канала.

[21.06.2001]
+ Избавился от съезжания отступов в Edit, Memo и RichEdit.
+ Сделал прорисовку списка пользователей более оптимальнее с выравниванием строк и иконок по вертикали по центру.
+ Разобрался от чего теряются сабжи, т.е. вставляются старые. Это от того, что было неверное сравнение строк с датой и временем сабжа. Их длина могла быть разной от того, что время было в коротком формате.

[22.06.2001]
+ Сделал стиль закладок каналов. Можно выбрать три стиля, закладки, кнопки и прозрачные кнопки.
+ Исправил библиотеку VCL, чтобы во всплывающих менюшках для стиля RadioItem чтобы рисовались кружочки, а не галочки. Видно в Борланде это забыли сделать, а я доделал.
+ Стиль закладок влияет на бордюры контролов, если стиль кнопочный, то бордюров нету, а если стиль закладочный, то бордюры есть.
+ Сделал сохранение стиля закладок в реестр.
+ Исправил сохранение номера активного канала.

[23.06.2001]
+ Сделал правильную вставку SayNick.
+ При переключении закладок, фокус переводится в строку ввода.

[24.06.2001]
+ Нарисовал иконки для всплывающего меню правки текстов.
+ Сделал всплывающее меню правки текстов.

[25.06.2001]
+ Усовершенствовал алгоритм разукрашивания цветовых символов. Теперь он стал работать быстрее.
+ Исключил возможность из-за которой во время работы алгоритма разукрашивания цветовых символом, могли произойти сбои в виде доступа не в ту область памяти. Связано это было с тем, что индексы могли иметь отрицательные значения, это самое я и исключил.
+ При закрытии или сворачивании контролов сабжа, имени или списка пользователей, отключается TabStop. Чтобы по переключении при помощи Tab было правильное.
+ Сделал задизабливание пунктов всплывающего меню правки.
+ Немножко подрисовал иконки из меню правки.

[26.06.2001]
+ Усовершенствовал алгоритм перекодировки NRK.
+ В мессагах исправил обработку перекодировки NRK.

[28.06.2001]
+ В DND режиме в мессагах не работала прокрутка, исправил.
+ Добавил опции правки во всплывающее меню над строкой редактирования сообщения для чата.
+ В меню правки в сообщении сделал возможность вернуть отмену.
+ Поправил иконки правки, Отменить и Вернуть.

[29.06.2001]
+ При переименовании пользователя, на закладке приватного чата, сбивалась иконка, исправил.
+ При переименовывании пользователя, все открытые окна сообщений к этому пользователю, тоже переименовываются.

[30.06.2001]
+ Убрал всплывающее меню правки с крутящейся рожи, т.к. на роже править по определению нечего.
+ Подправил иконку showhide.

[02.07.2001]
+ Всплывающее меню правки сделал на все окна где можно редактировать текст. В том числе в окнах настройки.

[03.07.2001]
+ Исправил Accsess Violation при нажатии на Esc в строке редактирования текстового сообщения для чата.
+ Сделал, чтобы во всплывающем меню правки, в зависимости от опции ReadOnly компонента редактирования текста, были доступны или не доступны отдельные функции правки.
+ Исправил меню правки на английский язык. Почему-то я забыл и сделал его русским.
+ Во всех всплывающих меню сделал автоматические ярлычки &_ для быстрого выбора по горячей клавише.
+ Исправил порядок сравнения даты сабжа.

[04.07.2001]
+ При переименовывании пользователя, переименовываются окна Req Info.
+ Поправил в библиотеке rxlib алгоритм вставки в richedit первой строки. Теперь в сообщениях строки добавляются стандартным способом. ???? в сообщениях больше быть не должно.

[05.07.2001]
+ Исправил ошибку, от которой был кривой сабж.

[06.07.2001]
+ Default Sizes сделал, чтобы размеры списка пользователей, сабжа и строки ввода становились про умолчанию.
+ Default State заменил на Default View. Разворачивает все окошки.

[07.07.2001]
+ Исправил вставку максосов в readonly эдиты.
+ Исправил установку ширины списка пользователей, если при запуске чата этот список свернут. Сейчас длина нормальная.

[08.07.2001]
+ Начал делать опцию в меню правки для разукрашивания выделенного текста, цветовыми символами.

[09.07.2001]
+ Сделал новую опцию в меню правки для разукрашивания выделенного текста, цветовыми символами.
+ В окнах с текстом по двойному щелчку выделяется слово без пробелов, раньше оно всегда выделялось с пробелами. Сейчас с пробелами выделяется если во время двойного щелчка сдвигать мышку на пару пикселей.

[12.07.2001]
+ При создании outmessage после добавления текста, менялось свойство position, что приводило к recreatewnd и сбросу свойства def.style у richedit. Сейчас я это исправил, возможно что больше ???? появляться не будет.

[15.07.2001]
! Вышла новая версия программы. SmashChat v.1.0.2.296

 
Что нового в версии 1.0.2.299:
 
++++++++++
август сентябрь 2001 - много много делал для пересылки файлов.
++++++++++

[21.10.2001]
+ Переделал алгоритмы обработки кнопок Reply и Quote в мессагах. Зачем было уничтожать и потом создавать новое окно, при этом еще и запоминать его позицию, текст и прочее... плюс из-за этого пересоздания окна в RichMess постоянно сбрасывался шрифт и разцветка даже иногда появлялись ???????? вместо букв? Этого всего не нужно. Сделал просто чтобы появлялись и исчезали нужные кнопки и добавлялись кавычки квоты. И сейчас должно работать намного лучше.

[1.11.2001]
+ В пересылке файлов, избавился от ошибки ERR_SENDPKT. В случае этой ошибки, отсылка пакета повторяется до 10 раз и уже после 10 неудачных попыток, выдается эта ошибка.

[2.11.2001]
+ Сделал чтобы не сохранялся размер окна мессаги, если она развернута на весь экран (Maximize).

[4.11.2001]
+ Исправил глюк с неправильным созданием и неправильным перезаписыванием файлов логов чатов, приватов и мессаг.

[5.11.2001]
+ Из-за неправильной обработки IOResult не открывался с первого раза Messages Archive, исправлено.

[9.11.2001]
+ Сделал автоматическую вставку в окошко About, даты компиляции.
+ Запретил отсылку файла в OffLine режиме, исправил обработку менюшки и кнопки [+] в окне файлов, чтобы работало корректно, если выбран пользователь в OffLine режиме.

[11.11.2001]
+ Исправил Access Violation при входе в приватный чат. Ошибка была в процедуре печати новой строки еще в не созданный канал.
+ Улучшил процедеру получения доступа в канал, следовательно все операции работы с каналами стали работать быстрее.
+ Исправил ошибку из-за которой сбивалось разукрашивание цветовыми кодовыми символами, мессаг, в которых встречались пустые строки.
+ Поправил размеры крайних отступов всех окон, они оказывается были слишком маленькие.
+ В окошке звуков не все галки отключались при отключении звука.

[12.11.2001]
+ Отрубил нафиг фичу 98 винды, что новые окна появляются не на экране на переднем фоне, а появляются на панели задач и мигают. Гадость это теперь все работает как надо. Появляется, значит появляется на переднем фоне.

[13.11.2001]
+ Сделал чтобы при изменении количесва каналов, правильно менялось вертикальное положение контролов с именем и списком пользователей.
+ Исправил ошибку в результате которой сбрасывался левый отступ RichEdit в мессагах.

[19.11.2001]
+ Сделал, чтобы при рестарте Explorer-а производилась перезагрузка Tray иконки.

[8.12.2001]
+ При приеме бродкастового сообщения SC_UPDATEUSERSLIST - обновляется список пользователей.

! Вышла новая версия программы. SmashChat v.1.0.2.299

 
Что нового в версии 1.0.2.361:
 
[28.05.2003]
! Возобновил работу над чатом.
 
[29.05.2003]
+ Испаравил ошибку из-за которой если небыл создан приемный каталог для файлов, то файлы не принимались. Сейчас приемный каталог создается автоматически.
+ Спустя более чем 1,5 года я всетаки сделал чтобы появляющееся окошко с новым сообщением прокручивалось в самый конец текста. Оказывается перед прокруткой в конец при помощи RichMess.SelStart:=MaxInt; Надо было сделать Application.ProcessMessages; Чтобы выравнивание wordwrap завершило свою работу. Теперь должно быть все Ок.
+ Изменил формат вывода чисел в окно FilesQueue. Сделал чтобы всегда выводился ноль после запятой.
 
[30.05.2003]
+ Если окно чата открыто и не активно то в случае установленной галки Popup Chat Window автоматически активируется окно чата.
+ Если окно чата открыто и не активно то иконка в трее начинает мигать.
+ Новая фича Hot Key for Popup. Можно задать горячую клавишу для всплытия основного окна чата. При помощи RegisterHotKey и AddGlobalAtom.
 
[31.05.2003]
+ Исправил ошибку из-за которой постоянно мигала иконка в SystemTray.
 
[4.06.2003]
+ Нарисовал иконку для менюшки выбора горячей кнопки всплытия.
 
[11.06.2003]
+ Исправил таблицу перекодировки клавиатуры из рус/лат. NRK Convert.
+ Сделал чтобы при переключении NRK convert также переключалась раскладка клавиатуры.
 
[22.06.2003]
+ Сделал новую фичу - смайлики. Добавил 22 вида графических смайликов, которые вставляются как в основной чат, так и в мессаги. Недостаток: вставление смайликов осуществляется через Clipboard, поэтому он очищается.
+ Сделал также чтобы смайлики можно было вставлять из меню редактирования в мессаги и в остальные текстовые строки ввода.
+ Также в этом меню добавил пункт Paste line from macros.
 
[23.06.2003]
+ Подправил картинки некоторых смайликов.
 
! Вышла новая версия программы. SmashChat v.1.0.2.361

 
Что нового в версии 1.0.2.412:
 
[11.08.2003]
+ Исправил ошибку из-за которой в WinXP фильтр одинаковых сообщений работал неправильно и поэтому раздваивались строки.
 
+ Добавил в проект Riched20.dll версии 3.0. Раньше была версия 2.0. В версии 3.0 поддерживается выделение ссылок \\computer, www, http://, ftp, ftp://. Также в новой версии поддерживается плавная прокрутка основного окна вывода строк чата или сообщений.
+ Соответственно для новой версии riched20.dll подрпавил работу сообщения где неправильно работало цветовыделение последней строки.
 
[17.08.2003]
+ Сделал чтобы в основном окне чата работала прокрутка при помощи колеса мышки.
+ Если строка редактирования строки чата имеет только одну строку, то при нажатии Up, Down производится просмотр истории вводимых сообщений. Если в строке редактирования строки чата больше одной строки, то при нажатии Up, Down производится движение курсора для редактирования.
+ Во время редактирования строки чата если размер вводимой строки маленький и в нем вмещается только одна строка то строка отсылается при нажатии на Enter. Если размер окна вводимой строки больше двух строчек то при нажатии на Enter осуществляется ввод новой строки для редактирования многострочного сообщения, а отослать многострочное сообщение можно при помощи нажатия Ctrl+Enter.
 
[20.08.2003]
+ Избавился от ??? в подсказке, которые появились после внедрения richedit 3.0
 
[22.08.2003]
+ Исправил алгоритм обработки вставки и редактирования текста в сообщениях. Теперь при квотировании не теряются цвета и смайлики.
+ В сообщениях когда просмотр то каретка не показывается. Показывается только во время редактирования.
 
[23.08.2003]
+ Исправил смайлики на стандартные. Без слэшей.
+ Добавил возможность отключения смайликов в Configuration/Window Settings/Show Smiles
+ Убрал настройку New Line Events/Scroll Chat и сделал что окна чата прокручивается только тогда, когда позиция скролла в самом низу. Так, как это сделано в Mirc.
+ Исправил всплытие главного меню, которое не работало в WinXP.
+ Подправил алгоритм смены горячих клавиш для редактирования однострочного и многострочного сообщения чата.
+ Если пользователь вышел из чата то начатое сообщение отсылалось "в никуда" сейчас оно никуда не отсылается.
+ Не работала табуляция в мессаге когда курсор мыши находился над окном.
+ Включался режим вставки (Insert) в строке редактирования чата.
+ Исправил прокрутку скролл бара основного окна чата. Теперь доконца.
+ Добавил в список Beta testers - Леху Малинского.
 
[24.08.2003]
+ Оказывается что когда я исправил щель у скролл бара, то при этом опять появился отступ между последней строкой и нижнем краем окна. Вернул обратно эту щель, пускай будет, ведь ее немножко видно только в начале, когда окно еще не заполнено строками, а потом становится все ок.
+ Исправил ошибку из-за которой нельзя было поставить подряд несколько :!: :?: знаков, которые выделяются двоеточиями.
+ Исправил все глюки со всплывающими меню, как в WinXP так и в Win98.
+ Исправил недоделку из-за которой в архиве сообщений при просмотре отсылались пустые сообщения, а также появлялось пустое сообщение при нажатии Quote.
 
[25.08.2003]
+ Изменил алгоритм обработки написаного сообщения перед отсылкой. Теперь сообщение отсылается действительно в том виде, какое оно было во время редактирования. При этом если строки с цветами или смайликами изменялись, то они отсылаются действительно в измененном виде. Также сейчас стала лучше сохраняться цеветовая раскраска и смайлики.
 
[28.08.2003]
+ Изменил алгоритм определения запуска второй копии программы.
 
[4.09.2003]
+ Кое что подправил в алгоритме скроллинга окна чата.
+ Если начато сообщение для пользователя и он во время редактирования вышел в OffLine то отсылка пользователю сообщения не производится.
 

[6.09.2003]
! Вышла новая версия программы. SmashChat v.1.0.2.412. Наверное это последняя версия типа "v.1.0.2" следующие будут "v.1.0.3".

 
Что нового в версии 1.0.3.845:

[6.09.2003]
+ Начал потихоньку внедрять скины. Сделал менюшку Configuration/Window Settings/Skins в котором появляется список скинов находящихся в каталоге Skins\ Также добавил менюшку в которой можно выбирать каталог где хранятся скины.

[7.09.2003]
+ Внедрил в чат Skin Endgine, который я разрабатывал отдельно почти все лето. Многое заработало сразу, многое надо доделывать. Однако смена скинов уже работает.
+ Сделал чтобы работали кнопки сворачивания и закрытия Subject.
+ Сделал чтобы работали кнопки сворачивания и обновления списка UsersList.
+ Сделал чтобы работала кнопка закрытия списка UsersList.
+ Удалил Tabs Style.
+ Сделал правильную работу LeftPlacement.
+ Сделал чтобы правильно работала установка минимальных размеров по высоте для Subj, Edit, Nick.

[8.09.2003]
+ Исправил ошибку из-за которой свернутые Subj или UsersList после перезапуска программы портили свой размер.
+ Исправил несколько ошибок в алгоритме смены скина. При этом сохраняется состояние окна, а также устранено всякое мигание при перерисовке и изменении размеров элементов окна.
+ Сделал чтобы создавались закладки и нормально работали.
+ Избавился от старого TabControl и сделал чтобы все закладки хранились на панели pnTab. При этом также сами каналы RichEdit вставляются на панель pnChat.

[9.09.2003]
+ Сделал чтобы работало всплывающее меню над закладками.
+ Сделал чтобы закладки перерисовывались в случае, когда в них происходят изменения.
+ Исправил алгоритм определения активности окна для перерисовывания заголовка.
+ Сделал чтобы все цвета из окна настройки цветов сохранялись в файл скина.
+ Исправил исчезание текста в текущем канале, когда добавлялась новая строка со сдвигом в неактивный скрытый канал.

[10.09.2003]
+ Исправил исчезание текста при переключении на канал, в который добавлялись строки в неактивном виде и когда этот канал еще ни разу не переключался.
+ Сделал BackGround для списка пользователей.
+ Сделал чтобы у закладки ширина не могла становиться меньше минимальной.
+ Исправил чтобы при переименовании пользователя, соответствующая закладка также перерисовывалась и изменяла свою ширину в соответствии с новым именем.

[11.09.2003]
Сегодня вторая годовщина атаки террористов на США в результате, которой были взорваны два небоскреба всемирного торгового центра в НьюЙорке. Опять по телевизору показывают тоже самое что было два года назад в прямом эфире. Зрелище можно сказать шокирующее.
+ Уменьшил ResizeRegion для верхних углов окна до 4-х пикселей, т.к. в стиле WinAmp трудно было попасть на кнопку закрытия окна. Раньше этот регион был 8 пикселей.
+ Исправил ошибку из-за, которой при создании нового канала неверно вычислялась ширина закладки.
+ В процедуре установки основного шрифта исправил чтобы в каналах не терялись цвета строк.

[12.09.2003]
+ Сделал прозрачным фон у сабжа.
+ Исправил процедуры обработки Esc и Enter у сабжа и ника.
+ Сделал чтобы настройки цветов сохранялись и загружались в отдельной процедуре. Также сделал чтобы цвета сохранялись после выходя из программы.
+ Выкинул нафиг LockWindowsUpdate из процедуры вставки макросов. Из-за этого происходила дурацкая перерисовка рабочего стола.
+ Убрал везде в RichEdit-ах манипулирование свойством HideSelection т.к. оно оказывается означает Скрывать Выделение при выходе, а не то что вообще не показывать это выделение. Сделал чтобы везде оно было Включено.
+ Сделал чтобы настройки цветов шрифтов сохранялись в .ini скина в секцию [colors]
+ Сделал чтобы правильно и нормально работала процедура Default Fonts.
+ Поправил работу настройки Window Settings\Main Font...
+ Добавил новую настройку Window Settings\Sys Font... Сделал чтобы настройка Sys Font работала правильно.
+ При установки нового системного шрифта производится перерасчет ширины закладок всех каналов.
+ Сделал чтобы при изменении шрифтов они сразу сохранялись в .ini скина. Также настройки шрифтов сохраняются при выходе из программы.
+ Исправил установку шрифта в мессагах.
+ Сделал чтобы не сохранялся размер и позиция главного окна если оно Maximized.
+ Неправильно работал TabOrder из-за того, что небыло публишед проперти TabOrder и TabStop в моем компоненте PanelSc.
+ Исправил обработку нажатий клавиш в мессаге.

[16.09.2003]
+ Переделал алгоритм вставки смайликов на новый. Теперь не используется Clipboard и все работает гораздо лучше. Применил алгоритм LoadFromStream.
+ Исправил неверную прорисовку каретки во время вставки макросов.
+ Задействовал прорисовку и обработку строк прокрутки для всех полей.

[17.09.2003]
+ При ошибке отсылки пакета раньше выводилось OutSocket Error. Теперь сделал чтобы также выводилось имя пользователя и его ip адрес на который не удалось отослать пакет.
+ Избавился от ручного анализа всех нажимаемых кнопок на контролах главного окна, которое производилось по событиям OnKeyDown. Теперь все работает гораздо проще при помощи горячих клавиш в основном меню.

[19.09.2003]
+ После мигания иконки в трее бывало что она останавливалась в фиолетовом состоянии. Исправил, теперь при остановке мигания ставится желтая иконка.
+ Сделал чтобы перерисовывался скроллбар основного окна чата при листании его при помощи PgUp, PgDn.

[20.09.2003]
+ Исправил алгоритм обработки выбора ников для переименования.
+ Исправил ошибку из-за которой скроллбары и справа стоящие рядом с ними элементы менялись местами при смены скина, в котором размеры скроллбаров отличаются от размеров в текущем скине.
+ Сделал чтобы в скине можно было задавать следующие параметры цветов: tab_hicolor - цвет текста на закладках, когда в канале новая строка; gh_color - цвет текста для group head, раньше было тоже самое что tab; gh_bkcolor - задний цвет текста group head если нет прозрачности; us_hicolor - цвет фона выбранного текста в списке пользователя в фокусе; usf_hicolor - цвет шрифта выбранного текста в списке пользователя в фокусе; us_locolor - цвет фона выбранного текста в списке пользователя; usf_locolor - цвет шрифта выбранного текста в списке пользователя.
+ Исправил недоделку из-за которой не сохранялся цвет сплиттера.
+ Добавил в скин новые параметры для координат: sv_ntrack - бегунок скролл бара в нормальном состоянии; sv_ptrack - бегунок скролл бара в нажатом состоянии. Соотвественно сделал, чтобы рисовался нажатый скролл бар.

[21.09.2003]
+ Исправил ошибку из-за которой неправильно выбирались ники.
+ Внедрил skin endgine в мессагу. Сделаны все обрамления, заголовок окна, заголовок сообщения, задний фон.
+ Сделал чтобы в мессаге при наведении мыши на края появлялись стрелки для изменения размеров.
+ Задействовал алгоритмы изменения размеров для формы сообщения.
+ Сделал алгоритмы прорисовки кнопок в мессаге.
+ В прорисовке кнопок на мессаге если координаты fill элемента равны 0,0,-1,-1 то для данной кнопки средняя часть fill не рисуется также как и не рисуются надписи.
+ Сделал обработку алгоритмов нажатия кнопок в сообщениях.
+ Сделал чтобы в зависимости от того если мессага входящая или исходящая менялся набор кнопок.
+ Окончательно удалил на мессаге все старые кнопки типа BitBtn.
+ Сделал чтобы в скине для заголовка мессаги можно было задавать цвета текста: mb_color - цвет текста для message group head; mb_bkcolor - задний цвет текста message group head если нет прозрачности.

[22.09.2003]
+ Сделал скроллбар для мессаги.

[23.09.2003]
+ Добавил в скины параметры для неактивности кнопок заголовка окна: fbi_sys, fbi_min, fbi_max, fbi_res, fbi_close.
+ Изменил в скине название параметра кнопки для изменения ника: cn_nick, cp_nick.
+ Добавил новые параметры для background. Чтобы задний фон небыл общим, а можно было задавать отдельные задние фоны для сабжа, ника, чата, списка пользователей и мессаги: bk_subj, bk_chat, bk_edit, bk_nick, bk_users, bk_mess.
+ Поправил алгоритмы прорисовки элементов с заполнением fill. Данное заполнение выполняется только в том случае, если координаты больше нуля. В результате данного условия программа не должна зависать при указании неправильных координат.
+ Нарисовал окончательный вариант скина WinAmp, в котором определены абсолютно все компоненты.

[24.09.2003]
+ Исправил недоделку из-за которой при сдвигании текста внутри чата при помощи выделения мышкой не прорисовывался скроллбар.
+ Нарисовал окончательный вариант скина Windows 9x.
+ Убрал из .ini скина лишние параметры: tmhs, tchs, tphs т.к. в выбранном канале hi подсветки никогда не бывает. переименовал tmls в просто tms чтобы не указывалось lo.
+ Убрал возможность редактирования пришедшего сообщения в режиме просмотра.
+ В мессага сделал возможность нажимания кнопок с клавиатуры при помощи горячих клавиш. alt+s - send alt+c, esc - close alt+o - ok alt+m - main alt+p - private alt+r - reply alt+q - quote.
+ Исправил алгоритм вычисления центра заголовка окна.
+ Исправил недоделку. При отсылке сообщения из архива терялась расскраска и смайлки. Теперь все ок.
+ Сделал чтобы в group head мессаги писалось от кого и к кому данное сообщение. Тоже самое сделал для сообщений из Message Archive.

[26.09.2003]
+ Исправил ошибку. В мессаге в режиме редактирования сообщений по горячим клавишам можно было нажимать на кнопки мессаги режима просмотра.
+ Сделал чтобы в скине можно было задавать параметры цвета текста для закладок и для кнопок в сообщении. Причем цвет можно задавать для двух режимов, для нажатого и отжатого: tabs_color, tabu_color, mbn_color, mbp_color.
+ При перезагрузке текущего скина неправильно устанавливались размеры для скроллбоксов. Исправил.

[29.09.2003]
+ Исправил двойное появление всплывающего меню над сабжем и ником.
+ В меню редактирования изменил название 'Paste line from macros' на простое названием 'Macroses'.
+ В сообщении сделал новое всплывающее меню над кнопками, где показаны горячие клавиши для send, cancel, ok, main, private, reply, quote.
+ Задействовал OnUrlClick в сабже и в строке редактирования.
+ Перенес меню Skins из Window Settings в Configuration.
+ При отсылке строки, если такая строка уже есть в истории то еще раз в историю она не добавляется.
+ Доконца дорисовал дефаултовый скин SmashChat.

[30.09.2003]
+ Исправил ошибку изменения порта открытого сокета. Похоже что в Win98 для изменения номера порта было достаточно изменить параметр порта в переменных сокетов. В WinXP данный метод не проходит, поэтому приходилось перезапускать программу полностью. Сейчас я сделал чтобы закрывались все сокеты со старым портом и заново открывались с новым портом.
+ Исправил алгоритм просмотра истории сообщений чата. (prev line, next line).

[1.10.2003]
+ Начал делать чтобы можно было менять иконки меню. Добавил в .ini скина в секцию [general] параметр: bmpi_file - файл с иконками. В данном файле должны содержаться иконки, которые загружаются в ImageList и подставляются каждая на свои места. При этом иконки обязательно должны быть квадратными. Высота иконок может быть любой и равняется высоте данного bmp файла.
+ Если файл с иконками отсутствует то в меню нет вообще никаких иконок, а в трее появляется иконка Application.
+ Исправил индексы иконок для системного трея.
+ Исправил алгоритм прорисовки иконок в списке пользователей.

[2.10.2003]
+ Доделал чтобы в списке пользователей корректно рисовались иконки статуса пользователей в случае если в скине размер иконок будет любой.
+ Сделал чтобы рисовалась и нажималась кнопка для смены статуса пользователя в строке ввода ника.
+ Исправил давнюю недоделку. Если текущий статус OffLine то отсылать сообщения нельзя, также как и делать всякие другие действия.
+ Исправил все индексы иконок в основном окне чата.
+ Исправил все индексы иконок в окне настройке UDP Connection.
+ Исправил все индексы иконок в окне сообщения.
+ В окне сообщения сделал чтобы на панели задач показывалась иконка одинарного или массового сообщения. Соответственно во всплывающем меню с горячими кнопками на менюшке Send рисуется тоже одинарная или массовая иконка. Во всех пришедших сообщениях на панели задач также иконка соответсвующая.
+ Исправил все индексы иконок в окне просмотра архива сообщений.
+ При ошибке загрузки скина при запуске программы выдается сообщение, в котором указан полный путь к файлу скина, который не удалось загрузить.

[3.10.2003]
+ Исправил все индексы иконок в окне о программе (About).
+ Исправил все индексы иконок в окне информации пользователя (Request Info).
+ Исправил все индексы иконок в окне звуковых событий (Sound Events).
+ Исправил все индексы иконок в окне каналов (Channels).
+ Исправил все индексы иконок в окне настройки цветов (Colors).
+ Исправил все индексы иконок в окне пересылки файлов (Files Queue).
+ Исправил ошибку из-за которой не перезагружались иконки при изменении скина. Приходилось перезапускать программу.

[4.10.2003]
+ Дорисовал доконца набор иконок для скина Smash.
+ Исправил индекс иконки Private Chat.
+ Исправил недоделку в процедуре загрузке иконок. Было что если файла с иконками нету, то оставались предыдущие. Сейчас просто все иконки исчезают.
+ Сделал всплывающее меню для изменения статуса пользователя при нажатии на иконку статуса рядом с ником.
+ Добавил предварительное выключение проигрывания звуковых событий при возникновении любых звуков.
+ Исправил глюк, который обнаружил Михан Соколов. Было что если свернутое сообщение разворачивая нажать Esc для закрытия окна, то вываливалось жуткое сообщение Accsess violation. Происходило это из-за того что в одном месте было необдуманно поставлена процедура Application.ProcessMessages. Сейчас все ок.

[5.10.2003]
+ После Quote в сообщении при вставке макроса и при движении каретки, эта каретка лишний раз прорисовывалась в начальной позиции. Исправил.
+ Сделал чтобы минимальный горизонтальный размер сообщения задавался в соответствии с размерами кнопок сообщения, которые задаются в каждом скине по своему.
+ Начал делать две новых настройки для логов. Max Chat Lines, Max Message Lines. В меню настроек Logging можно задавать количество хранимых строк для окон чата и для сообщений. Все старые строки не входящие в это количество удаляются, тем самым не занимая оперативную память. Если задать 0 то данная функция отключается. По умолчанию для чата количество установлено в 200 строк, а для сообщения 20 строк. В сообщении имеется в виду количество строк цитирования.
+ Сделал чтобы в теме разговора и в имени пользователя отображались цвета и смайлики.
+ Удалили настройку Window Settings\Color Codes\Enabled and Hided. Т.к. скрыть символы на фоне с задней картинкой очень сложно.
+ Изменил положение даты и времени в заголовке темы разговора. Было ' Subject by Radus [10.10.2003 - 12:12:12] ' стало ' [10.10.2003 - 12:12:12] Subject by Radus '.

[6.10.2003]
+ Убрал появление стандартного скроллбара у списка пользователей.
+ Исправил нажимание стрелок скроллбара у списка пользователей, если в списке только один пользователь.
+ Испраивил запаздалую прорисовку скроллбаров темы разговора, чата и строки ввода.
+ Избавился везде от гребанной фигни как MouseMoveSetFocus. Теперь если мышкой двигаешь по полю чата то автоматом фокус никуда не ставится. Раньше это надо было для того чтобы работала прокрутка колесиком мышкой, но теперь я придумал как это сделать по другому без фокуса.

[7.10.2003]
+ Сделал чтобы перерисовывался скроллбар списка пользователей при добавлении или удалении пользователя в списке.
+ Включил работу колеса мышки на списке пользователей, а также сделал чтобы работала прокрутка окна чата когда фокус ввода находится на списке пользователей.
+ Поправил в наборе иконок в скинах задний фон. Сделал его сиреневым, т.к. старый розовый не работал в 16 бит режимах рабочего стола.
+ Сделал также чтобы колесо мышки на списке пользователя работало даже тогда, когда на нем нет фокуса ввода.

[9.10.2003]
+ Наконец сделал чтобы при прокрутке колесом мышки прорисовывались скроллбары.
+ Исправил обработку разукрашивания текста и вставки графических смайликов в теме разговора. Раньше там сбивались индексы из-за перевода строки, из-за чего разукрашивалось не на том месте где надо.

[10.10.2003]
+ Устранил подмаргивание выделенной записи пользователя в списке пользователя. Когда осуществляешь прокрутку списка пользователей при помощи колеса мышки и при этом на списке пользователя нету фокуса ввода.

[11.10.2003]
+ Улучшил алгоритм обработки прокрутки при помощи колеса мышки. Теперь прокрутка осуществляется в независомости от того где расположен фокус ввода. И этот фокус ввода не изменяет своего положения на момент прокрутки. В качестве плюса, в каналах при прокрутке текста если добавляется новая строка то положение скролла остается в томже положении, а раньше оно сбивалось и упрыгивало на самую последнюю строчку.
+ Кое что подправил в алгоритме установки нового шрифта. Теперь после смены скинов шрифты сбиваться на предыдущие не должны.

[12.10.2003]
+ Сделал правильным алгоритм установки цветов в Subj, Nick, Edit. Теперь При перезагрузке скина или просто при изменении цветов, не теряется цветовыделение и смайлы.
+ При загрузке нового скина сделал чтобы окошки сообщений также перезагружались на новый скин.
+ Запретил отсылку пустых строк в режиме многострочного редактирования сообщения чата.

[13.10.2003]
+ Сделал чтобы в списке пользователей работало цветовыделение. Притом цветовыделение работает как для Enabled так и для Stripped.
+ Изменил коды для цветовыделения: w[White]w s[Silver]s r[Red]r l[Lime]l y[Yellow]y b[Blue]b f[Fuchsia]f a[Aqua]a c[Black]c g[Gray]g m[Maroon]m e[Green]e o[Olive]o n[Navy]n p[Purple]p t[Teal]t. Также данное цветовыделение регистронезависимое. Т.е. можно выделять большими буквами: W[white]W Буквы определяющие цвет во всплывающем меню редактирования указаны подчеркиванием. Изменение данного алгоритма позволило избавиться от проблем со старыми кодовыми символами, где они постоянно конфликтовали со ссылками и с именами файлов.

[14.10.2003]
+ Убрал из прорисовки цветов в списке пользователей динамический массив цветов. Из-за этого динамического массива происходила ошибка Accsess Violation. Сделал проще - применил вместо массива обычную строку.
+ Устранил недоделку из-за, которой при изменении скина у открытых мессаг не менялись иконки на панели задач.
+ Устранил недоделку из-за, которой в списке пользователей не выделенные записи рисовались только черным цветом.
+ Сделал чтобы в списке пользователей прорисовывались графические смайлики. При этом если они отключены в меню, то соответственно не прорисовываются.
+ Подправил алгоритм цветовыделения с тем, чтобы не зацикливался на неполноценных кодах цветов. Например было если встречается код начала расцветки, а конца для этого кода нет, то зацикливалось.
+ Сделал чтобы смайлы в списке пользователей в случае если высота шрифта больше высоты смайла, то смайл рисуется с выравниванием по вертикали.
+ Сделал установку минимального размера сплиттера списка пользователей.
+ Исправил установку нового имени пользователя после переименования, раньше работало, но если имя не меняется, а меняется только цвет, то цвет не менялся.

[15.10.2003]
+ Написал процедуру вырезания цветовых кодовых символов.
+ Задействовал вырезание цветовых кодовых символов во всплывающей подсказке.
+ Задействовал вырезание цветовых кодовых символов в заголовке теме разговора.
+ Задействовал вырезание цветовых кодовых символов в закладках.
+ Задействовал вырезание цветовых кодовых символов в заголовках сообщений и в кнопках на панели задач сообщений. Также сделал чтобы при переименовании пользователя, в открытых сообщениях также все корректно переименовывалось.
+ Задействовал вырезание цветовых кодовых символов в окне информации о пользователе.
+ В окошке информации сделал чтобы в UserName писалось имя пользователя под которым осуществлен вход в систему.
+ Убрал в окне информации дурацкие - = cool = - префиксы.

[16.10.2003]
+ Сделал для главного окна чата Caption = [#Chanel] - ProgName.
+ Сделал чтобы в трее писался текущий режим ProgName - DND mode.
+ Подправил. Если главное окно свернуто и мы двойным щелчком жмем на трей иконку, то окно разворачивается из минимизированного состояния.

[17.10.2003]
+ Исправил алгоритм вычисления координат выравнивания по центру в прорисовке Tabs, GroupHead, MessButtons.

[18.10.2003]
+ Еще раз поправил алгоритм вычисления координат для надписей Tabs, GroupHead, MessButtons.

[25.10.2003]
+ Исправил ошибку: Если в мессаге вписывать новые пустые строки посреди строк квоты то проявляется глюк в виде вставки ненужной строки с текстом.

[13.11.2003]
+ Исправил ошибку из-за которой не сохранялась позиция главного окна, хоть при этом стояла галка.
+ Сделал также чтобы сохранялась позиция окна сообщения.

[8.01.2004]
С новым годом товарищи ! ;)
+ Сделал красивое обрезание надписей по длинне для заголовков GroupHead. Раньше если надпись не влезала, то она вообще не рисовалась, сейчас рисуется всегда, только если не влазиет, то обрезается.

[30.04.2004]
+ Сделал, чтобы отсылку сообщения можно было отсылать не только по Alt+S, но и по нажатию Ctlr+Enter для совместимости со стандартом.

[1.04.2004]
+ Сделал, чтобы в режиме OffLine нельзя было отсылать сообщения в каналы.
+ Сделал также чтобы в режиме OffLine нельзя было менять Тему разговора и имя пользователя.

[4.04.2004]
+ В режиме OffLine не принимаются сообщения в каналах.
+ Сделал, чтобы всплытие главного окна чата не зависило от режима пользователя и всегда определялось только галочкой Popup Chat Window.
+ Тоже самое для сообщений. Всплытие сообщений не зависит от режима пользователя и всегда определяляется только галочкой Popup Message.
+ Добавил возможность задавать время показывания FlashTray и HintTray.
+ Сделал, чтобы в инфо компьютер пользователя можно было открывать как ссылку.
+ Добавил в инфо IP адрес пользователя, который также открывается как ссылка.
+ Сделал защиту от флуда в каналах, теме разговора, имени пользователя и в сообщениях. Защита работает по принципу, если в течении 3-х секунд отсылаюся более 3-х сообщений, то в канале #Main выдается сообщение о том, что срабатывает защита от флуда и пользователь автоматически переключается в режим OffLine.
+ В информации о пользователе вместо TLabel применил TEdit, чтобы эту информацию можно было копировать в буфер обмена. Открытие ссылок также производится одинарным щелчком.
+ В окне About также применил TEdit для того, чтобы можно было копировать ссылки в буфер обмена.

[5.04.2004]
+ Исправил ошибку из-за, которой, если запоминался неправильный путь к каталогу со скинами, то приходилось вручную исправлять на правильный путь в реестре. Теперь если не удается загрузить скин по запомненному пути, то чат пытается загрузить скин \skins\smash.ini по умолчанию из текущего каталога чата.

[19.05.2004]
+ Сделал SayNick одним кликом. А то было долго выбирать ник и потом ctrl+n.
+ Сделал, чтобы при запуске новой версии чата настройки реестра сбрасывались в значения по умолчанию. Это необходимо для более лучшей совместимости более новых версий с предыдущими.

[30.05.2004]
+ Исправил мигание иконки в трее, если сообщения писались в отсутствующем канале.

[31.05.2004]
+ Исправил ошибку в пересылке файлов из-за которой у принятых файлов не снимался аттрибут "скрытый" и для данных файлов писалась ошибка ERR_CLOSE, хотя при этом файл был успешно принят.

[1.06.2004]
+ Исправил ошибку в отсылке файлов, из-за которой в приемной очереди создавались лишние неправильные записи.
+ Исправил ошибку зависания чата в случае если для приема файлов небыло свободного места на диске.
+ Убрал из окна пересылки файлов лишние неиспольщуемые кнопки Stop, Pause. Также убрал их иконки из всех скинов и исправил везде индексы на новые.
+ Сделал чтобы правильно отображались и открывались \\ ссылки с пробелами в именах файлов. Такие ссылки перед постингом проверяются на реальное существование, поэтому при левых адресах могут наблюдаться подтормаживания.

[3.06.2004]
+ Сделал чтобы сохранялись размеры и положение окошка пересылки файлов.
+ Сделал чтобы сохранялись размеры и положение окошка архива сообщений.

[4.06.2004]
+ Переписал полностью архив сообщений. Теперь сообщения не грузятся в память, а подгружаются на лету в нужное время. Работать стало моментально.
+ Сделал чтобы SayNick одним кликом мышкой был после отпускания кнопки.
+ Исправил алгоритм сброса настроек новых версий. Теперь настройки будут сбрасываться только при новых релизах.
+ Оптимизировал обработку архива сообщений. Стало немножно побыстрее.

[5.06.2004]
+ Исправил ошибку неправильной длины в обработке архива сообщений.

[6.06.2004]
+ Добавил кеширование загрузки писем для архива сообщений. Теперь обработка архива сообщений стала вообще моментальной и очень быстрой.

[1.07.2004]
+ Подправил алгоритм установки курсора при наведении мышкой на пользователя в списке пользователей. Курсор меняется именно тогда, если наводить на пользователя. Пустое место правее уже не считается пользовательской позицией. Также сообщение для пользователя при помощи двойного щелчка появляется именно тогда, когда щелкаешь на пользователя. Если щелкать правее на пустое место, то уже будет появляться массовое сообщение.

[3.07.2004]
+ Запретил в программе отсылку более чем 20 смайлов в одном сообщении, чате и теме разговора.
+ Запрерил отсылку более чем 20 макросов в чате, теме разговора и сообщении.

[7.07.2004]
+ Добавил три новых системных цвета Wait Request File, Begin File, End File.
+ Добавил три новых системных события SystemMessages.
+ События о начале и конце отсылки и приема файлов пишутся в #Main.
+ Добавил в окно файлов две кнопки. Start Receive File и Auto Receive Files.

[8.07.2004]
+ Сделал чтобы всплывало окошко Files Queue во время подтверждения приема файла, а также если подтверждение приема отключено то появляется при завершении приема файла. В настройках New Events добавил параметр Popup Files Queue, который соответственно разрешает или запрещает всплытие окошка на передний план, или оставаться свернутым на панели задач.

[12.07.2004]
+ Если не включен автоматический прием файлов, то на принимающей стороне запрашивается подтверждение для приема файла. Подтверждение ожидается в течении 1 минуты. Если за это время подтверждение не получено, то передача и прием файла отменяется.

[13.07.2004]
+ Сделал чтобы можно было подтверждать прием файла нажатием кнопки Start Receive File.
+ Поправил чтобы сообщения Begin Send или Begin Receive писались после подтверждения. Теперь система передачи файлов реализована по полной программе.

[14.07.2004]
+ В массовом сообщении сделал контролы для размещения списка пользователей. Сделал также, чтобы размеры всех этих контролов запоминались.

[19.07.2004]
+ Добавил в массовое сообщение список пользователей. Сделал чтобы всплывающее меню на этом списке было полностью работоспособным. Сделал, чтобы правильно обрабатывались события нажатия клавиш, а также события мышки в том числе прокрутка при помощи колесика.

[20.07.2004]
+ В списке пользователей в массовом сообщении сделал обработку и прорисовку скроллбара.
+ Также в списке пользователей в массовом сообщении сделал более правильную обработку колеса мышки.

[21.07.2004]
+ Добавил в массовом сообщении, в список пользователей галочки. Сделал обработку этих галок при нажатии мышкой и на клавиатуре при нажатии пробела.
+ Исправил срабатывание флуда с 4-х до 3-х раз за 3 секунды.
+ Сделал чтобы отсылка массовых сообщений соответствовала выбранным галкам. При этом если выбрать абсолютно все галки, то это массовое сообщение отсылается бродкастом. Если же выбраны не все галки, то сообщение отсылается конкретно на адрес каждого пользователя.
+ Если в массовом сообщении вообще нет никаких галок, то отсылка не производится.

[22.07.2004]
+ Сделал чтобы в список пользователей у массового сообщения не добавлялись пользователи OffLine, а также свой собственный NickName.
+ Во всплывающем меню на списке пользователей у массового сообщения добавил два пункта Select All и Deselect All, которые соответственно выбирают все галки или сбрасывают все галки.

[25.07.2004]
+ Неправильно выставлялся цвет шрифта в списке пользователей у массового сообщения, исправил.

[26.07.2004]
Начал делать поддержку мультиязычности.
+ Добавил новое меню Languages...
+ Сделал чтобы можно было выбирать каталог с файлами конфигурации "языков".
+ В меню Languages... выводится список доступных "языков", которые выводятся в формате lang_name (lang_by). Таким же образом как это сделано для "скинов".
+ Исправил ошибку в выборе каталога со "скинами", из-за которой не выбирался каталог, в котором есть "скины", но нету такого же какой активен в данный момент.

[1.08.2004]
+ Наконец нашел как сделать, чтобы в RichEdit можно было напрямую вставлять смайлики из ImageList. При этом вставка осуществляется при помощи преобразования Bitmap в текст RTF в формате wmetafile. Раньше у меня осуществлялась вставка из заранее заготовленного массива смайликов в RTF формате. Теперь этот массив я выкинул и размер экзешнника сократился на 28 кб. Также можно будет отказаться от хранения смайликов в ImageList, и сделать, чтобы они загружались напрямую из "скинов". Размер экзешника также еще больше сократится.
+ Иногда наблюдался глюк что главное окно чата оказавалось за пределами экрана и вытащить его оттуда никак не удавалось. Исправил.

[3.08.2004]
+ Добавил дополнительные смайлики, теперь их 40 шт.
+ Нарисовал дополнительные смайлики, а также нарисовал дополнительный набор смайликов, которые большего размера.

[4.08.2004]
+ Добавил в настройки "скинов" параметр sml_file, который указывает на файл со смайликами для данного "скина". Таким образом теперь в каждом "скине" может быть свой набор смайликов, причем размер может быть любым.
+ Т.к. смайлы больше не хранятся внутри экзешника, а теперь загружаются из скина то размер экзешника еще уменьшился на 23 кб.

[5.08.2004]
+ Сделал, чтобы у массового сообщения по умолчанию выбирались все пользователи.
+ В Win98 неправильно работала прорисовка смайлов в RichEdit. Непонятно почему, но функция ImageList.Draw(MetaCanvas,...); работала некорректно. Сделал прорисовку по другому. MetaCanvas.Draw(0, 0, stIco); где stIco это иконка полученная ImageList.GetIcon(stIco); Вот таким образом, если MetaCanvas сам рисует на себе стало работать все правильно, а когда ImageList рисовал на MetaCanvas, то в Win98 получалась билеберда.

[6.08.2004]
+ Перелопатил весь исходник на предмет стандартизации имен всех всплывающих меню настроек. Нужно для того, чтобы в файлах конфигурации "языков" все названия выглядили по человечески.
+ Исправил недоделку при нажатии на Esc во время редактирования Subject или NickName. Теперь все нормально.
+ Устранил повторяющиеся названия элементов в всплывающих меню. Это необходимо для того, чтобы названия из файла конфигурации "языков" загружались только в одно место, а не во много разных мест.

[7.08.2004]
+ Составил файлы настроек "языков" всех всплывающих меню.
+ Полностью русифицировал все всплывающие меню.
+ Исправил ошибки в прорисовке смайлов в списке пользователей.

[8.08.2004]
+ Составил в файлах настроек "языков" список всех динамически выдаваемых сообщений.

[9.08.2004]
+ Унифицировал все динамически выдаваемые сообщения в файле настроек "языков".
+ Составил константы для всех динамически выдаваемых сообщений. Теперь можно приступать к непосредственно самому процессу русификации.

[10.08.2004]
+ Составил русскую версию файла языковых параметров.
+ Полностью закончил русификацию секции MainMsg.

[11.08.2004]
+ Исправил ошибку из-за которой при клике в окно чата на пустое место, срабатывал SayNick на первое имя, в котором есть смайл.
+ Русифицировал окошко ConnSc.
+ Русифицировал окошко MessSc.
+ Русифицировал окошко AboutSc.
+ Русифицировал окошко MessArchSc.
+ Русифицировал окошко SoundSc.
+ Русифицировал окошко UserInfoSc.
+ Русифицировал окошко ChannelsSc.
+ Русифицировал окошко ColorsSc.

[12.08.2004]
+ Русифицировал окошко FQueueSc.
+ Русификацию окна About полностью делать не стал, т.к. для сохранений копирайтов надписи этого окошка хранятся в зашифрованном виде.

[13.08.2004]
+ Подправил размеры в окошке FQueueSc для корректного отображения русских надписей.
+ Добавил в окно About бета тестера - Леху Васильева.

[14.08.2004]
+ Сделал кое какие исправления связанные с вырезанием цветовых кодов символов. При отключении опции вырезания этих кодов, во многих местах они все равно вырезались. А также при включеной опции вырезания кодов, во многих местах они не вырезались. Тепер цветовые кодовые символы вырезаются и в Архиве сообщений и в окне передачи файлов как положено.

[16.08.2004]
+ Исправил ошибку из-за, которой при смене скинов путались местами кнопки в сообщениях.

[25.08.2004]
! Вышла новая версия программы. SmashChat v.1.0.3.845


SmashNet
 
(С) Alexander Sudarkin

Хостинг от uCoz