Длина строки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Длина строки

Сообщение Sirik » 13.03.2005 (Вс) 10:46

есть строка.
как узнать длину строки в твипах, если известен шрифт?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.03.2005 (Вс) 10:54

me.textwidth
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 13.03.2005 (Вс) 11:38

thanks

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.03.2005 (Вс) 16:15

GSerg писал(а):me.textwidth

Т.е. если мы обращаемся к Me.TextWidth - то получаем длину строки учитывая размер шрифта формы? А если использовать TextWidth - то получим длину строки учитывая какой размер шрифта? И какого шрифта?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

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

Сообщение tyomitch » 13.03.2005 (Вс) 16:52

Того же самого.
Полностью одинаковый эффект.
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.03.2005 (Вс) 17:52

tyomitch писал(а):Того же самого.
Полностью одинаковый эффект.

Т.е. если мне нужно установить RightMargin в RTB равным ширине 80-ти символов, то нужно просто .RightMargin=80 * TextWidt("W")?
Пробовал - результат не тот, что ожидается. Или может где руки кривые у меня?
[edit] Шрифт в RTB используется моноширинный. [/edit]

И ещё. Может быть подскажешь мне - что из себя представляет линейка разметки в Word'е? Хотелось бы сделать такую же у себя в RTB.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.03.2005 (Вс) 18:06

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

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.03.2005 (Вс) 18:09

GSerg писал(а):1. Поставь форме такой же шрифт, как у RTB.
2. Просто прямоугольный контрол, в котором рисуй линейку...

1. Именно форме? На каких местах формы (заголовок и т.п.) это изменение отразится?
2. А ползунки? Я никогда ещё свои контролы не делал. :oops: Мне пока всё же легче переделать под себя чужой. :roll:
Пробовал слайдеры прилепить: один ещё куда ни шло (для RightMargin). Но вот второй куда лепить (для отступа первой строки)? Если один на другой - некузяво получается. :(
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.03.2005 (Вс) 18:19

1. Именно. Потому что вызов textwidth идёт именно от неё. Не отразится ни на чём, кроме метода Me.Print.
2. Дык в ворде не ползунок, там их три, причём хитрых и связанных :) Можно просто отобразить что-то таскаемое... например, маленький пикчербокс :) и обрабатывать движения мыши на нём...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 13.03.2005 (Вс) 18:21

Изменение шрифта формы отразится только на создаваемых после этого контролах да на методе form.print
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.03.2005 (Вс) 18:25

1. Ага. Понятно.
2. Мда. Задачка, имхо, не из лёгких. Нужно ведь ещё и к количеству символов привязать. и к ширине RTB. :(
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 13.03.2005 (Вс) 20:48

Ruslan Demidow писал(а):1. Ага. Понятно.
2. Мда. Задачка, имхо, не из лёгких. Нужно ведь ещё и к количеству символов привязать. и к ширине RTB. :(

И к масштабу - ты в курсе, что он поддерживает масштабирование? Так что, имхо, проще купить существующий Офис, чем писать свой :)

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 14.03.2005 (Пн) 1:34

Ennor писал(а):
Ruslan Demidow писал(а):1. Ага. Понятно.
2. Мда. Задачка, имхо, не из лёгких. Нужно ведь ещё и к количеству символов привязать. и к ширине RTB. :(

И к масштабу - ты в курсе, что он поддерживает масштабирование? Так что, имхо, проще купить существующий Офис, чем писать свой :)

Про масштаб - в курсе. :) Только я не Офис пишу, а FTN-редактор. Хотелось пользователей порадовать вкусностями. Но видимо эту вкусность (линейка табуляции как в Word'е) придётся отложить.

А вот про построчный выбор текста из RTB (соседний в этом форуме топик) так никто и не смог подсказать. :(
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 14.03.2005 (Пн) 10:29

для определения размеров строки лучше пользоваться API функцией GetTextExtentPoint32.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 14.03.2005 (Пн) 12:17

marvan писал(а):для определения размеров строки лучше пользоваться API функцией GetTextExtentPoint32.

Пример можно?
Да и похоже по названию, что одним из критериев (сейчас на работе, посмотреть не могу) является положение курсора. Я же хочу обрабатывать текст в RTB или ещё до отображения текста письма (например при ответе), или после (например когда пользователь нажал кнопку "Сохранить").
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 14.03.2005 (Пн) 14:21

2 Ruslan Demidow
пример использования GetTextExtentPoint32 есть в API-Guide

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 14.03.2005 (Пн) 14:39

Ок. Посмотрю.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

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

Сообщение tyomitch » 14.03.2005 (Пн) 14:42

Ruslan, у тебя же не строка, а одна буква. Для одной буквы лучше использовать GetCharABCWidths, как я тебе уже подсказал в http://bbs.vbstreets.ru/viewtopic.php?p=102041#102041
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 14.03.2005 (Пн) 14:50

tyomitch писал(а):Ruslan, у тебя же не строка, а одна буква. Для одной буквы лучше использовать GetCharABCWidths, как я тебе уже подсказал в http://bbs.vbstreets.ru/viewtopic.php?p=102041#102041

Да, спасибо, Артём. Я просто решил узнать побольше и про строку. :)
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 14.03.2005 (Пн) 16:24

можно еще кинуть на форму label невидимый, запихнуть в него текст, установить размер шрифта, autosize и label.width, если текст конечно небольшой.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 14.03.2005 (Пн) 18:36

Ясно. Спасибо kif
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 15.03.2005 (Вт) 12:05

kif писал(а):можно еще кинуть на форму label невидимый, запихнуть в него текст, установить размер шрифта, autosize и label.width, если текст конечно небольшой.

ага. вот за это vb программистов и не любят.
тут один герой байтовый массив в строку переводил, сохраняя его в файл и затем читая с помощью FSO. :x

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 15.03.2005 (Вт) 13:40

... когда было достаточно
Код: Выделить всё
strMy = StrConv(CStr(arrBytes), vbUnicode)

:)
Моду создают модоки, а распространяют модозвоны.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 15.03.2005 (Вт) 16:07

2 marvan

тогда как измерить длинну строки с неизвестными заранее размером шрифта и самим шрифтом :?:
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 15.03.2005 (Вт) 16:35

kif
Если только погадать :wink:
Потому как
Personal Computer писал(а):не хватает данных

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 15.03.2005 (Вт) 19:05

kif писал(а):тогда как измерить длинну строки с неизвестными заранее размером шрифта и самим шрифтом :?:

Блеск, и красота формулировки приводит меня в сметение.
А как так бывает? :shock:
:idea: Понял: надо узнать размер текста написанного маркером на стене.


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

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

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

    TopList  
cron