On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 17
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.08.07 14:58. Заголовок: Подскажите, как подружить xHarbour с HBPrint


Библиотеки (hbprinter, minigui, miniprint) пересобрал под xHarbour. Все *.ch указал.

Простейший пример собирается, но получаем runtime error:

INIT PRINTSYS
SELECT DEFAULT PREVIEW
DEFINE FONT "F0" NAME "Courier New" SIZE 24
START DOC
START PAGE
@ 10,10 SAY "Пробная страница HBPrint" FONT "F0" TO PRINT
END PAGE
END DOC
RELEASE PRINTSYS

Ошибка: переменная не существует _HMG_SYSDATA

Чего еще не хватает? Подскажите, плиз.

Спасибо: 0 
Профиль
Ответов - 14 [только новые]


постоянный участник


Пост N: 18
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.08.07 16:59. Заголовок: Re:


Кажись врубился... С xHarbour не получится использовать HBPrinter из комплекта MiniGUI, пересобрав его xHrb?
Придется использовать Win32prn? Так или нет? Или всё же можно? Просто Win32prn даже не документирована.
Ответьте хоть что-нить... :)

Спасибо: 0 
Профиль
модератор




Пост N: 539
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 30.08.07 17:43. Заголовок: Re:


PSP пишет:

 цитата:
не получится использовать HBPrinter из комплекта MiniGUI, пересобрав его xHrb?



Нет, вывод неверный. HBPrinter работает с xHarbour без проблем.
Решение по шагам:
1. создать каталог xLib в папке MiniGUI
2. пересобрать все библиотеки с xHarbour командой MakeLib /x - они должны лежать в папке xLib
3. перейти в папку samples\Advanced\HBprinter и набрать Compile /x для сборки контрольного примера

Чем еще можно помочь - не знаю

Спасибо: 0 
Профиль
постоянный участник


Пост N: 19
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.08.07 20:07. Заголовок: Re:



 цитата:
Решение по шагам:


1. Сделал.
2. Думаю, что сделал. MiniGUI, HPPrinter, Miniprint точно пересобрал. Последнюю на всякий случай. :)
3. Точно не помню уже, заметался. По-моему, делал; была куча unresolved external... кажись. Проверю`


 цитата:
Чем еще можно помочь - не знаю


Очень надеюсь, что знаете! :)

Вот еще что: собирал с созданием .ppo и свой пример, и пример из MiniGUI. Сначала _HMG_SYSDATA объявляется MEMVAR (файл i_var.ch). В тексте обеих программ нигде нет инициализации этой переменной.
Потом, при завершении печати страницы используется _HMG_SYSDATA[41] (в обеих программах) и мы имеем runtime error в моей и нормальную работу (правда с GUI) в вышеприведенном примере.
Извините за путанный рассказ... Надеюсь на помощь. Спасибо!


Спасибо: 0 
Профиль
постоянный участник


Пост N: 20
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.08.07 20:48. Заголовок: Re:


Не написал, шо прога консольная. Хотя вот здесь http://clipper.borda.ru/?1-1-0-00000083-000-0-0-1185342091
Dima сказал, шо не фига страшного... :)

Спасибо: 0 
Профиль
модератор




Пост N: 540
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 30.08.07 21:17. Заголовок: Re:


PSP пишет:

 цитата:
прога консольная


Теперь стало яснее
Дело в том, что для предпросмотра в HBPrinter используются GUI-элементы, поэтому и возникают проблемы с массивом _HMG_SYSDATA.

Спасибо: 0 
Профиль
постоянный участник


Пост N: 21
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.07 12:02. Заголовок: Re:


Т.е. не получицца?


Спасибо: 0 
Профиль
модератор




Пост N: 541
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 31.08.07 12:15. Заголовок: Re:


PSP пишет:

 цитата:
не получицца?


Ну, почему-же так категорично?

Закомментируй метод Preview и др., которые используют GUI, и пользуйся только движком HBPrinter.



Спасибо: 0 
Профиль
Администратор




Пост N: 587
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 31.08.07 13:06. Заголовок: Re:


Дык preview - это самое ценное, что есть в HBPrinter
Можно ведь использовать класс win32prn из стандартной поставки. Все для печати там есть, кроме preview

Спасибо: 0 
Профиль
постоянный участник


Пост N: 22
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.07 13:23. Заголовок: Re:


Уже работает. :) Пока без превью. Но можно выбирать принтер из стандартного виндового диалога: SELECT BY DIALOG. Уже приятно.
Не могу пока заставить печатать русскими, прога в OEM. Отпишусь позже... Спасибо!

Спасибо: 0 
Профиль
постоянный участник


Пост N: 23
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.07 14:01. Заголовок: Re:


Preview заработало. Консольное окно само по себе, а печать в виндовом окне сама по себе... :)
Пусскими пока не печатает. :(

Спасибо: 0 
Профиль
постоянный участник


Пост N: 24
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.07 14:12. Заголовок: Re:


Блин, не врубаюсь, как русские получить?
Делал:
HB_SetCodePage( "RU866" ) (думаю, не влияет на HBPrint)
HB_LangSelect( "RU866" ) (думаю, не влияет на HBPrint)
SET CHARSET (и ОЕМ_CHARSET, и ANSI_CHARSET, и RUSSIAN_CHARSET) - не меняется ничего.
Использовал HB_OEMToAnsi() - по барабану...
В Preview тоже русских нет.


Спасибо: 0 
Профиль
постоянный участник


Пост N: 25
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.07 14:47. Заголовок: Re:


Всё, есть русские. SET CHARSET надо перед DEFINE FONT указывать.
Спасибо Григорию ОГРОМНОЕ!!!
Приношу свои извинения за некоторые тормоза... :)

Спасибо: 0 
Профиль
постоянный участник




Пост N: 331
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.08.07 17:46. Заголовок: Re:


PSP пишет:

 цитата:
Preview заработало. Консольное окно само по себе, а печать в виндовом окне сама по себе... :)



Очень интересен твой пример. Большая просьба выслать или выложить сам пример и файл сборки.
Если большой то можно мне на мыло 30195@mail.ru
Спасибо заранее...

Спасибо: 0 
Профиль
постоянный участник


Пост N: 26
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 31.08.07 19:51. Заголовок: Re:


Пример просто тестовый:

///////////////////////////////////////////
#include "MiniGUI.ch"
#include "WinPrint.ch"


FUNCTION Main

CLS
@ 1, 1 SAY "Console window" // чтобы видеть консольное окно

cStr := "Пробная страница HBPrint"

DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 10 HEIGHT 10 ;
TITLE HB_OEMToAnsi( 'Печать' );
MAIN ;
NOSHOW ; // чтобы не видеть просто пустое окно
ON INIT Printing( cStr )
END WINDOW

ACTIVATE WINDOW Form_1

RETURN NIL

//-------------------------------------

FUNCTION Printing( cStr )

LOCAL c, i

INIT PRINTSYS
SELECT BY DIALOG PREVIEW
SET PREVIEW RECT 0, 0, 600, 800
GET SELECTED PRINTER TO c
IF ! Empty( c )
SET CHARSET OEM_CHARSET
DEFINE FONT "F1" NAME "Times New Roman" SIZE 30
SET ORIENTATION LANDSCAPE
START DOC
FOR i := 1 TO 3
START PAGE
@ 20, 10 SAY cStr + " page " + AllTrim( Str( i ) ) FONT "F1" TO PRINT
END PAGE
NEXT
END DOC
END // IF
RELEASE PRINTSYS

DoMethod( "Form_1", "Release" )

RETURN NIL

//----------------------------------------------------

cStr в оригинале в кодировке OEM.

/////////////////////////////////////////////////////////////

Файл сборки (т.е. его библиотечная чать):
echo c:\minigui\xlib\tsbrowse.lib + >> b32.bc
echo c:\minigui\xlib\minigui.lib + >> b32.bc
echo c:\minigui\xlib\dll.lib + >> b32.bc
echo c:\xharbour\lib\gtwin.lib + >> b32.bc
echo c:\xharbour\lib\gtgui.lib + >> b32.bc
echo c:\xharbour\lib\rtl.lib + >> b32.bc
echo c:\xharbour\lib\vm.lib + >> b32.bc
echo c:\xharbour\lib\lang.lib + >> b32.bc
echo c:\xharbour\lib\codepage.lib + >> b32.bc
echo c:\xharbour\lib\macro.lib + >> b32.bc
echo c:\xharbour\lib\rdd.lib + >> b32.bc
echo c:\xharbour\lib\dbfntx.lib + >> b32.bc
echo c:\xharbour\lib\dbfcdx.lib + >> b32.bc
echo c:\xharbour\lib\dbffpt.lib + >> b32.bc
echo c:\xharbour\lib\hbsix.lib + >> b32.bc
echo c:\xharbour\lib\common.lib + >> b32.bc
echo c:\xharbour\lib\debug.lib + >> b32.bc
echo c:\xharbour\lib\pp.lib + >> b32.bc
echo c:\xharbour\lib\ct.lib + >> b32.bc
echo c:\xharbour\lib\libmisc.lib + >> b32.bc
echo c:\minigui\xlib\hbprinter.lib + >> b32.bc
echo c:\minigui\xlib\socket.lib + >> b32.bc
echo c:\minigui\xlib\miniprint.lib + >> b32.bc

/////////////////////////////////////////////////////////////////

Просто, я в первый раз это делал, вот и возбудился... :) Еще раз прошу всех извинить меня.


Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 171
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет