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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2009, 21:22   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию печать в Билдере

народ, кто может подсказать как мне распечатать то,, что находится в Memo2???
я пытался сделать
Код:
void __fastcall TForm1::N5Click(TObject *Sender)
{

if (PrintDialog1->Execute())
PrintDialog1->Assign(Memo1);
}
но не пашет, выходит ошибка печати: cannot assign a TMemo to a TPrintDialog
а такой метод как Form1->Print() не подходит, так как надо распечатать только поле MEMO2

так тоже ошибка при выполнении
Код:
void __fastcall TForm1::N5Click(TObject *Sender)
{

if (PrintDialog1->Execute())
PrintDialog1->Assign(Memo2->Lines);
}
а если писать так, то синтаксическая ошибка:
Код:
void __fastcall TForm1::N5Click(TObject *Sender)
{

if (PrintDialog1->Execute())
 PrintDialog1->Assign(Memo1->Text);

}
Dimarik вне форума Ответить с цитированием
Старый 17.07.2009, 22:16   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

1. Метод Assign пришел из делфей, где нет конструкторов копирования. Используется для копирования состояния одного объекта в другой объект. Следовательно, можно писать только: Кнопка1->Assign(Кнопка2), Мемо->Lines->Assign(Memo->Lines) и т.д.
2. PringDialog - просто диалог. Он ничего печатать не умеет и отвечает только за отображение и выбор параметров печати.
3. Точно не скажу как печатать, но подход заключается вроде создания текстового файла и вывод в него данных из Мемо. В делфях модуль Printers нужен, а для создания специального текстового файла для печати используется функция AssignPrn, если мне не изменяет память. В help'е должен быть пример.
pu4koff вне форума Ответить с цитированием
Старый 18.07.2009, 09:27   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

ничё нормального в справке не нашёл((
Dimarik вне форума Ответить с цитированием
Старый 18.07.2009, 11:28   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А я нашел пример на делфях в справке делфийской (по запросу "AssignPrn"):
Код:
procedure TForm1.Button1Click(Sender: TObject);

var
  MyFile: TextFile;
begin
  AssignPrn(MyFile);
  Rewrite(MyFile);
  Writeln(MyFile, 'Print this text');
  System.CloseFile(MyFile);
end;
Можно попробовать перегнать это на С++:
Код:
#include <Printers.hpp>
...
  
  TextFile MyFile;
  AssignPrn(MyFile);
  Rewrite(MyFile);
  Writeln(MyFile, "Print this text");
  CloseFile(MyFile);
В работоспособности кода не уверен, ибо билдера нет под руками.
pu4koff вне форума Ответить с цитированием
Старый 18.07.2009, 17:35   #5
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

не сделает. функций не знает. и мне не в консоли а в форме МЕМО1 надо распечатать
Dimarik вне форума Ответить с цитированием
Старый 18.07.2009, 19:42   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
ничё нормального в справке не нашёл((
Странно. Вот из той же справки
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TPrinter *Prntr = Printer();
  TRect r = TRect(200, 200, Prntr->PageWidth - 200, Prntr->PageHeight - 200);
  Prntr->BeginDoc();
  Prntr->Canvas->TextRect(r, 200, 200, Memo1->Lines->Text);
  Prntr->EndDoc();
}
psycho-coder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к строке в БИЛДЕРЕ Crasty Помощь студентам 1 15.05.2009 19:00
Из listBox в paintbox в Билдере slonik123 Общие вопросы C/C++ 0 09.03.2009 15:12
задача на с++ в билдере Барби Фриланс 2 16.12.2008 10:06
Вывод сообщений в Билдере Lanist Общие вопросы C/C++ 1 21.07.2008 10:05