Otomatisasi merupakan suatu metode pengontrolan suatu aplikasi secara otomatis dari dalam aplikasi lainnya, seperti kode di bawah ini.
Prosedur BuatKata Baru;
var
WordObj: Varian;
mulai
WordObj := CreateOleObject('Word.Basic'); {Fungsi ini dideklarasikan di unit ComObj}
WordObj.AppShow;
WordObj.FileNew;
akhir;
Kode ini akan membuka WORD dan secara otomatis membuat dokumen baru (tentu saja, premisnya adalah WORD diinstal pada mesin Anda). Ini sepertinya fungsi yang sangat menarik dan sangat berguna. Jadi bagaimana program kita juga bisa memiliki fungsi otomatisasi yang mirip dengan WORD mengizinkan program yang dikembangkan dalam bahasa lain untuk mengotomatiskan program kami? Sangat mudah untuk mengimplementasikannya dengan DELPHI.
Artikel ini akan menjelaskan langkah demi langkah cara mengembangkan server otomatisasi sederhana beserta contohnya.
Buat aplikasi biasa baru dan simpan proyek sebagai AutoSrv.bpr. Tempatkan kontrol Edit pada formulir utama dan simpan sebagai MainForm.pas. Di sini kami berencana untuk menambahkan judul jendela, warna formulir, dan Untuk mengontrol teks secara otomatis Edit kontrol (tentu saja, ini mengimplementasikan sangat sedikit fungsi, tetapi cukup menjelaskan cara mengembangkan program server otomatis), tambahkan kode berikut ke jendela utama: (Catatan: Harap tambahkan deklarasi fungsi dan prosedur ini ke TForm1 sendirian di tempat umum)
fungsi TForm1.GetCaption: string;
mulai
hasil := Self.Caption;
akhir;
prosedur TForm1.SetCaption(ACaption: string);
mulai
Self.Caption := ACaption;
akhir;
prosedur TForm1.SetColor(AColor: TColor);
mulai
Diri.Warna := AWarna;
akhir;
prosedur TForm1.SetEditText(AText: string);
mulai
Self.Edit1.Text := ATeks;
akhir;
Kemudian mari kita tambahkan fungsi otomatisasi ke program ini, klik tombol New Items, klik tab ActiveX di jendela pop-up New Items, pilih Automation Object, klik tombol OK, dan masukkan Nama CoClass di pop-up Automation Object Wizard jendela MyAutoSrv, Delphi akan secara otomatis menghasilkan file AutoSrv_TLB.pas (perpustakaan kelas) dan unit yang mengimplementasikan kelas antarmuka perpustakaan kelas, dan menyimpan unit baru ini sebagai AutoSrvClass.pas
Sekarang program ini telah menjadi server otomatis, mari tambahkan fungsi antarmuka otomatis ke dalamnya:
(1) Klik menu View->Type Libray, pilih antarmuka IMyAutoSrv di Type Library Editor, klik New Property, pilih propertinya sebagai Read|Write, beri nama Caption, dan atur Type menjadi BSTR.
(2) Klik Metode Baru, beri nama SetColor, klik tab Parameter di sebelah kanan, klik ADD untuk menambahkan parameter ke fungsi antarmuka yang baru ditambahkan, atur nama parameter menjadi AColor, dan atur parameter Type menjadi OLE_COLOR.
(3) Klik Metode Baru lagi, beri nama SetEditText, tambahkan parameter menggunakan metode di atas, atur nama parameter menjadi AText, dan atur parameter Type menjadi BSTR.
Terakhir, tambahkan kode implementasi fungsi antarmuka dan tidak apa-apa:
Tambahkan MainForm di bagian Penggunaan AutoSrvClass.pas dan ubah kodenya menjadi kode berikut.
unit Kelas AutoSrv;
{$PERINGATAN SYMBOL_PLATFORM MATI}
antarmuka
kegunaan
ComObj, ActiveX, AutoSrv_TLB, StdVcl, MainForm;
jenis
TMyAutoSrv = kelas(TAutoObject, IMyAutoSrv)
terlindung
fungsi Get_Caption: WideString;
procedure Set_Caption(Nilai const: WideString);
prosedur SetColor(AColor: OLE_COLOR);
prosedur SetEditText(const AText: WideString);
akhir;
pelaksanaan
menggunakan ComServ;
fungsi TMyAutoSrv.Get_Caption: WideString;
mulai
Hasil := Form1.GetCaption;
akhir;
procedure TMyAutoSrv.Set_Caption(Nilai const: WideString);
mulai
Form1.SetCaption(Nilai);
akhir;
prosedur TMyAutoSrv.SetColor(AColor: OLE_COLOR);
mulai
Form1.SetColor(AColor);
akhir;
prosedur TMyAutoSrv.SetEditText(const AText: WideString);
mulai
Form1.SetEditTeks(ATeks);
akhir;
inisialisasi
TAutoObjectFactory.Buat(ComServer, TMyAutoSrv, Class_MyAutoSrv,
ciMultiInstance, tmApartment);
akhir.
Jalankan program ini sekali dan secara otomatis akan mendaftar sebagai server otomatisasi. Anda dapat menemukan informasi pendaftaran terkait di bawah kunci utama HKEY_CLASSES_ROOT di registri.
Gambar di atas menunjukkan cara mengembangkan server otomasi, yang akan kita sebut di sini.
Buat program baru, tambahkan Tombol, dan deklarasikan variabel Varian di area VAR-nya: AutoSrv: varian
Kemudian tambahkan kode berikut ke Button1.
prosedur TForm1.Button1Click(Pengirim: TObject);
mulai
AutoSrv := CreateOleObject('AutoSrv.MyAutoSrv'); {String ini adalah nama proyek server otomatisasi ditambah Nama CoClass}
Self.Caption := AutoSrv.Caption;
AutoSrv.Caption := 'HEHE';
AutoSrv.SetColor(CLRed);
AutoSrv.SetEditText('HAHA');
akhir;
Fungsi CreateOleObject akan mengembalikan antarmuka tipe IDispatch. Ini adalah antarmuka IDispatch yang memungkinkan program kita membuat koneksi yang terlambat ke panggilan ke antarmuka server otomatis lolos. Namun akan terjadi kesalahan saat eksekusi. Efisiensi eksekusi menggunakan Varian akan lebih lambat dibandingkan menggunakan deklarasi antarmuka secara langsung.
Jalankan dan klik tombolnya, Anda dapat melihat bahwa program layanan otomatis dimuat, dan warna formulir serta string di EDIT1 diatur sesuai dengan kode kita Haha, sederhana sekali?