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
- Bagaimana otomatisasi untuk menutup MessageDlg?
by EkoIndri in Tip n Trik Pemrograman more 17 years ago - Tampilan Desktop Para Programmer Delpi Indonesia
by ap in OOT more 15 years ago - Membuat Web Service dengan Delphi?
by johnizzy in Web Programming more 15 years ago - Sistem Buat Rumah Sakit
by khairulfahmi in FireBird more 17 years ago - [HELP IMPORTANT] REPORT BUAT FIREBIRD (ZEOS)
by andrypein in FireBird more 13 years ago - Borland Technology Day, ada yg ikut?
by LuriDarmawan in OOT more 17 years ago - Pengurangan Jam,,,
by ari_volker in Hal umum tentang Pascal Indonesia more 16 years ago - Error Message...
by pikachu in Enginering more 17 years ago - Port Paralel Dengan Perangkat Luar
by umarbakri in Hal umum tentang Pascal Indonesia more 17 years ago - label pake timer
by delphi_tikuzz in Multimedia & Graphic Enhancement more 17 years ago