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

 
Масштабирование TChart ???, После печати размер шрифта увеличивается
Roman
Отправлено: 31.10.2005, 18:30


Дежурный стрелочник

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



Здравствуйте!

Может кто сталкивался....
Печатаю TChart. На экране все нормально. На время печати маштабирую печатаемую область. Шрифт осей получается большой и я его уменьшаю в 2 раза. Печатает все как надо. После печати восстанавливаю... Но размер на экране становится больше в 4 раза. Если использую константы он при выходе из функции уведичивается с 8 (ставил это значение) до 50!!!! Перепробовал все варианты...

Вот код...

void __fastcall TFMaine::RzBitBtnPrint_GrClick(TObject *Sender)
{
int h, w, MapMode, Lab_Size, Leg_Size;

Screen->Cursor = crHourGlass;
try {
char szDeviceName[255],
szDriverName[255],
szPortName[255];
THandle hPrnDevMode;
PDEVMODE pDevMode;
Printer()->GetPrinter(szDeviceName, szDriverName, szPortName, hPrnDevMode);
if (hPrnDevMode != 0) {
pDevMode = (PDEVMODE) GlobalLock((HANDLE) hPrnDevMode);
if (pDevMode != NULL) {
pDevMode->dmFields |= DM_ORIENTATION;
pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
}
GlobalUnlock((HANDLE) hPrnDevMode);
}
Ser[7]->LinePen->Style = StylePen[g++];
Ser[7]->LinePen->Width = 1;
Ser[7]->SeriesColor = SerColor[1];

Chart3->Legend->Alignment = laBottom;
Chart3->Legend->Font->Size /= 2;
Chart3->LeftAxis->LabelsFont->Size /= 2;
Chart3->BottomAxis->LabelsFont->Size /= 2;
Printer()->BeginDoc();
try {
h = Printer()->PageHeight;
w = Printer()->PageWidth;


Chart3->PrintPartial( Rect(
w / 20, // <-- 5% left margin
h / 20 , // <-- 5% top margin
w — (w / 20), // <-- 5% right margin
h — (h / 20))); // <-- 5% bottom margin

Printer()->EndDoc();
}
catch (...) {
Printer()->Abort();
Printer()->EndDoc();
}
}
__finally {
Chart3->Legend->Alignment = laRight;
Chart3->Legend->Font->Size *= 2;
Chart3->LeftAxis->LabelsFont->Size *= 2;
Chart3->BottomAxis->LabelsFont->Size *= 2;
Screen->Cursor = crDefault;
}
Chart3->SetFocus();
}
//---------------------------------------------------------------------------

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