Как создать свой контрол Textboxnew?

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

Как создать свой контрол Textboxnew?

Сообщение Diman1982 » 08.09.2006 (Пт) 14:14

Привет. Потратил 3 часа 45 минут на поиск инфы, но так и не нашел. Помогите если кто знает. Как создать собственный контрол Textbox. Нарисовать прямоугольник не проблема, проблема вывести буквы в UserControl, если например на "форме" usercontrola нет ни одного элемента. А print он не поддерживает. Там еще коретку какю то надо создать. Как это сделать?

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

Re: Как создать свой контрол Textboxnew?

Сообщение alibek » 08.09.2006 (Пт) 14:24

Diman1982 писал(а):А print он не поддерживает.

С чего такое мнение?
А курсор можно сделать самодельный, таймером.
Или системный, API CreateCaret и подобное.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Хакер » 08.09.2006 (Пт) 14:25

Зrint поддерживается. Такчто юзай принт.

Ну или если из-за личных данных неполучается его использовать - используй Label.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Re: Как создать свой контрол Textboxnew?

Сообщение lister » 08.09.2006 (Пт) 14:40

Diman1982 писал(а):Как создать свой контрол Textboxnew?

А чем стандартный не нравится?

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

Сообщение Хакер » 08.09.2006 (Пт) 17:37

Чёрт. Ну почему так? Почему всегда кто-нибудь меня опережает :twisted:

lister
Да... твой пост очень помог автору.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 08.09.2006 (Пт) 19:22

Да, Хакер, я хочу узнать у автора, чем ему стандартный текстбокс не нравиться... Что в этом криминального? :twisted:

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 09.09.2006 (Сб) 1:38

а я вот не отказался бы оттабыть где-нить стандартный текстбокс, тока у него слехка отсутупы небольшие по краям! (пример, VB > Project > Project1 Properties..., заметите какие они там), как онаи делаються то!? :?
On Fatal Error Resume Next

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.09.2006 (Сб) 7:31

EM_SETMARGINS
Изображение

Diman1982
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 23.05.2006 (Вт) 16:51

Сообщение Diman1982 » 11.09.2006 (Пн) 12:30

Хакер писал(а):Зrint поддерживается. Такчто юзай принт.

Ну или если из-за личных данных неполучается его использовать - используй Label.

Понял, понят. Просто при инициализации контрола он выдавал ошибку, я подумал что принт не работает, а заработал, когда запустил форму. А не подскажите как высчитать длину текста в переменной TEXT, что бы поставить этот курсор, например в конец? Нашел тут в форуме кое что, Printer.Textwidth(Строка), но с добавлением букв в переменную, появляется погрешность и чем длинее текст в переменной, тем дальше появляется курсор от конца.

Diman1982
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 23.05.2006 (Вт) 16:51

Сообщение Diman1982 » 11.09.2006 (Пн) 12:34

Может быть у системной каретки есть встроенная функция вычислении длины в переменной?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.09.2006 (Пн) 12:59

А причем тут Printer.TextWidth? Юзай UserControl.TextWidth
Весь мир матрица, а мы в нем потоки байтов!

Diman1982
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 23.05.2006 (Вт) 16:51

Сообщение Diman1982 » 11.09.2006 (Пн) 13:20

Гы... Точно! Тенкс. А как вычислить положение курсора для системной каретки?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.09.2006 (Пн) 13:26

Что есть в понятии автора "системная каретка"?
Весь мир матрица, а мы в нем потоки байтов!

Diman1982
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 23.05.2006 (Вт) 16:51

Сообщение Diman1982 » 11.09.2006 (Пн) 13:32

CreateCaret Lib "user32.dll"
SetCaretPos lib "user32.dll" (ByVal x as Long, ByVal y As Long) As Long
Последняя выставляет координаты где появиться мигающему курсору, но значения там 3=длине символа (л) например, а textWidth(строка) показывает 83

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.09.2006 (Пн) 13:39

SetCaretPos и GetCaretPos выдают координаты в пикселях, а TextWidth в твипах. Либо преобразовывай, либо для контрола савь единицы измерения в пиксели
Весь мир матрица, а мы в нем потоки байтов!

Diman1982
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 23.05.2006 (Вт) 16:51

Сообщение Diman1982 » 11.09.2006 (Пн) 13:45

а чему равен 1 пиксель в твипах? Оппа, а что это за звезда у меня появилаь? и кто ее поставил?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.09.2006 (Пн) 13:49

см. Screen.TwipsPerPixelX и Screen.TwipsPerPixelY
Изображение

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

Сообщение alibek » 11.09.2006 (Пн) 13:55

Также смотреть UserControl.ScaleX/ScaleY.
Lasciate ogni speranza, voi ch'entrate.

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 26.09.2006 (Вт) 16:44

lister
Человек хочет сделать свой контрол, как ты не понимаешь?
Подпись находится в стадии разработки...


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

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

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

    TopList