C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Ширина шрифта, Принтер->канва.....
exp
Отправлено: 20.04.2005, 16:26


Мастер участка

Группа: Участник
Сообщений: 304



Здравствуй многоуважаемый и всезнающий Ол!

Вот хочу поделиться проблемой.
Печатаю DBGrid на принтере. Строки & столбцы. ширина страницы принтера около 2000 пикселей. ширина грида около 600 пикселей.
Т. е. при переносе сетки на лист придется ее увеличивать. Это выполнено. НО! проблема возникает со шрифтом.
Размер шрифта сетки = 8. Но и на листе этот 8-й шрифт становится больше относительно ширины столбца. Из-за этого текст не влезает в колонки.
Подскажите, пожалуйста, как пологнать размер шрифта таким образом, чтоб отношение ширины столбца грида к ширине шрифта сохранялись при переносе на лист.
Надеюсь, понятно изложил.
Спасибо.
Asher
Отправлено: 20.04.2005, 16:48


Мастер участка

Группа: Модератор
Сообщений: 550



Привет.
Посмотри в сторону GetDeviceCaps? должно помочь.

Будет примерно так:
double dFontRate = (double)GetDeviceCaps(Printer()->Handle, LOGPIXELSY) / GetDeviceCaps(Image1->Canvas->Handle, LOGPIXELSY));//

Хотя наверняка прийдется все-таки проверять ширину получившейся строки если шрифт не моноширинный

Вернуться в Вопросы программирования в C++Builder