[ПРОГРАММА] SharpRainbow
|
|
Bru | Дата: Среда, 31 Июля 2013, 17:40:14 | Сообщение # 1 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
|
Описание | Description
SharpRainbow - small program for creating colored text in Warcraft 3. Yes, again. What is the difference between SharpRainbow and other programs? User-friendly GUI, photoshop-like cool palette, transliteration same cyrillic and latin letters, and more.
SharpRainbow - небольшая утилита для создания цветного текста в Warcraft 3. Да, снова. В чем разница между SharpRainbow и другими подобными программами? Дружественный интерфейс, Photoshop-Like палитра, транслитерация некоторых кириллических и латинских символов и многое другое.
Особенности | Features
- User-friendly GUI
- Photoshop-like color picker
- Transliteration same cyrillic and latin characters
- Making commas working in descriptions
- User colors palette
- Russian and English language
- Дружественный интерфейс
- Photoshop-like палитра
- Транслитерация одинаковых кириллическихи латинских символов
- Замена запятых для работоспособности в описаниях
- Палитра пользовательских цветов
- Русский и Английский язык
Скриншоты | Screenshots
|
|
|
|
NightCatty | Дата: Суббота, 10 Августа 2013, 17:57:12 | Сообщение # 51 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Bru, работает - не трогай! а кнопки ужасны, посмотри как сделано у аналоговых программ, мб при нажатии палитры, у самой палитры будет кнопочка сохранить, и ряд мелких иконок цветов над верхней рамкой, нажимая на иконку она выделяется(ну квадратик такой), и выбрав на палитре цвет и нажав сохранить иконка заполняется этим цветом
Тщетно бытиё! :c
|
|
|
|
Bru | Дата: Суббота, 10 Августа 2013, 18:48:10 | Сообщение # 52 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| Цитата (NightCatty) а кнопки ужасны ну это же я в ФШ наклепал за минутку Цитата (NightCatty) аналоговых программ Ты точно это имел ввиду? Может аналогичных? Цитата (NightCatty) мб при нажатии палитры, у самой палитры будет кнопочка сохранить, и ряд мелких иконок цветов над верхней рамкой, нажимая на иконку она выделяется(ну квадратик такой), и выбрав на палитре цвет и нажав сохранить иконка заполняется этим цветом ?!??!?!!?!??!! я не понял =)
|
|
|
|
NightCatty | Дата: Суббота, 10 Августа 2013, 19:32:11 | Сообщение # 53 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| только цвета в рамочках и одного размера ну или хз
Тщетно бытиё! :c
|
|
|
|
Arthur_666_ | Дата: Суббота, 10 Августа 2013, 22:46:58 | Сообщение # 54 |
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
| NightCatty, Зачем ты смотришь фильм и ковыряешься в программе одновременно?
Beetops
|
|
|
|
NightCatty | Дата: Суббота, 10 Августа 2013, 23:14:36 | Сообщение # 55 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Arthur_666_, я ещё и в варике в тд играю( рассеянное внимание штука такая
Тщетно бытиё! :c
|
|
|
|
Bru | Дата: Суббота, 10 Августа 2013, 23:29:52 | Сообщение # 56 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| NightCatty, збс А почему у тебя старая версия?
|
|
|
|
NightCatty | Дата: Воскресенье, 11 Августа 2013, 00:35:31 | Сообщение # 57 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Bru, а последнем обновлении мало полезного)
Тщетно бытиё! :c
|
|
|
|
Arthur_666_ | Дата: Воскресенье, 11 Августа 2013, 12:14:33 | Сообщение # 58 |
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
| Bru, сделай переводы строк
Beetops
|
|
|
|
Bru | Дата: Воскресенье, 11 Августа 2013, 12:42:28 | Сообщение # 59 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| ?
|
|
|
|
Arthur_666_ | Дата: Воскресенье, 11 Августа 2013, 13:07:23 | Сообщение # 60 |
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
| Bru, Ну я например напишу так Код ВОТ ЭТОТ ТЕКСТ ДОЛЖЕН БЫТЬ НА СЛЕДУЮЩЕЙ СТРОКЕ: ТА ДА! А он переведет это в такой текст Код ВОТ ЭТОТ ТЕКСТ ДОЛЖЕН БЫТЬ НА СЛЕДУЮЩЕЙ СТРОКЕ:|nТА ДА!
Beetops
|
|
|
|
SirNikolas | Дата: Воскресенье, 11 Августа 2013, 13:25:10 | Сообщение # 61 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата (Bru) Посмотри на гитхабе, там все срцы Опа, а я и не заметил. Сейчас поищу возможные причины ошибок.
|
|
|
|
Bru | Дата: Воскресенье, 11 Августа 2013, 14:08:48 | Сообщение # 62 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| Arthur_666_, да пожалуй реализую потом. SirNikolas, не спеши, сегодня релиз новой версии, а там вообще Добавлено (11 Августа 2013, 14:08:48) --------------------------------------------- 1.6 Скачать версию 1.6! ВНИМАНИЕ! Не удаляйте файл настроек, который есть в архиве. Иначе вы не сможете работать с палитрой.
Изменения: - Добавлена возможность сохранять свои цвета - Все настройки цветов вынесены на форму палитры
|
|
|
|
Arthur_666_ | Дата: Воскресенье, 11 Августа 2013, 14:24:53 | Сообщение # 63 |
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
| Bru, Помоему кружочек на палитре ,лучше заменить крестиком
Beetops
|
|
|
|
Bru | Дата: Воскресенье, 11 Августа 2013, 14:31:15 | Сообщение # 64 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| Arthur_666_, следую канонам: Добавлено (11 Августа 2013, 14:31:15) --------------------------------------------- Ещё я пока не знаю, как сгенерировать гамму после выбора цвета вручную через поля или палитру
|
|
|
|
Arthur_666_ | Дата: Воскресенье, 11 Августа 2013, 14:42:54 | Сообщение # 65 |
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
| Bru, Проверил, у меня подвисает ,когда нажимаю настройка цветов Добавлено (11 Августа 2013, 14:39:24) --------------------------------------------- Bru, еще кружочек выходит за пределы окна и я не могу выбрать чисто белый цвет 255 255 255 Добавлено (11 Августа 2013, 14:42:54) --------------------------------------------- Bru, нельзя провести по границе рамки палитры он просто застревает ,когда выходишь за пределы палитры
Beetops
|
|
|
|
NightCatty | Дата: Воскресенье, 11 Августа 2013, 15:43:58 | Сообщение # 66 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Bru, короче 1.4 рулит
Тщетно бытиё! :c
|
|
|
|
Bru | Дата: Воскресенье, 11 Августа 2013, 15:44:53 | Сообщение # 67 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| Цитата (Arthur_666_) Bru, Проверил, у меня подвисает ,когда нажимаю настройка цветов У меня открывается мгновенно. Цитата (Arthur_666_) Bru, еще кружочек выходит за пределы окна и я не могу выбрать чисто белый цвет 255 255 255 Bru, нельзя провести по границе рамки палитры он просто застревает ,когда выходишь за пределы палитры Над этим я работаю. За пределы окна выходит мышка просто Я использую кружок как курсор для увеличения быстродействияДобавлено (11 Августа 2013, 15:44:53) ---------------------------------------------
Цитата (NightCatty) Bru, короче 1.4 рулит
|
|
|
|
SirNikolas | Дата: Понедельник, 12 Августа 2013, 09:03:56 | Сообщение # 68 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата (Bru) Код Public Function Rus2Eng(ByVal TargetString As String) As String Dim RusLetters As String = "уехорасЕХОРАСНВКМТ" Dim EngLetters As String = "yexopacEXOPACHBKMT" For i = 0 To RusLetters.Length - 1 Step 1 TargetString = Replace(TargetString, RusLetters(i), EngLetters(i)) Next Return TargetString End Function Код namespace Letters { static class Letters { private static char[ ] eng = new char[54];
static string Rus2Eng(string s) { var sb = new System.Text.StringBuilder(s.Length); foreach (char c in s) sb.Append(c >= 1040 && c <= 1093 && eng[c - 1040] != '\0' ? eng[c - 1040] : c); return sb.ToString(); }
static void Main() { for (byte i = 0; i < 18; i++) eng["уехорасЕХОРАСНВКМТ"[i] - 1040] = "уехорасЕХОРАСНВКМТ"[i];//Слева русские, справа английские. Console.ReadKey(true); } } } Цитата (Bru) TargetString = Replace(TargetString, ",", "‚") Return TargetString Будет более понятно, если написать return Replace(TargetString, ',', (char)130).
|
|
|
|
Bru | Дата: Понедельник, 12 Августа 2013, 09:39:46 | Сообщение # 69 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| Подскажи ещё вот, почему криво работает проверка на выход за границы и выбор цвета? Как писали выше Цитата (Arthur_666_) не могу выбрать чисто белый цвет 255 255 255 Код Private Sub pickColor(sender As Object, e As MouseEventArgs) Handles picPal.MouseDown, picPal.MouseMove On Error Resume Next Dim c As Color If e.Button = MouseButtons.Left And e.X > picPal.Left And e.X < picPal.Right And e.Y > picPal.Top And e.Y < picPal.Bottom Then Using bmp As New Bitmap(picPal.ClientSize.Width, picPal.ClientSize.Height) picPal.DrawToBitmap(bmp, picPal.ClientRectangle) c = bmp.GetPixel(e.X, e.Y) pb_colorpreview.BackColor = c IsHex = True IsRGB = True txt_hexcolor.Text = ColorTranslator.ToHtml(c) Dim RGB() = Hex2RGB(txt_hexcolor.Text) txt_rgbr.Text = Val(RGB(1)).ToString txt_rgbg.Text = Val(RGB(2)).ToString txt_rgbb.Text = Val(RGB(3)).ToString Hex2RGB(ColorTranslator.ToHtml(c)) IsHex = False IsRGB = False LastMouseX = e.X LastMouseY = e.Y End Using End If End Sub
Private Sub picPal_MouseMove(sender As Object, e As MouseEventArgs) Handles picPal.MouseMove If e.Button = Windows.Forms.MouseButtons.Left And e.X > picPal.Left And e.X < picPal.Right And e.Y > picPal.Top And e.Y < picPal.Bottom Then pb_circle.Hide() Cursor = CircleCursor End If If Not (e.Button = Windows.Forms.MouseButtons.Left) And e.X > picPal.Left And e.X < picPal.Right And e.Y > picPal.Top And e.Y < picPal.Bottom Then Cursor = Cursors.Default pb_circle.Show() pb_circle.Location = New Point(LastMouseX, LastMouseY) End If End Sub
|
|
|
|
SirNikolas | Дата: Понедельник, 12 Августа 2013, 10:47:34 | Сообщение # 70 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Ну, во-первых, я не пойму, почему первая фукнция зарегистрирована на два события. Возможно, из-за этого и возникают исключения. Во-вторых, проверка на границы должна осуществляться примерно так:Код int x = e.X > picPal.Left ? Math.Min(e.X, picPal.Right) : picPal.Left; int y = e.Y > picPal.Top ? Math.Min(e.Y, picPal.Bottom) : picPal.Top;
|
|
|
|
Bru | Дата: Понедельник, 12 Августа 2013, 11:08:01 | Сообщение # 71 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| Цитата (SirNikolas) Ну, во-первых, я не пойму, почему первая фукнция зарегистрирована на два события. Чтобы цвет выбирался и при клике и при зажатии ЛКМ + движении мыши. Код If e.Button = MouseButtons.Left Цитата (SirNikolas) Во-вторых, проверка на границы должна осуществляться примерно так: Я не понял
|
|
|
|
Arthur_666_ | Дата: Понедельник, 12 Августа 2013, 12:04:25 | Сообщение # 72 |
8 уровень
Группа: Проверенные
Сообщений: 632
Награды: 0
Репутация: 238
Блокировки:
|
Beetops
|
|
|
|
NightCatty | Дата: Понедельник, 12 Августа 2013, 12:29:05 | Сообщение # 73 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Код int x = e.X > picPal.Left ? Math.Min(e.X, picPal.Right) : picPal.Left; int y = e.Y > picPal.Top ? Math.Min(e.Y, picPal.Bottom) : picPal.Top; Код int x; int y; if(e.X > picPal.Left) x = Math.Min(e.X, picPal.Right); // если x курсора больше левой границы палитры(правее начала палитры), то x = меньшее из x курсора и правого края палитры(не правее правого края), иначе else x = picPal.Left; // курсор левее или на самой левой границе палитры, чтобы не быть левее сделаем x на границе палитры также с yДобавлено (12 Августа 2013, 12:29:05) --------------------------------------------- кстати, названия переменных ужасны: e, picPal, c. для локального кода оно норм, но для других это довольно не читабельно, чтобы выкладывать
Тщетно бытиё! :c
|
|
|
|
Bru | Дата: Понедельник, 12 Августа 2013, 13:08:44 | Сообщение # 74 |
i<3bo4k@
Группа: Акулы
Сообщений: 4750
Награды: 2
Репутация: 1960
Блокировки:
| picture pallete Добавлено (12 Августа 2013, 13:08:44) --------------------------------------------- хммм Код Private Sub pickColor(sender As Object, e As MouseEventArgs) Handles picPal.MouseDown, picPal.MouseMove On Error Resume Next Dim c As Color Dim xx, yy As Integer If e.Button = MouseButtons.Left Then If (e.X > picPal.Left) Then xx = Math.Min(e.X, picPal.Right) Else xx = picPal.Left End If If (e.Y > picPal.Top) Then yy = Math.Min(e.Y, picPal.Bottom) Else yy = picPal.Top End If Using bmp As New Bitmap(picPal.ClientSize.Width, picPal.ClientSize.Height) picPal.DrawToBitmap(bmp, picPal.ClientRectangle) c = bmp.GetPixel(xx, yy) pb_colorpreview.BackColor = c IsHex = True IsRGB = True txt_hexcolor.Text = ColorTranslator.ToHtml(c) Dim RGB() = Hex2RGB(txt_hexcolor.Text) txt_rgbr.Text = Val(RGB(1)).ToString txt_rgbg.Text = Val(RGB(2)).ToString txt_rgbb.Text = Val(RGB(3)).ToString Hex2RGB(ColorTranslator.ToHtml(c)) IsHex = False IsRGB = False LastMouseX = xx LastMouseY = yy End Using End If End Sub Ничего не изменилось. Только теперь крайним цветом выдаёт #A0A0A0
|
|
|
|
SirNikolas | Дата: Понедельник, 12 Августа 2013, 13:09:01 | Сообщение # 75 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата (Bru) Чтобы цвет выбирался и при клике и при зажатии ЛКМ + движении мыши. Делаешь функцию pickColour, которая принимает координаты и устанавливает все, что надо. В обработчике MouseDown вызываешь pickColour и ставишь флаг (нажата кнопка). В обработчике MouseUp сбрасываешь флаг. В обработчике MouseMove вызываешь pickColour, если установлен флаг.
|
|
|
|