Arsip: mencetak / print form

more 14 years ago
radhutz
dear, delphiers..
saya mau tanya caranya ngeprint form delphi gimana??
jadi beserta image2nya..
karna yg saya tau mencetak database dengan RAV tapi nggak bisa gambar..
terima kasih atas bantuannya..

more 14 years ago
Penjahat
Yups... pertanyaan kurang jelas
kalo yang dimaksud adalah nge-print form, itu sangat simpel. Perintahnya cuma Print; that's all.
kalo yg dimaksud menggunakan Report, anda harus menjelaskan menggunakan report apa. Karena walau setiap report metodenya hampir sama, tapi tetep aja beda. Hampir semua report mendukung blob image.
"mencetak database" --> saya kurang paham dengan maksud anda
"dengan RAV tapi nggak bisa gambar" --> saya juga kurang paham dengan yg ini
saya akan senang sekali kalo anda mau menjelaskan lebih detail apa itu RAV

more 14 years ago
radhutz
maaf baru reply..
mksud saya bagaimana mencetak form yang ada di aplikasi delphi, kao form itu terdiri dari gambar?!
karna setau saya sampai saat ini, saya hanya taui coding untuk mencetak laporan yang berhubungan dengan database/access sedangkan apabila dalam satu form itu ada image yang membaca data, seperti grafik, saya tidak tau codingnya untuk mencetaknya..
sebagai contoh, apabila dalam satu form aplikasi delphi, terdapat gambar grafik, string grid, listbox, dan image tambahan, apabila saya menekan tombol "Print" maka akan terhubung dengan printer yang akan mencetak apa yang terdapat dalam form, baik gambar, grafik, maupun komponen lainnya..
semoga keterangan saya ini lebih jelas..
terima kasih atas bantuannya..

more 14 years ago
heriy4nt0
Untuk nge-print seluruh form, hanya buat apa ya..,bukannya lebih bagus dari report ?
- tambahkan unit printers di clause Uses
---print seluruh form termasuk image gambar(termasuk dari timage component)---
var r:trect
Printer.BeginDoc;
r:=Rect(0,0,printer.PageWidth,Printer.PageHeight);
Printer.Canvas.Rectangle(r);
Printer.Canvas.CopyRect(r,Canvas,ClientRect);
Printer.EndDoc;

more 14 years ago
radhutz
karna ada gambarnya..
kalo report setau saya,, hanya tulisan ya?!
thanks for the reply..

more 14 years ago
DelphiExpert
saya tidak ingat sejak Delphi versi berapa, namun yg jelas ada method Form.Print yg bisa digunakan untuk mencetak form.
// property AForm.PrintScale utk set pensekalaan pencetakan
AForm.Print;
berikut sy cantumkan code Form.Print:
procedure TCustomForm.Print;
var
FormImage: TBitmap;
InfoSize: DWORD;
ImageSize: DWORD;
Bits: HBITMAP;
DIBWidth, DIBHeight: Longint;
PrintWidth, PrintHeight: Longint;
{$IF DEFINED(CLR)}
LBuffer: IntPtr;
Info: TBitmapInfo;
Image: TBytes;
{$ELSE}
Info: PBitmapInfo;
Image: Pointer;
{$IFEND}
begin
Printer.BeginDoc;
try
FormImage := GetFormImage;
Canvas.Lock;
try
{ Paint bitmap to the printer }
with Printer, Canvas do
begin
Bits := FormImage.Handle;
GetDIBSizes(Bits, InfoSize, ImageSize);
{$IF DEFINED(CLR)}
LBuffer := Marshal.AllocHGlobal(InfoSize);
try
SetLength(Image, ImageSize);
GetDIB(Bits, 0, LBuffer, Image);
Info := TBitmapInfo(Marshal.PtrToStructure(LBuffer, TypeOf(TBitmapInfo)));
{$ELSE}
Info := AllocMem(InfoSize);
try
Image := AllocMem(ImageSize);
try
GetDIB(Bits, 0, Info^, Image^);
{$IFEND}
with Info.bmiHeader do
begin
DIBWidth := biWidth;
DIBHeight := biHeight;
end;
case PrintScale of
poProportional:
begin
PrintWidth := MulDiv(DIBWidth, GetDeviceCaps(Handle,
LOGPIXELSX), PixelsPerInch);
PrintHeight := MulDiv(DIBHeight, GetDeviceCaps(Handle,
LOGPIXELSY), PixelsPerInch);
end;
poPrintToFit:
begin
PrintWidth := MulDiv(DIBWidth, PageHeight, DIBHeight);
if PrintWidth < PageWidth then
PrintHeight := PageHeight
else
begin
PrintWidth := PageWidth;
PrintHeight := MulDiv(DIBHeight, PageWidth, DIBWidth);
end;
end;
else
PrintWidth := DIBWidth;
PrintHeight := DIBHeight;
end;
{$IF DEFINED(CLR)}
Marshal.StructureToPtr(TObject(Info), LBuffer, True);
StretchDIBits(Canvas.Handle, 0, 0, PrintWidth, PrintHeight, 0, 0,
DIBWidth, DIBHeight, Image, LBuffer, DIB_RGB_COLORS, SRCCOPY);
finally
Marshal.FreeHGlobal(LBuffer);
{$ELSE}
StretchDIBits(Canvas.Handle, 0, 0, PrintWidth, PrintHeight, 0, 0,
DIBWidth, DIBHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY);
finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
{$IFEND}
end;
end;
finally
Canvas.Unlock;
FormImage.Free;
end;
finally
Printer.EndDoc;
end;
end;
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- System pendaftaran siswa baru
by davidahmad07 in Hal umum tentang Pascal Indonesia more 15 years ago - Butuh Info Delphi SW Developer Company di Inodnesia...
by bayiayam in OOT more 15 years ago - StringGrid yang enak...
by n3o_cybertech in Lain-lain more 16 years ago - MErdeka
by nurez in OOT more 16 years ago - Interfacing IBM 9068-A03 passbook printer
by _lmz in Network, Files, I/O & System more 16 years ago - membuat ID otomatis pada Mysql
by utuhhirang in Tip n Trik Pemrograman more 14 years ago - BDE
by drackids in OOT more 16 years ago - Install JEDI di Turbo Delphi Explorer
by bangfauzan in Tip n Trik Pemrograman more 17 years ago - baru bener
by gudal in MySQL more 18 years ago - update tanggal otomatis menggunakan MSAccess
by divanda in MySQL more 16 years ago