Перейти к содержанию
Fire Monkey от А до Я

Поиск сообщества

Показаны результаты для тегов 'печать'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 1 результат

  1. Здравствуйте! Подскажите пожалуйста в чем причина смещения изображения при печати по горизонтали относительно листа? procedure ThePrint(day : arraySheet; prn : TPrintDialog); var DestRect, Rect_cell, Rect_Size:TRectF; i,pageall:integer; textFill: tFillTextFlags; poses : TPoses; Col1 : boolean; COLROW : integer; sizeRow : Single; Image : TImage; begin textFill := []; COLROW := 63; Printer.ActivePrinter := Printer.Printers[1]; Printer.ActivePrinter.SelectDPI(Printer.ActivePrinter.DPI[Printer.ActivePrinter.DPICount-1]); Printer.BeginDoc; sizeRow := Printer.PageHeight / COLROW; poses := getPosY(day, sizeRow); Printer.Canvas.BeginScene; Printer.Canvas.Font.Size := sizeRow * 0.8; Printer.Canvas.Font.Family := 'Times New Roman'; Printer.Canvas.Fill.Color := TAlphaColorRec.Black; Printer.Canvas.Fill.Kind := TBrushKind.Solid; Col1 := true; var WCol := Printer.PageWidth / 2 - 10; var WColW := WCol / 3; for var s := 0 to Length(poses)-1 do begin if Col1 then DestRect := RectF(0, poses[s], WCol, poses[s] + sizeRow) else DestRect := RectF(WCol, poses[s], Printer.Canvas.Width, poses[s] + sizeRow); Printer.Canvas.Font.Style:= Printer.Canvas.Font.Style + [TFontStyle.fsBold]; Printer.Canvas.FillText(DestRect,day[0].listSheme[s].name,True,1,textFill,TTextAlign.Center,TTextAlign.Center); Printer.Canvas.Font.Style:= Printer.Canvas.Font.Style - [TFontStyle.fsBold]; for var p := 0 to Length(day[0].listSheme[s].listPosition) - 1 do begin var nameSize := day[0].listSheme[s].listPosition[p].t + 'x' + day[0].listSheme[s].listPosition[p].w + 'x' + day[0].listSheme[s].listPosition[p].l + '='; if day[0].listSheme[s].listPosition[p].c.ToInteger > 1 then nameSize := nameSize + day[0].listSheme[s].listPosition[p].c + 'л'; Rect_cell := RectF(10, poses[s] + (sizeRow * (p+1)), WCol-30, poses[s] + (sizeRow * (p+2))); Rect_Size := RectF(0, poses[s] + (sizeRow * (p+1)), WCol - WColW, poses[s] + (sizeRow * (p+2))); if not Col1 then begin Rect_cell.Left := Rect_cell.Left + WCol + 20; Rect_cell.Right := Rect_cell.Right + WCol + 10; Rect_Size.Left := Rect_Size.Left + WCol + 20; Rect_Size.Right := Rect_Size.Right + WCol + 10; end; Printer.Canvas.FillText(Rect_cell, day[0].listSheme[s].listPosition[p].pn + ')' + day[0].listSheme[s].listPosition[p].s, True,1,textFill,TTextAlign.Leading,TTextAlign.Center); Printer.Canvas.FillText(Rect_Size, nameSize, True,1,textFill,TTextAlign.Trailing,TTextAlign.Center); end; Col1 := not(Col1); end; for var row := 1 to COLROW do begin Printer.Canvas.DrawLine(TPointF.Create(0, sizeRow * row), TPointF.Create(WCol, sizeRow * row), 0.5); Printer.Canvas.DrawLine(TPointF.Create(WCol + 20, sizeRow * row), TPointF.Create(Printer.Canvas.Width, sizeRow * row), 0.5); end; DestRect := RectF(0, 0, Printer.Canvas.Width, sizeRow); Printer.Canvas.FillText(DestRect, day[0].name, True, 1, textFill, TTextAlign.Center,TTextAlign.Center); Printer.Canvas.DrawLine(TPointF.Create(WCol, sizeRow), TPointF.Create(WCol, Printer.Canvas.Height), 1); Printer.Canvas.DrawLine(TPointF.Create(WCol + 20, sizeRow), TPointF.Create(WCol + 20, Printer.Canvas.Height), 1); Printer.Canvas.DrawLine(TPointF.Create(0, sizeRow), TPointF.Create(500, Printer.Canvas.Height), 1); Printer.Canvas.DrawLine(TPointF.Create(Printer.Canvas.Width, sizeRow), TPointF.Create(Printer.Canvas.Width, Printer.Canvas.Height), 1); Printer.Canvas.DrawLine(TPointF.Create(WCol-WColW+20, sizeRow), TPointF.Create(WCol-WColW+20, Printer.Canvas.Height), 1); Printer.Canvas.DrawLine(TPointF.Create(Printer.Canvas.Width-WColW+20, sizeRow), TPointF.Create(Printer.Canvas.Width-WColW+20, Printer.Canvas.Height), 1); Printer.Canvas.EndScene; Printer.EndDoc; end; ВОТ ЧТО ПОЛУЧАЕТСЯ: Линия спецом под угол, что бы понять само смещение в лево относительно листа. Соответственно текст тоже видно на половину Написано на Delphi 11, FMX.Printer Заранее спасибо!
×
×
  • Создать...