Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / угловатая печать Timage / 6 сообщений из 6, страница 1 из 1
23.05.2014, 09:10
    #38649769
KasKas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
угловатая печать Timage
Здравствуйте.

Подсобите пожалуйста..

Есть у меня форма с компонентой Image1. Рисую я на ней кружочки разные. И все вроде бы хорошо, но вот как доходит дело до печати - кружочки становятся угловатыми.. При чем если взять готовую картинку, и замастырить её в Image1 - то в предпросмотре печати она вполне себе гладенькая выходит (в отличии от мною нарисованных кругов). Получается, что для щастья мне надо изначально задать разрешение повыше для канвы. Но как это сделать?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
//так вставляю картинку извне
	Image1->Stretch = true;
	Image1->Picture->LoadFromFile(OpenDialog1->FileName);

//так рисую круги
        Image1->Canvas->Brush->Color = clWhite;
	Image1->Canvas->Pen->Color = clBlack;
	Image1->Canvas->Font->Color = clBlack;
	Image1->Canvas->Ellipse(otstupX, otstupY, radius + otstupX - 1, radius + otstupY - 1);
	Image1->Canvas->TextOutW(otstupX+4, Height/2-7, IntToStr(10-i));



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

Пишу на RAD Studio XE3.
...
Рейтинг: 0 / 0
23.05.2014, 10:22
    #38649825
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
угловатая печать Timage
KasKasНо как это сделать?
Выдели всё рисование в отдельную функцию у которой TCanvas на входе. Потом вызывай её либо
с Canvas-ом формы/Image или с Canvas от выбранного TPrinter.
В этой функции анализируй параметры полученного холста чтобы рисунки были симметричными и
пропорциональными.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.05.2014, 04:26
    #38651596
KasKas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
угловатая печать Timage
Спасибо, попробовал.. Ничего не получилось=)

Код: plaintext
1.
2.
3.
4.
5.
void __fastcall TfrmMain::Draw(int Width, int Height, TCanvas Kanva)
{
Kanva->Brush->Color = clBlack;
....
}


выдает ошибку
[bcc32 Error] Main.cpp(217): E2288 Pointer to structure required on left side of -> or ->*
Full parser context
Main.cpp(208): parsing: TCanvas _fastcall TfrmMain::Draw(int,int,TCanvas)
...
Рейтинг: 0 / 0
26.05.2014, 04:27
    #38651597
KasKas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
угловатая печать Timage
Да, забыл уточнить, печатаю через фастрепорт 4-й
...
Рейтинг: 0 / 0
26.05.2014, 04:37
    #38651599
KasKas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
угловатая печать Timage
KasKasСпасибо, попробовал.. Ничего не получилось=)

Код: plaintext
1.
2.
3.
4.
5.
void __fastcall TfrmMain::Draw(int Width, int Height, TCanvas Kanva)
{
Kanva->Brush->Color = clBlack;
....
}


выдает ошибку
[bcc32 Error] Main.cpp(217): E2288 Pointer to structure required on left side of -> or ->*
Full parser context
Main.cpp(208): parsing: TCanvas _fastcall TfrmMain::Draw(int,int,TCanvas)

пардон=)
надо так было
Код: plaintext
1.
void __fastcall TfrmMain::Draw(int Width, int Height, TCanvas* Kanva)
...
Рейтинг: 0 / 0
26.05.2014, 06:44
    #38651610
KasKas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
угловатая печать Timage
не знаю, правильно ли я понял, но в итоге делаю так:
На форме 2 Image-а. Первый Image пользователь видит, второй нет. Второй Image на порядок больше первого.
В первом рисую превьюшку для пользователя, во втором - заготовку для принтера.
Код: plaintext
1.
2.
				Draw(Width, Height, Image1->Canvas, 1);
				Draw(Width, Height, Image2->Canvas, 3);


В фастрепорте у картинки autosize и strech =true.
Получается вполне сносно. Сейчас подбираю коэффициенты (последнйи параметр функции Draw(...)), а то картинка съезжает немного в верхний левый угол...

Если кто предложит другие варианты - будет интересно.

Спасибо за помощь Dimitry Sibiryakov =)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / угловатая печать Timage / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]