Вопрос по созданию своего текстбокса

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 20:53

Здравствуйте хочу создать свой OwnerDraw textBox, но немогу сделать вывод курсора в заданной позиции так как буквы у шрифта разной ширины. Подскажите пожалуйста какую нибудь инфу по созданию текстбокса. Заранее спасибо
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 21:03

Ты хорошо представляешь, что такое реализация собственного текст-бокса?

Я реализовывал с нуля TextBox для сугубо моноширинных шрифтов, но с поддержкой BiDi-текста, выделения, разноцветным текстом и OLE-драг-н-дропа фрагментов (это был CodeBox). Это оказалось достаточно сложной задачей. Немоноширинность добавляет несколько пунктов сложности.

Получить ширину любого шрифтового символа можно с помощью специальных API. Впрочем, в зависимости от того, как ты ввыводишь текст, есть более эффективные решения, чем ручное суммирование ширин.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:11

У меня возникает проблемма только с выделением текста и нормальным передвижением курсора (курсор-line). Я хочу реализовать тексбокс как в редакторе кода VB (подсветка синтаксиса, всплывающие комбобоксы, и вставка картинок. Как вы стоит ли заниматся созданием этого контрола?
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 21:14

Кривоус Анатолий писал(а):Я хочу реализовать тексбокс как в редакторе кода VB (подсветка синтаксиса, всплывающие комбобоксы, и вставка картинок. Как вы стоит ли заниматся созданием этого контрола?

Если так, то ты делаешь в точности то, что делал я.

В этом случае возникает вопрос: откуда у тебя символы разной ширины в таком деле возьмутся?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:16

А можно исходничек просмотреть, мне вот нужно выделение текста мышью
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 21:17

Что за привычка не отвечать на вопрос?

Исходничек не на VB, а на C.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:23

Я вывожу текс обычным Usercontrol.print, перед выводом у меня весь текс делится на отдельные слова. Потом есть еще один массив со словами для выделения теста другим цветом. Перед выводом на экран происходит проверка текущего слова со словом в массиве если они совпадают то рисуется синим цветом иначе черным+ слово выделяется с большой буквы.
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 21:25

Нда...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:26

Символы разной ширины возьмутся если шрифт не моноширный и если есть картинки внедренные в текс
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 21:30

При выводе кода используются только моноширинные шрифты.
С какой радости в код (программу на языке программирования) будет внедрена картинка?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:36

Я сделал устройство на микроконтроллере, и пишу для него программу обслуживающую его и у меня там есть пользовательский знакогенератор символы кодируются может знаете как zx-spectrum-8 байтами вот мне нужно выводить эти символы как картинку допустим 8x8, это пригодится когда пользователь создает знакогенератор с символами не букв а графики чтобы было сразу в окне этого тексбокса видно изображение. Ну моноширность можно оставить но как тогда быть с картинками.
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 21:39

Не уловил связи между микроконтроллерным устройством и нахождении картинок внутри исходного кода внутри элемента для правки исходного кода.

В элементе для редактирования кода нет места картинкам.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:53

Устроиство на микроконтроллере- бегущая строка. В программе записанной в МК есть интерпритатор комманд написанный на АСМЕ и непосредственно блок с данными( Комманды, знакогенератор и прочее.) На VB я пишу программу-эмулятор этого устройства вместе с редактором комманд для него(устройства), редактором символов(знакогенератора).
Вложения
Display.JPG
Display.JPG (125.32 Кб) Просмотров: 2895
UA6527P

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:56

Вот сам редактор кода ну сдесь он у меня обычный richtextbox.
Вместо символов выделенных голубым цветом должныйы быть картинки из знакогенератора с такими же кодами как и символы
Вложения
DisplayEditorCode.JPG
DisplayEditorCode.JPG (148.6 Кб) Просмотров: 2892
UA6527P

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 21:59

А вот это блок данных в нем комманды и знакогенератор( буквы) которые нужно выводить в текстбокс вместо обычных
Вложения
Graph.JPG
Graph.JPG (65.62 Кб) Просмотров: 2892
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 22:01

Зачем внутри бегущей строки интерпретатор команд — ума не приложу.

Хорошо, допустим он там есть вместе со всеми иными прелестями.

Я до сих пор не улавливаю, как наличие интерпретатор и прочих прелестей обуславливает необходимость появление картинки в тексте (коде)?

Как это выглядит?

Вот так:

Set p = cvr;
RpcdMoveStream(PCR(86), Изображение, NULL, Изображение);
End;
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 22:04

Вместо символов выделенных голубым цветом должныйы быть картинки из знакогенератора с такими же кодами как и символы


Ужас. Вместо этого просто создай растровый шрифт.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 22:11

Интерпитатор комманд нужен для того чтобы выводить текст с разными эффектами и не только текст а картинки анимацию и еще много чего команд штук 20. А вот что мне надо получить-
Вложения
ForHacker.JPG
ForHacker.JPG (15.36 Кб) Просмотров: 2887
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 22:14

Кривоус Анатолий писал(а):А вот что мне надо получить-

Это кошмар, встреться мне такая программа, я бы проклинал её автора. Советую отказаться от затеи уже сейчас.

А вообще: для этого надо не фигнёй страдать в виде замены текста на картинку (это сверх-глупо), а использовать растровый шрифт для указанного фрагмента текста.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 22:15

а как создать растровый шрифт на vb
UA6527P

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 22:16

В целях предотвращения появления на свет ещё одной жуткой программы я не буду помогать тебе в реализации этой ужасной затеи.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Вопрос по созданию своего текстбокса

Сообщение FireFenix » 21.10.2010 (Чт) 22:20

Да, это бы смотрелось вырвиглазно =)

А чего вы добиваетесь вставляя в код отформатированный текст?

Мои 5 копеек:
И мне кажется, что синтаксис трудно читаемый... Наверное было бы лучше соблюдать xml-подобную разметку. Даже к примеру как XAML...
И лексимы полу транслитом, полу англом... Не лучше было бы привести к более единому и продуманному виду?
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 22:30

Я пока нереализовал такой текст бокс который мне надо. Как я писал текст у меня выводится по словам и когда появляется слово "INPUT_TEXT=" тогда следующие за ним символы заменяются картинками до символа ">>". Ну без картино как то неудобно получается. Вот допустим вместо символоа "А" пользователь сделает фрагмент картинки и т.д. потом выводя ети символы можно будет что нибудь нарисовать. В самом эмуляторе так и происходит вместо символа "^" у меня выводится сердце. А хотелось непосредственно чтобы в текстбоксе уже выводишь "^" а он рисовал сердце
UA6527P

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 22:34

FireFenix писал(а):И мне кажется, что синтаксис трудно читаемый... Наверное было бы лучше соблюдать xml-подобную разметку. Даже к примеру как XAML...
И лексимы полу транслитом, полу англом... Не лучше было бы привести к более единому и продуманному виду?

Да это эксперементальная версия, сейчас я делаю нормальную вот с вопросом о текстбоксе и зашел на форум
UA6527P

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Вопрос по созданию своего текстбокса

Сообщение FireFenix » 21.10.2010 (Чт) 22:59

Кривоус Анатолий писал(а):Я пока нереализовал такой текст бокс который мне надо. Как я писал текст у меня выводится по словам и когда появляется слово "INPUT_TEXT=" тогда следующие за ним символы заменяются картинками до символа ">>". Ну без картино как то неудобно получается. Вот допустим вместо символоа "А" пользователь сделает фрагмент картинки и т.д.

Т.е. вставка картинки делается для удобства юзера, чтобы посмотреть что он выводит на экран. Так?

А если используются разные наборы, но некоторые символы пересекаются? А если псевдо-символ задаётся 2мя и более символами?

Я думаю лучше бы в теге указывать принадлежность к набору или кодо-генератору, тем самым можно понять к какому набору относиться, особенно если псевдо-символ задаётся несколькими символами...
Код: Выделить всё
<CODELIST NAME="my_list" URI="C:\1.bmp" WIDTH="50" HEIGHT="50">
<PRINT X="10" Y="50" TEXT="(c)" CODELIST="my_list">

Типа такого и при наведении мышкой на "(c)" мы мы получим попап с ©

А насчёт просмотра форматированного текста, то наверное лучше сделать как в FireBug, когда при наведении мышкой на параметр тега - выскакивает попап с форматированным содержимым
Изображение
Последний раз редактировалось FireFenix 21.10.2010 (Чт) 23:02, всего редактировалось 1 раз.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 21.10.2010 (Чт) 23:01

FireFenix писал(а):И мне кажется, что синтаксис трудно читаемый... Наверное было бы лучше соблюдать xml-подобную разметку.

FireFenix, тебя надо заставить на специальном ассемблере для микроконтроллеров реализовывать XML-парсер ;).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 23:12

FireFenix писал(а):Т.е. вставка картинки делается для удобства юзера, чтобы посмотреть что он выводит на экран. Так?

Да.
FireFenix писал(а):А если используются разные наборы, но некоторые символы пересекаются? А если псевдо-символ задаётся 2мя и более символами?

Что вы имеете ввиду пересекаются. У меня один знакогенератор с 256 символами каждому коду соответствует свой символ за исключением первых 32- это комманды.
UA6527P

The trick
Постоялец
Постоялец
 
Сообщения: 781
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: Вопрос по созданию своего текстбокса

Сообщение The trick » 21.10.2010 (Чт) 23:23

Как в FireBug можно, но в картинке 256x8 пикселей (32 символа), будет сложно найти и отредактировать например 5 символ, а так раз курсор передвинул, удалил в таблице выбрал нужный и он вставился как текст. Вот Хакер говорил что можно растровым шрифтом сделать, сейчас ищу в интернете .Fon
UA6527P

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Вопрос по созданию своего текстбокса

Сообщение FireFenix » 21.10.2010 (Чт) 23:48

Хакер писал(а):
FireFenix писал(а):И мне кажется, что синтаксис трудно читаемый... Наверное было бы лучше соблюдать xml-подобную разметку.

FireFenix, тебя надо заставить на специальном ассемблере для микроконтроллеров реализовывать XML-парсер ;).

Да, это ЯДъ...
Но всё возможно! Текущая реализация уже на пол пути :)

Кривоус Анатолий писал(а):Что вы имеете ввиду пересекаются. У меня один знакогенератор с 256 символами каждому коду соответствует свой символ за исключением первых 32- это комманды.

Предположим, идея развивается и попросили сделать курсивный шрифт, тогда у нас будет 2 набора и их совместное использование даст тележку проблем

Есть условная интерпретация символов или указание со смещением, с помощью которых мы формируем значение текстового параметра. Нам нужно поменять набор, и для этого нада стирать написанный текст и заного набирать в другом наборе... А так при одинаковой интерпретации символов мы меняем набор и получаем нужный результат

Но если набор 1, то вроде как не имеет особого смысла делать замену картинкой, ведь и так известно, что будет...
Если кодируются значки, то мы имеем таблицу соответствий, где скажем : ) эквивалентно нарисованному смайлику :), и тогда наведя мышкой на текст - мы получаем этотжий текст, только отформатированный (т.е. получим картинку смайлика, а не двоеточие + скобка)

Кривоус Анатолий писал(а):Как в FireBug можно, но в картинке 256x8 пикселей (32 символа), будет сложно найти и отредактировать например 5 символ, а так раз курсор передвинул, удалил в таблице выбрал нужный и он вставился как текст. Вот Хакер говорил что можно растровым шрифтом сделать, сейчас ищу в интернете .Fon

Попап используется для быстрого просмотра текста в преобразованном и отформатированном виде, и ничего в/из нём/него не нужно выбирать/изменять/удалять... Всё кодирование мы выполняем в значении параметра тега
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Вопрос по созданию своего текстбокса

Сообщение Хакер » 22.10.2010 (Пт) 0:05

FireFenix писал(а):Да, это ЯДъ...

Это не ад, это глупость. Микроконтроллирщики — это всегда такие люди, которые трясутся за каждый байт бит. Поэтому тру-микроконтроллерщик сделал бы не интерпретатор внутри контроллера, а компилятор вне контроллера, а в контроллер бы вводил крайне запакованный (полученный от «компилятора») код. Не важно, на своём экзотическом языке или же XML. И то, и другое пакуется бинарно крайне хорошо.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 31

    TopList  
cron