Arsip: mencetak / print form

more 16 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 16 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 16 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 16 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 16 years ago
radhutz
karna ada gambarnya..
kalo report setau saya,, hanya tulisan ya?!
thanks for the reply..

more 16 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
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 5 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 13 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 13 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 13 years ago
Random Topic
- [Ask] ID Caller di delphi
by p3nx in Tutorial & Community Project more 15 years ago - Nanya QuickReport Di Delphi 7
by isoke in Hal umum tentang Pascal Indonesia more 19 years ago - Pencarian Tanggal
by galih in Tip n Trik Pemrograman more 18 years ago - popup messsage to client
by nurez in Tip n Trik Pemrograman more 18 years ago - [ASK] Cara agar DATA.GDB bisa di-share lewat jaringan
by anyrony in FireBird more 17 years ago - menonaktifkan error message
by BLie2000 in Tip n Trik Pemrograman more 17 years ago - drag and drop
by andry_yang in Hal umum tentang Pascal Indonesia more 16 years ago - *.dcu
by nurez in Tip n Trik Pemrograman more 18 years ago - helppp.... plisss
by nyophy in Posting Tidak Sesuai more 17 years ago - String Grid
by tAtA in Tip n Trik Pemrograman more 17 years ago