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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2015, 15:14   #1
Magomed642
 
Регистрация: 26.04.2015
Сообщений: 9
Печаль Пи нажатии на печатать вылазивает ошибка I/O error 103. Очень нужна помощь.

Код:
unit Unit1;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,Printers,TeCanvas;

type
  TForm1 = class(TForm)
    pnl1: TPanel;
    mmo1: TMemo;
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    dlgOpen1: TOpenDialog;
    dlgSave1: TSaveDialog;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
   with dlgOpen1, mmo1 do
      if Execute then
         Lines.LoadFromFile(FileName);

end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  with dlgSave1, mmo1 do
      if Execute then
        begin
           Lines.SaveToFile(FileName);
           dlgOpen1.FileName:=FileName;


end;

  end;
  procedure TForm1.btn3Click(Sender: TObject);
var  
  Prn: TextFile;  
  k: Integer;  
begin  
  AssignPrn(Prn); // Переназначаем вывод в файл на вывод в принтер
 AssignPrn(Prn);    // Готовим принтер к печати (аналог BeginDoc)
  { Для печати используем такой же шрифт, как и для показа   
    в редакторе: }  
  Printer.Canvas.Font := mmo1.Font;
  // Цикл печати:  
  for k := 0 to mmo1.Lines.Count-1 do
    WriteLn(Prn, mmo1.Lines[k]);
    CloseFile(Prn);    // Аналог EndDoc  
end;  
   end.

Последний раз редактировалось Аватар; 26.04.2015 в 15:40.
Magomed642 вне форума Ответить с цитированием
Старый 26.04.2015, 15:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
WriteLn(Prn, mmo1.Lines[k]);
А у тебя что DOS эмулятор печати есть? Или подача прям на LTP идет, который настроен на prn файл?
Вообще в современном мире обычно печатают примерно так:
http://www.programmersforum.ru/showthread.php?t=14638
http://www.programmersforum.ru/showthread.php?t=88986
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2015, 15:35   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

На какой строчке?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 26.04.2015, 16:58   #4
Magomed642
 
Регистрация: 26.04.2015
Сообщений: 9
По умолчанию

Вы можете помочь мне правильно его записать. У меня обычный Delphi 7.
Magomed642 вне форума Ответить с цитированием
Старый 26.04.2015, 18:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ссылки, что я дал не помогают?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2015, 18:05   #6
Magomed642
 
Регистрация: 26.04.2015
Сообщений: 9
По умолчанию

та же самая ошибка
Magomed642 вне форума Ответить с цитированием
Старый 26.04.2015, 18:10   #7
Magomed642
 
Регистрация: 26.04.2015
Сообщений: 9
По умолчанию

вот ссылка на ошибку. https://drive.google.com/open?id=0Bx...cjQ&authuser=0
Magomed642 вне форума Ответить с цитированием
Старый 26.04.2015, 18:11   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
та же самая ошибка
Покажи переделанный код.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2015, 18:34   #9
Magomed642
 
Регистрация: 26.04.2015
Сообщений: 9
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,Printers,TeCanvas;

type
  TForm1 = class(TForm)
    pnl1: TPanel;
    mmo1: TMemo;
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    dlgOpen1: TOpenDialog;
    dlgSave1: TSaveDialog;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
   with dlgOpen1, mmo1 do
      if Execute then
         Lines.LoadFromFile(FileName);

end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  with dlgSave1, mmo1 do
      if Execute then
        begin
           Lines.SaveToFile(FileName);
           dlgOpen1.FileName:=FileName;


end;

  end;

  procedure TextFromMemoOnCanvas;
var  i: byte;
     number: integer; //  ?????????? ????? ? ????
     str: string;
begin
  number:= Form1.mmo1.Lines.Count;
  Form1.Canvas.Font.Size:= 15;
  for i:= 0 to number do
  begin
    str:= Form1.mmo1.Lines[i];
    Form1.Canvas.TextOut(50,50 + 25 * i,str);
  end;
end;
  procedure TForm1.btn3Click(Sender: TObject);
var  
  Prn: TextFile;  
  k: Integer;  
begin  
  AssignPrn(Prn); // Переназначаем вывод в файл на вывод в принтер
 AssignPrn(Prn);    // Готовим принтер к печати (аналог BeginDoc)
  { Для печати используем такой же шрифт, как и для показа   
    в редакторе: }  
  Printer.Canvas.Font := mmo1.Font;
  // Цикл печати:  
  for k := 0 to mmo1.Lines.Count-1 do
    WriteLn(Prn, mmo1.Lines[k]);
    CloseFile(Prn);    // Аналог EndDoc  
end;  
   end.
Оформляй код по правилам - кнопка # вверху

я новичок может не правильно все сделал

Последний раз редактировалось Аватар; 26.04.2015 в 18:40.
Magomed642 вне форума Ответить с цитированием
Старый 26.04.2015, 19:03   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну ты ссылки то мои читал?
Вывод делай на канву принтера, а не через ассигнование устаревшего prn файла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь! Нужно найти ошибку в очень простой программе. Lex55555777 Помощь студентам 3 07.12.2008 20:32
Нужна помощь в Паскале. Очень-очень срочно. !!! Помощь студентам 2 09.02.2007 15:12