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

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

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

Сообщение Debugger » 22.10.2010 (Пт) 8:56

Поищи по форуму реализации собственные текстбоксов, они были.
Added: viewtopic.php?f=2&t=38292
P.S. А "золотые топики" пора прилепить.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

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

Сообщение Andrey Fedorov » 22.10.2010 (Пт) 10:05

Кривоус Анатолий писал(а):Здравствуйте хочу создать свой OwnerDraw textBox, но немогу сделать вывод курсора в заданной позиции так как буквы у шрифта разной ширины.


См: TextWidth, TextHeight.

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

Лучше сделай полноценные Undo/Redo...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

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

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

Andrey Fedorov писал(а):См: TextWidth, TextHeight.

Фу, фу! GetCharABCWidth надо использовать и получать сразу три размера (A, B и C, в документации описано, что это).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

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

Сообщение Alec » 22.10.2010 (Пт) 10:58

Может стоит делать в виде таблицы, слева - код, текстом, справа - картинки. Примерно, как hex-редакторы делают, слева hex-код, справа - ASCII..
Иногда лучше вовремя остановиться...
И начать заново!

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

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

Сообщение Andrey Fedorov » 24.10.2010 (Вс) 20:27

Хакер писал(а):
Andrey Fedorov писал(а):См: TextWidth, TextHeight.

Фу, фу! GetCharABCWidth надо использовать и получать сразу три размера (A, B и C, в документации описано, что это).


Мне вполне хватало вышеприведенных. Правда я всего лишь игрался с заготовкой HEX-редактора.
Вложения
24.10.png
24.10.png (17.79 Кб) Просмотров: 1437
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

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

Сообщение Хакер » 24.10.2010 (Вс) 20:52

Hex-редактов вообще не пример. Там надо отобразить символ, соответствующий байту, а не текст.

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

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

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

Сообщение Andrey Fedorov » 25.10.2010 (Пн) 9:43

Хакер писал(а):Hex-редактов вообще не пример. Там надо отобразить символ, соответствующий байту, а не текст.


Тот же текст состоит из символов. Случай автора топика - обычный текст кода программы, куда, непонятно зачем, ему захотелось вставлять рисунки. Нафига наворачивать проблему там где ее нет?

Хакер писал(а):В тексте один символ может быть основным, а другой — вспомогательный (ударение, умляут и тому подобное). Угадай, какие проблемы ты поимеешь с отрисовкой таких символов и их выделение.


IMHO - у автора топика вряд ли есть подобные навороты...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

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

Сообщение Хакер » 25.10.2010 (Пн) 12:59

у автора топика вряд ли есть подобные навороты...

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

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

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

Сообщение Alec » 25.10.2010 (Пн) 13:26

Хакер писал(а):Hex-редактов вообще не пример. Там надо отобразить символ, соответствующий байту, а не текст.

Ну, не так давно были те времена, когда последовательность символов, соответствующих байтам, и являлась текстом. :)
Хакер писал(а):В тексте один символ может быть основным, а другой — вспомогательный (ударение, умляут и тому подобное). Угадай, какие проблемы ты поимеешь с отрисовкой таких символов и их выделение.

Хакер писал(а):При выводе кода используются только моноширинные шрифты.

Однако, автор пытается создать свой контрол для ввода и редактирования именно кода, поэтому и предлагается отделить котлеты от мух. Зачем "рисовать" непосредственно в коде? А Hex-редактор взят за пример именно из-за своей компоновки: слева - код, справа - символы. И не обязательно интерпретацию делать по-байтно, можно и парсить.
Иногда лучше вовремя остановиться...
И начать заново!

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

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

Сообщение Хакер » 25.10.2010 (Пн) 14:42

Alec, ты какую-то претензию предъявить к моим сообщениям хочешь? Я не понял смысла твоего сообщения.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

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

Сообщение Alec » 25.10.2010 (Пн) 15:23

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

PS. При чем тут какие-либо претензии?
PPS. Хакеру, как администратора форума, предлагаю удалить два последних поста.
Иногда лучше вовремя остановиться...
И начать заново!

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

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

Сообщение Хакер » 25.10.2010 (Пн) 15:42

для вывода кода используются моноширинные шрифты, категоричность заявления упомянутого Хакера об обязанности автора при разработке контрола учитывать вспомогательные символы (ударение, умляют и подобные), а также юникод и двунаправленный текст, выглядит, по меньшей мере, неубедительным.


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

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

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

Сообщение SLIM » 25.10.2010 (Пн) 19:41

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

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

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

Сообщение Joo » 26.10.2010 (Вт) 7:19

Хакер писал(а):И став автором собственного TB, вы обязаны учитывтаь как это явление, так и юникод и двунаправленный текст

Поправлю. Став автором, специфического, заточенного под конкретную задачу TB.
Думаю не обязаны учитывать, тем более, как я понял, прога будет эксплуатироваться ограниченным и известным кругом пользователей. Или я не прав?

По теме. Даже такой простой TB, даже если не учитывать тех вещей, что указал Хакер (в общем то правильных, но не обязательных в данном случае), написать будет довольно не просто. Я пробовал писать такой контрол и я знаю о чем говорю, из всех контролов, что я делал по моему, написание TB самая сложная задача.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

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

Сообщение alibek » 26.10.2010 (Вт) 8:13

Joo писал(а):написание TB самая сложная задача.

Нет.
Там всего лишь нужна тщательность.
По крайней мере до тех пор, пока не требуется редактировать большие объемы текстов (мегабайты).
Гриды для больших объемов данных куда сложнее, потому что в лоб их делать нельзя.
Lasciate ogni speranza, voi ch'entrate.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

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

Сообщение Joo » 26.10.2010 (Вт) 11:37

alibek писал(а):Нет.

Вполне возможно. Но я же написал:
Joo писал(а):из всех контролов, что я делал

т.е. глупо было бы полагать, что написание TB лидер по сложности среди всех решаемых задач, но из тех, что делал я, именно контролов, TB был самый сложный.
Ну грид, к слову сказать, написать куда проще. Если брать TB и Грид для обработки одинакового объема данных, то TB будет написать сложнее.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

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

Сообщение SLIM » 26.10.2010 (Вт) 19:00

Я не читал всю тему, но ответьте мне, а контрол Win? Просто Win-контрол написать не так просто. С нуля...
Пишите жизнь на чистовик.....переписать не удастся.....

Пред.

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

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

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 95

    TopList  
cron