1. Embed OLE pada Delphi
Penggunaan OLE dapat digunakan untuk menampilkan
hasil input berkaitan dengan program aplikasi selain Delphi. Sebagai pengantar
dapat diterapkan dengan bantuan tombol seperti pada gambar 11.1
Penggunaan
komponen yang diperlukan ditampilkan pada tabel 11.1
Tabel
11.1 Komponen pada Program Mencoba OLE
Komponen |
Property |
Value |
Form1 |
Name |
Form1 |
Caption |
Bekerja Dengan
OLE |
|
WindowsState |
wsMaximized |
|
OLEContainer1 |
Name |
OLEContainer1 |
Align |
alClient |
|
Panel1 |
Caption |
Kosong |
Align |
alBottom |
|
Color |
clSkyBlue |
|
Button1 |
Caption |
Mengedit
Objek OLE |
Name |
Button1 |
|
Button2 |
Caption |
Mengedit
Objek OLE |
Name |
Button2 |
Selanjutnya
tambah code berikut ini pada event :
procedure
TForm1.Button1Click(Sender: TObject);
begin
OleContainer1.InsertObjectDialog;
end;
procedure
TForm1.Button2Click(Sender: TObject);
begin
if
OleContainer1.State = osEmpty then
begin
messageDlg('Objek
OLE belum ditentukan', mtInformation, [mbOk],0);
Exit;
end;
if button2.Caption = 'Mengedit
Objek OLE' then
begin
Button2.Caption
:= 'Menutup Objek OLE';
OleContainer1.DoVerb(ovPrimary);
end
else
begin
Button2.Caption:='Mengedit
Objek OLE';
OleContainer1.Close;
end;
end;
2.
Penggunaan
OLE untuk menu download
Dalam hal ini akan diberikan contoh penggunaan
aplikasi excel sebagai data output suatu database. Perhatikan program pada
gambar 11.2 berikut ini:
Pada
program yang telah dibuat tambah komponen button (Cetak). Kemudian
1. Tambahkan unit yang dibutuhkan ke uses
Uses
………,
comobj;
2.
Tambahkan juga di unit
private
{
Private declarations }
XlApp,
XlBook, XlSheet, Range : Variant; Public
3.
Klik dua kali pada button untuk pergi ke procedur. Isi script dibawah
ini
var
i,x,y,l:integer;
sfile:string;
const
xlHairline
= $00000001;
xlMedium
= $FFFFEFD6;
xlThick
= $00000004;
xlThin
= $00000002;
begin
// buka
excel
XlApp :=
CreateOleObject('Excel.Application');
// tambahkan
workbook
XlBook
:= XlApp.WorkBooks.Add;
// tambahkan
worksheet
XlSheet := XlBook.worksheets.add;
//cetak header
field dari dbgrid
for
i:=0 to dbgrid1.FieldCount-1 do
begin
XlSheet.cells[1,2].value:='DATA MAHASISWA';
XlSheet.range['a3:f3'].HorizontalAlignment:=$FFFFEFF4; XlSheet.cells[3,i+2].value:=dbgrid1.columns[i].Title.Caption;
XlSheet.cells[3,1].value:='No';
XlSheet.Cells[3,1].ColumnWidth :=4; XlSheet.Cells[3,2].ColumnWidth :=10;
XlSheet.Cells[3,3].ColumnWidth :=25;
XlSheet.Cells[3,4].ColumnWidth :=25; XlSheet.Cells[3,5].ColumnWidth :=15;
XlSheet.Cells[3,6].ColumnWidth :=10;
end;
for l:=1 to adoquery1.RecordCount do begin
Range:=XlSheet.Range['A3:F'+inttostr(l+3)];//To
assign range
XlSheet.range['a3:a'+inttostr(l+3)].horizontalAlignment:=
$FFFFEFF4; //mengatur
center end;
Range.Borders.Weight := xlHairline; // xlHairline, xlThin, xlMedium , xlThick
Range.Borders.ColorIndex := 1;
// transfer data ke excel adoquery1.First;
x:=1;
while not adoquery1.Eof do begin
for i:=0 to dbgrid1.FieldCount-1 do begin XlSheet.cells[3+x,i+2].value:=dbgrid1.Fields[i].Text;
end;
adoquery1.Next;
inc(x);
//membuat nomer adoquery1.Active:=true;
for y:=1 to adoquery1.RecordCount do begin
XlSheet.cells[y+3,1].value:=y;
end;
end;
//membuat komentar
if MessageDlg('Apakah hasil export ditampilkan..?', mtConfirmation, [mbYes,
mbNo], 0) = mrYes then begin
MessageDlg('Hasil Ditampilkan',
mtInformation,[mbOk], 0); XlApp.visible:=true;
end
else
//menyimpan ke file begin
Sfile:=InputBox('Nama File','hasil
export','c:\hasil.xls'); XlApp.ActiveWorkbook.SaveAs(sfile);
XlApp.visible:=true;
end
end;
Tidak ada komentar:
Posting Komentar
Silahkan Meninggalkan Pesan