Разбиение по строкам

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

Разбиение по строкам

Сообщение Urvin » 07.03.2005 (Пн) 19:59

Необходимо сделать из одной переменной типа string несколько строчек на канвасе, причем с разделением по словам.
Т.е. Нам задана максимальная ширина строки в пикселях, N. В одну строку могут помещаться несколько слов, если они достаточно короткие. Если слово длиннее заданной ширины строки, надо обрезать это слово по ширине строки, и остаток, если не слишком длинен напечатать на следующей строчке. Если он длинный, повторить обрезание..
Вот. Как бы это сделать? Желательно без всяких целомудренных функций...
Не так страшен русский танк, как его пьяный экипаж

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

Сообщение tyomitch » 07.03.2005 (Пн) 20:13

DrawText не поможет? Или у "канваса" нет DC?
Изображение

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 07.03.2005 (Пн) 21:57

Извини, пользуюсь паскакальными формулировками. Не суть важно, главное-алгоритм!
Очень важно иметь представление о количестве строк в полученном напечаталище.
Не так страшен русский танк, как его пьяный экипаж

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

Сообщение tyomitch » 07.03.2005 (Пн) 22:02

Urvin писал(а):Извини, пользуюсь паскакальными формулировками. Не суть важно, главное-алгоритм!
Очень важно иметь представление о количестве строк в полученном напечаталище.

Только померять, или нарисовать тоже?
Если только померять - DrawText с флагом DT_CALCRECT, если и нарисовать - то без него :-)
Изображение

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 07.03.2005 (Пн) 23:14

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

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

Сообщение tyomitch » 07.03.2005 (Пн) 23:41

Urvin писал(а):И то и то, но все-таки хочется чуть поприземленнее - через обычные пачаталки и символы....

Я ничего не понимаю :roll:

Что нужно-то? И чем не подходит эта DrawText, кроме недостаточной приземлённости?
Изображение

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 08.03.2005 (Вт) 0:02

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

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

Сообщение tyomitch » 08.03.2005 (Вт) 0:08

Urvin писал(а):ну, ностальгия по циклам по каждому символу...

Могу только посочувствовать ;-)
Изображение


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 140

    TopList  
cron