Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2014, 13:03   #1
levashovea
 
Регистрация: 04.05.2011
Сообщений: 6
По умолчанию Выбор по условию для With

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

Всю процедуру приводить не буду вот ее часть:

Вызов процедуры :

Код:
Printer.BeginDoc;
formgr(1,x,y);  // формируем  график
Printer.EndDoc;
Сама процедура :

Код:
procedure formgr(typeot,sx,sy:integer);
var x,y,y1,x2,y2,i,raz,n:integer;
      begin
//with Form7.Image1 do
with printer do
begin                     //формирование листа
form7.visible:=True;
if sx<form7.Width then  Form7.Image1.Left:=Round((form7.Width-sx)/2) else Form7.Image1.Left:=10;
Canvas.Brush.Color:=clWhite	;  // стирание пред отчета
Canvas.RoundRect(0,0,sx,sy,1,1);
Canvas.Pen.Style:=psSolid;
……
……
End;
End;
Если вместо строчки with printer do
поставить with Form7.Image1 do то будет своеобразный предварительный просмотр отчета.

Вот собственно вопрос: как сделать так чтобы при нажатие на кнопку 1 происходил просмотр,
а при нажатие на кнопку 2 происходила печать при помощи одной и той же процедуры ?
levashovea вне форума Ответить с цитированием
Старый 28.12.2014, 13:07   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Передать параметром Canvas и убрать with
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.12.2014, 13:12   #3
levashovea
 
Регистрация: 04.05.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Передать параметром Canvas и убрать with
Пример кода можете привести ?
levashovea вне форума Ответить с цитированием
Старый 28.12.2014, 14:29   #4
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Как-то так.

Код:
  Printer.BeginDoc;
  formgr(1,x,y, Form7.Image1.Canvas);
  Printer.EndDoc;
Код:
  Printer.BeginDoc;
  formgr(1,x,y, Printer.Canvas);
  Printer.EndDoc;
Код:
procedure formgr(typeot,sx,sy:integer; Canvas: TCanvas);
var 
  x, y, y1, x2, y2, i, raz, n: Integer;
begin
  form7.visible:=True;
  if sx < form7.Width then  
    Form7.Image1.Left := Round((form7.Width-sx)/2) 
  else 
    Form7.Image1.Left:=10;

  Canvas.Brush.Color := clWhite;
  Canvas.RoundRect(0,0,sx,sy,1,1);
  Canvas.Pen.Style:=psSolid;
  // ...
End;
kangreon вне форума Ответить с цитированием
Старый 28.12.2014, 14:47   #5
levashovea
 
Регистрация: 04.05.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от kangreon Посмотреть сообщение
Как-то так.

Код:
  Printer.BeginDoc;
  formgr(1,x,y, Form7.Image1.Canvas);
  Printer.EndDoc;
Код:
  Printer.BeginDoc;
  formgr(1,x,y, Printer.Canvas);
  Printer.EndDoc;
Код:
procedure formgr(typeot,sx,sy:integer; Canvas: TCanvas);
var 
  x, y, y1, x2, y2, i, raz, n: Integer;
begin
  form7.visible:=True;
  if sx < form7.Width then  
    Form7.Image1.Left := Round((form7.Width-sx)/2) 
  else 
    Form7.Image1.Left:=10;

  Canvas.Brush.Color := clWhite;
  Canvas.RoundRect(0,0,sx,sy,1,1);
  Canvas.Pen.Style:=psSolid;
  // ...
End;
Все отлично работает, спасибо всем кто принимал участие.
levashovea вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор из одного столбца по условию выполняющемуся во втором столбце mjpv Microsoft Office Excel 2 30.04.2011 11:58
Prolog (Выбор по условию из списка) nata Помощь студентам 1 06.05.2010 13:27
Выбор поля по условию (ADO) Gracia БД в Delphi 2 27.04.2010 12:36
Выбор ячеек по условию из нескольких листов hamlook Microsoft Office Excel 10 10.11.2009 16:00
Выбор нужных дат из списка по условию Andrey3055 Microsoft Office Excel 4 28.10.2009 02:27