Страница: 1 | 2 |
Народ выручайте! Или кто поможет разобраться в примере?
Если кто нибудь всё-же захочет помочь, то модуль с функцией печяти из мсфлекс грида лежит тут: Что-то ни кто на помощь не спешит Я конечно понимаю, олимпийские задачки решать прикольнее, но тут реальная проблемма которую действительно надо срочно решить. Кто-нить ХЕЛП!!! Попробуй GetPixel - PutPixel. Тогда он будет выводить именно MSFlexGrid, расположенный у тебя на форме... Спасибо конечно, но больно долго. Там где она работать будет вообще 233_я машина Sharp , может посмотришь на http://www.justas.newmail.ru/files/print.zip и переделаешь функцию как я чуть выше писал. Если помочь захочешь конечно... Жаль, я уж было обрадовался Кто нибудь ПОМОГИТЕ, я уже почти пропал А зачем GetPixel - SetPixel ? Они жутко медленные. Я тут наваял немножко проектик, вот его код: 'Добавь PictureBox Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _ fDC = GetDC(MSHFlexGrid1.hwnd) Private Sub Command2_Click()
Вопрос: Печать MSFlexGrid
Добавлено: 09.01.04 00:53
Автор вопроса:
Justas
| Web-сайт:
Надо срочно (до вторника) напечатать MSFlexGrid.
Не набор записей из базы, а именно MSFlexGrid со всем его содержимым.
Есть у кого - нибудь опыт в этом деле?
У меня есть процедурка печати из MSFlexGrid, но там надо кое что изменить под мои надобности, а где и что менять разобраться немогу.
Кто-нить поможет?
Ежели да, то примерчик в почту зашлю.
Народ, у кого время есть, выручайте плиз!!!
Ответы
Всего ответов: 23
Номер ответа: 1
Автор ответа: Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #1
Добавлено: 09.01.04 07:14
http://www.justas.newmail.ru/files/print.zip
Проблема в том - что он выводит на печать грид таким образом, что все столбцы одинаковой ширины.
Если кто возьмёт на себя труд и переделает его, то: в гриде должно быть 7 столбцов. Ширина столбцов: 1,8см; 1,5см; 8,5см; 8,5см; 3см; 1,8см; 1см. В МсФлексе у меня столбцы разной ширины, а при печати - столбцы становятся одинаковые. Если кто переделает функцию - шлите её на justas@bk.ru
Номер ответа: 2
Автор ответа: Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #2
Добавлено: 10.01.04 04:37
Братья прогеры, ну помогите - же! Хелп!!!
Номер ответа: 3
Автор ответа: Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #3
Добавлено: 12.01.04 00:57
Номер ответа: 4
Автор ответа: Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #4
Добавлено: 12.01.04 07:05
( Или дух альтруизма окончательно покинул програмеров???
Номер ответа: 5
Автор ответа: Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 12.01.04 14:02
Номер ответа: 6
Автор ответа: Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #6
Добавлено: 13.01.04 00:18
Sharp А не мог-бы ты примерчик наваять? Ну хоть бы и на текстбоксе? Или сильно долго? А то я себе не очень хорошо представляю то про что ты написал...
Номер ответа: 7
Автор ответа: Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 13.01.04 00:29
Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Sub Command1_Click()
For i = 0 To fg.Width
For j = 0 To fg.Height
s = GetPixel(GetDC(fg.hwnd), i, j)
Picture1.PSet (i, j), s
Next
Next
End Sub
У меня работает. Вывод в Picture1 замени на вывод на принтер. Работает, правда, медленно, но работает...
Номер ответа: 8
Автор ответа: Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #8
Добавлено: 13.01.04 00:29
Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Sub Command1_Click()
For i = 0 To fg.Width
For j = 0 To fg.Height
s = GetPixel(GetDC(fg.hwnd), i, j)
Picture1.PSet (i, j), s
Next
Next
End Sub
У меня работает. Вывод в Picture1 замени на вывод на принтер. Работает, правда, медленно, но работает...
Номер ответа: 9
Автор ответа: Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #9
Добавлено: 13.01.04 00:51
(
Номер ответа: 10
Автор ответа: Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #10
Добавлено: 13.01.04 00:54
Помочь-то я может и хотел бы, но ни в принтерах, ни в MSFlexGrid я ровным счетом ничего не смыслю.
Номер ответа: 11
Автор ответа: Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #11
Добавлено: 13.01.04 01:03
)
...
Номер ответа: 12
Автор ответа: cresta
Вопросов: 117
Ответов: 1538
Профиль | | #12
Добавлено: 13.01.04 01:46
ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd _
As Long, ByVal hdc As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Command1_Click()
Dim fDC As Long
' получение hDC грида
PictureBox.Width = MSHFlexGrid1.Width
PictureBox.Height = MSHFlexGrid1.Height
PictureBox.AutoRedraw = True
' копирование его изображения в PictureBox
BitBlt PictureBox.hdc, 0, 0, MSHFlexGrid1.Width / Screen.TwipsPerPixelX, _
MSHFlexGrid1.Height / Screen.TwipsPerPixelY, _
fDC, 0, 0, vbSrcCopy
' освобождение устройства
ReleaseDC MSHFlexGrid1.hwnd, fDC
PictureBox.Refresh
End Sub
PictureBox.Cls
End Sub
' PictureBox можно сделать невидимым, чтобы не мешался, а как Picture распечатать думаю сообразишь
Номер ответа: 13
Автор ответа: Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #13
Добавлено: 13.01.04 01:50
GetPixel/SetPixel - это я в качестве первого варианта предложил...
Номер ответа: 14
Автор ответа: cresta
Вопросов: 117
Ответов: 1538
Профиль | | #14
Добавлено: 13.01.04 02:14
To Sharp: ты так ответил, что мне аж неудобно стало
как будто я тебя в чем-то упрекнул. Даже мыслей не было
Номер ответа: 15
Автор ответа: Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #15
Добавлено: 13.01.04 02:20
Да ничего страшного. Надо ж мне было как-то оправдаться, что я не ламо...