Selasa, 18 Mei 2010
Tips: Export Blob Ke Image Power Builder
Artikel kali ini akan memberi contoh bagaimana memanggil kembali blob dari dalam database dan menampilkan di pictue control maupun meng-export kembali menjadi file gambar.
Sumber : http://aryodarmo.blogspot.com/2009/01/tips-export-blob-ke-image-power-builder.html
Blob Emp_id_pic
SELECTBLOB Image
INTO :Emp_id_pic
FROM dba.t_image
WHERE “index image” = :iindex
USING SQLCA ;
integer li_FileNum, loopsSelanjutnya untuk meng-export kedalam file gambar dapat digunakan baris perintah berikut:
long flen
li_FileNum = FileOpen(sfilename,StreamMode!, Write!, Shared!, Replace!)
SetPointer(HourGlass!)
flen = Len(Emp_id_pic)
IF flen > 32765 THEN
IF Mod(flen, 32765) = 0 THENELSE
loops = flen/32765ELSE
loops = (flen/32765) + 1END IF
loops = 1END IF
FileWritex(li_FileNum, Emp_id_pic,loops*32765) untuk PB 10.0 ke atasFile library / PBL dapat anda download disini. Selamat mencoba. Catatan: fungsi dalam library ini menggunakan 2 parameter yaitu sfilename bertipe string untuk namafile yang ingin kita import dan iindex bertipe integer merupakan index dari file ( bisa juga yang lain misalnya NIP atau NIM )
FileWrite(li_FileNum, Emp_id_pic). Untuk PB 9.0 dan diakhiri dengan menutup file gambar dengan FileClose(li_FileNum)
Sumber : http://aryodarmo.blogspot.com/2009/01/tips-export-blob-ke-image-power-builder.html
Dasar atau konsep Power Builder
Power Builder adalah sebuah development tool dengan dasar atau konsep pemrograman berorientasi objek atau Object Oriented Programming (OOP) yang memiliki karakteristik Encapsulation, Inheritance, dan Polymorphism. OOP adalah konsep yang umum dan telah di adopsi oleh banyak bahasa pemrograman modern seperti C++, Java, VBScript dan sebagainya. Teknik pemrograman pada OOP adalah bersifat modular, Berbeda dengan teknik pemrograman konvensional yang sifatnya struktural, pada OOP, sebuah modul program dipandang sebagai sebuah objek.
Encapsulation adalah karakteristik dan perilaku yang berkaitan dengan kemandirian sebuah objek. Analogi dengan makhluk hidup, sebuah objek memiliki karakteristik dan perilaku. Sebagai contoh, karakteristik yang dimiliki objek manusia adalah warna kulit, tinggi badan, berat badan, kegemaran, tingkat kecerdasan dan sebagainya. Sebagai objek yang aktif, seorang manusia berinteraksi dengan lingkungannya dengan cara beraktifitas dan merespon keadaan sekelilingnya. Dalam OOP karakteristik di istilahkan sebagai Atribut atau Properti. Perilaku diistilahkan sebagai Metode. Metode dibedakan menjadi Event dan Function.
Event adalah suatu kejadian yang dialami objek tersebut, misalnya pada contoh manusia adalah merasa lapar, sakit atau terkejut. Sedangkan Fungsi adalah tindakan yang bisa dilakukan sebuah objek, misalnya berjalan, tidur, makan dan seterusnya. Biasanya fungsi dilakukan ketika ada event yang diterima. Semua karakteristik dan perilaku tersebut dibungkus akan membentuk wujud manusia yang utuh. Properti dan Metode yang berbeda dalam keadaan terbungkus itu dikenal dengan istilah Encapsulation.
Sebuah objek adalah sebuah modul yang mandiri, artinya ia tidak memiliki ketergantungan dengan objek lain atau program utama. Dengan demikian, sebuah objek yang digunakan pada sebuah aplikasi dan dapat juga digunakan pada aplikasi lain. Agar sebuah program dapat berinterakasi dengan sebuah objek, maka kode program tersebut harus memanggil metode yang ada di dalam objek yang bersangkutan. Metode identik dengan fungsi atau event yang mengandung sebuah atau beberapa parameter. Jadi dalam hal ini sebuah program dapat mengirimkan sebuah nilai ke dalam parameter sebuah metode. Objek yang bersangkutan menerima parameter tersebut dan menjalankan aksinya. Karena kode program di dalam objek berinteraksi dengan parameter dan bukan variabel lokal atau global dari program yang memangilnya, maka objek itu mempertahankan kemandiriannya.
Istilah Inheritance memacu pada penurunan sifat sebuah objek pada objek lain. sebagai contoh, objek manusia di turunkan dari objek bernama primata karena objek ini mempunyai karakteristik yang lebih umum, yaitu makhluk hidup yang menyusui, mempunyai empat angota tubuh, bertulang belakang dan sebagainya. Istilah untuk objek turunan adalah descendent, sedangkan objek penurun atau pendahulunya adalah ancestor.
Polymorphism adalah perilaku yang berbeda-beda dari sebuah ancestor dan pada desendent-nya. Sebagai contoh kita gunakan lagi objek manusia dan kera yang masing-masing di turunkan dari objek primata yang sama. Apabila kita memanggil metode “makan”, maka kera akan mengulurkan tangannya dan memasukan makanan ke dalam mulutnya kemudian mengunyah dengan cepat-cepat. Sedangkan, jika metode yang sama di panggil dari objek manusia, maka ia akan menggerakkan tangannya untuk menyendok makanan, dan memasukkan ke dalam mulut kemudian mengunyah perlahan-lahan sambil menikmati rasanya. Jadi jelas disini bahwa kedua objek tersebut mempunyai perilaku yang berbeda untuk metode “makan”.
Sabtu, 20 Maret 2010
Cara mendapatkan Nomor Serial DISK
Pertama, Buat definisi dari fungsi API di global external function:
Function Boolean GetVolumeInformationA( &
ref String ls_Rootpath, &
ref String ls_volumnename, &
Ulong lul_VolumeNameSize, ref Ulong lul_VolumeSerialNumber, &
ref Ulong lul_MaximumComponentLength, &
ref Ulong lul_FileSystemFlags, &
ref String ls_FileSystemNameBuffer, &
Ulong lul_FileSystemNameSize &
) Library "Kernel32.dll"
Kedua, Buat script pemanggil dibawah ini
String ls_Rootpath, ls_volumnename
ls_Rootpath = "C:" // tentukan untuk mendapatkan nomor seri hard drive
ls_volumnename = Space(256) // mengalokasikan cukup ruang, yang sama di bawah ini
Ulong lul_VolumeNameSize
lul_VolumeNameSize = 256
Ulong lul_VolumeSerialNumber, lul_MaximumComponentLength, lul_FileSystemFlags
lul_MaximumComponentLength = 256
String ls_FileSystemNameBuffer
ls_FileSystemNameBuffer = space(256)
Ulong lul_FileSystemNameSize
lul_FileSystemNameSize = 256
boolean lb_rtn
lb_rtn = False
lb_rtn = GetVolumeInformationA(ls_Rootpath, ls_volumnename, lul_VolumeNameSize, &
lul_VolumeSerialNumber, lul_MaximumComponentLength, lul_FileSystemFlags, &
ls_FileSystemNameBuffer, lul_FileSystemNameSize)
if lb_rtn = false then
MessageBox("Alert", "fungsi panggil gagal!")
return
end if
sle_1.text = String(lul_VolumeSerialNumber) // / / mendapatkan nomor seri harddisk
// Sumber :http://blog.zjxu.edu.cn/zyc/readblog.asp?blogid=12&id=22
Memanggil DLL VC++ dengan Powerbuilder
A. Overview :
Dynamic link library (Dynamic-Link Library), disebut sebagai DLL, sebuah program berbasis Windows yang dirancang untuk komponen yang sangat penting. Dengan menggunakan DLL mempunyai banyak keuntungan:
1. Penggunaan DLL tidak untuk menyalin Program tersebut, Melainkan sebagai Fungsi Entry Point dan Interface. Apabila ada beberapa Program memanggil DLL yang sama system hanya perlu me-reload ulang DLL tersebut dimemori
2. DLL adalah sebuah program berbasis modul-modul Windows, yang tidak hanya berisi kode executable, tetapi juga dapat berisi data, berbagai sumber daya untuk memperluas penggunaan file-file library.
3. Fungsi Utama dari DLL adalah untuk mengurangi Duplikat penggunaan fungsi sehingga akan megurangi beban kerja dan sekaligus meningkatkan kinerja akses.
4. DLL memperkaya PowerScript dalam kemampuan bahasa pemrograman, Sebagai contoh: pengguna dapat menulis sistem pemrosesan gambar untuk mencari file dan disimpan dalam database, aplikasi harus menggunakan browser, tetapi dengan bahasa PowerScript tidak menyediakan fungsi untuk melakukan pekerjaan semacam itu, dalam rangka untuk memanipulasi perangkat, perlu untuk berkomunikasi dengan perangkat itu sendiri, lingkungan, lingkungan ini umumnya disediakan oleh produsen dynamic link library.
5. DLL bersifat Independen sehingga dalam lingkungan windows dimungkinkannya sebuah program memanggil fungsi DLL.
Contoh berikut menggunakan DLL untuk koneksi melalui program PowerBuilder dan VC + +.
B. Buat DLL dengan VC++
VC ++ 5,0 menggunakan MFC AppWizard dapat secara otomatis hasilkan Win32 DLL dan AppWizard MFC DLL, dimulai setelah VC, dari File | New item menu, pilih kotak NEW dialog , di Proyek tab, pilih NEW PROJECT untuk MFC AppWizard (dll), masukkan PROJECT NAME pbdll, klik tombol OK, pop-up dialog box , pilih jenis DLL: Reguler DLL menggunakan MFC DLL Share, dan kemudian klik tombol Finish. AppWizard akan secara otomatis membuat sebuah DLL yang mengandung unsur-unsur dasar dari kerangka kerja, dan kemudian kita tinggal menambahkan kode secara manual.
Buka file pbdll.cpp, tambahkan fungsi berikut:
extern "C" _declspec ( dllexport )
int PASCAL out_num(int x)
{
int y;
char msg[30];
y=x > >2;
sprintf(msg, "Hasil%o ! ", y);
::MessageBox(NULL, msg, "Pesan", MB_OK);
return 0;
}
Pernyataan di atas fungsi out_num (), masukan parameter untuk nomor integer, untuk menggeser operasi, hasil perhitungan dengan kotak dialog akan ditampilkan. Kemudian buka file pbdll.def, masukkan fungsi dalam pernyataan EKSPOR out_num, file berbunyi sebagai berikut:
LIBRARY "pbdll"
DESCRIPTION pbdll Windows Dynamic Link Library
EXPORTS
; Explicit exports can go here
out_num @ 1
Terakhir dikompilasi dynamic link library tersebut sehingga menghasilkan pbdll.dll.
C. Buat program PB untuk Memanggil DLL pbdll.dll
Dalam PowerBuilder untuk memanggil fungsi out_num () kode adalah sebagai berikut:
Function int out_num ( int irow ) LIBRARY "pbdll.dll"
int irow,retcode
irow=dw_1.rowcount()
retcode=out_num(irow)
Silahkan mencoba.
Sumber asli :http://www.goalercn.com/article/article.php?id=2974
Dynamic link library (Dynamic-Link Library), disebut sebagai DLL, sebuah program berbasis Windows yang dirancang untuk komponen yang sangat penting. Dengan menggunakan DLL mempunyai banyak keuntungan:
1. Penggunaan DLL tidak untuk menyalin Program tersebut, Melainkan sebagai Fungsi Entry Point dan Interface. Apabila ada beberapa Program memanggil DLL yang sama system hanya perlu me-reload ulang DLL tersebut dimemori
2. DLL adalah sebuah program berbasis modul-modul Windows, yang tidak hanya berisi kode executable, tetapi juga dapat berisi data, berbagai sumber daya untuk memperluas penggunaan file-file library.
3. Fungsi Utama dari DLL adalah untuk mengurangi Duplikat penggunaan fungsi sehingga akan megurangi beban kerja dan sekaligus meningkatkan kinerja akses.
4. DLL memperkaya PowerScript dalam kemampuan bahasa pemrograman, Sebagai contoh: pengguna dapat menulis sistem pemrosesan gambar untuk mencari file dan disimpan dalam database, aplikasi harus menggunakan browser, tetapi dengan bahasa PowerScript tidak menyediakan fungsi untuk melakukan pekerjaan semacam itu, dalam rangka untuk memanipulasi perangkat, perlu untuk berkomunikasi dengan perangkat itu sendiri, lingkungan, lingkungan ini umumnya disediakan oleh produsen dynamic link library.
5. DLL bersifat Independen sehingga dalam lingkungan windows dimungkinkannya sebuah program memanggil fungsi DLL.
Contoh berikut menggunakan DLL untuk koneksi melalui program PowerBuilder dan VC + +.
B. Buat DLL dengan VC++
VC ++ 5,0 menggunakan MFC AppWizard dapat secara otomatis hasilkan Win32 DLL dan AppWizard MFC DLL, dimulai setelah VC, dari File | New item menu, pilih kotak NEW dialog , di Proyek tab, pilih NEW PROJECT untuk MFC AppWizard (dll), masukkan PROJECT NAME pbdll, klik tombol OK, pop-up dialog box , pilih jenis DLL: Reguler DLL menggunakan MFC DLL Share, dan kemudian klik tombol Finish. AppWizard akan secara otomatis membuat sebuah DLL yang mengandung unsur-unsur dasar dari kerangka kerja, dan kemudian kita tinggal menambahkan kode secara manual.
Buka file pbdll.cpp, tambahkan fungsi berikut:
extern "C" _declspec ( dllexport )
int PASCAL out_num(int x)
{
int y;
char msg[30];
y=x > >2;
sprintf(msg, "Hasil%o ! ", y);
::MessageBox(NULL, msg, "Pesan", MB_OK);
return 0;
}
Pernyataan di atas fungsi out_num (), masukan parameter untuk nomor integer, untuk menggeser operasi, hasil perhitungan dengan kotak dialog akan ditampilkan. Kemudian buka file pbdll.def, masukkan fungsi dalam pernyataan EKSPOR out_num, file berbunyi sebagai berikut:
LIBRARY "pbdll"
DESCRIPTION pbdll Windows Dynamic Link Library
EXPORTS
; Explicit exports can go here
out_num @ 1
Terakhir dikompilasi dynamic link library tersebut sehingga menghasilkan pbdll.dll.
C. Buat program PB untuk Memanggil DLL pbdll.dll
Dalam PowerBuilder untuk memanggil fungsi out_num () kode adalah sebagai berikut:
Function int out_num ( int irow ) LIBRARY "pbdll.dll"
int irow,retcode
irow=dw_1.rowcount()
retcode=out_num(irow)
Silahkan mencoba.
Sumber asli :http://www.goalercn.com/article/article.php?id=2974
Selasa, 16 Maret 2010
MEMBUAT REPORT DATAWINDOW DENGAN QUERY UNION
Untuk membuat report Union di datawindow ada beberapa
cara:
cara:
Cara pertama : yaitu dengan mengetikan query sql yang
menggunakan Union pada sql syntax di datawindow
menggunakan Union pada sql syntax di datawindow
Cara kedua : dengan menggunakan tools design union
berikut saya akan coba berikan langkah-langkah pembuatan
datawindow dengan cara kedua
datawindow dengan cara kedua
Asumsikan kita mempunyai 2 buah tabel yang akan ditampilkan
kedalam sebuah report datawindow.
kedalam sebuah report datawindow.
1. TABEL PELANGGAN
Kode | Nama | Alamat | Telp |
P001 | Mr. Yandi | Jakarta | 021-55252214 |
P002 | Mr. Azis | Jakarta | 021-52541444 |
P003 | Mr. Jony | Jakarta | 021-85285142 |
2. TABEL SUPLIER
Kode | Nama | Alamat | Telp |
S001 | Tuan Agus | Jakarta | 021-88888871 |
S002 | Tuan Abdul | Jakarta | 021-65258524 |
S003 | Tuan Rahmat | Jakarta | 021-78554125 |
1. Pilih New > Tabular
2. Pilih SQLSelect
3. Pilih Table PELANGGAN
4. Pilih COMPUTE COLUMNS
5. Kemudian klik kanan pada kolom tersebut dan pilih Column
setelah itu pilih kolom pada tabel pelanggan satu persatu, tapi yang perlu diingat adalah pemberian
nama pada kolom2 tersebut dengan didahului "as"
6. Kemudian pilih Menu Design dan pilih UNION maka akan muncul dialog seperti gambar dibawah ini :
7. Pilih New
8. Pilih Tabel Supplier dan klik Open
9. Langkah selanjutnya seperti no.4 dan 5. dengan catatan penamaan "as" pada setiap kolom harus sama dengan kolom pada tabel pelanggan.
10. Selanjutnya Pilih RETURN
11. Kita bisa lihat hasil syntax query yang telah kita buat
12. Selanjutnya Datawindow sudah bisa kita gunakan.
Selasa, 02 Maret 2010
Powerbuilder Windows API
Arc()
Fungsi ini digunakan untuk menggambar lingkaran
Global External Function:
FUNCTION boolean Arc(ulong hwnd, long r1, long r2, long r3, long r4, long a1, long a2, long a3, long a4) LIBRARY "Gdi32.dll"
Script:
Boolean rtn
ulong l_handle, l_device
long lv[8]
l_handle = handle(w_main) // 'w_main' is the name of the sample window.
l_device = GetDC(l_handle)
lv[ ] = {10,40,300,220,0,0,180,0}
rtn = Arc(l_device, lv[1], lv[2], lv[3], lv[4], lv[5], lv[6], lv[7], lv[8])
-----------------------------------------------------------------------------------
Beep()
Fungsi ini untuk suara, seperti beep pada PB
Global External Function:
FUNCTION boolean Beep(long freq,long dur) LIBRARY "Kernel32.dll"
Script:
Boolean rtn
Long ll_freq, ll_dur
ll_freq = 500
ll_dur = 20
rtn = Beep(ll_freq, ll_dur)
------------------------------------------------------------------------------------
BringWindowToTop( )
Sebuah perintah agar window selalu berada didepan seperti perintah :[window].bringtotop = true
Global External Function:
FUNCTION boolean BringWindowToTop(ulong w_handle) LIBRARY "User32.dll"
Script:
Boolean rtn
ulong l_handle
l_handle = handle(w_win2)
rtn = BringWindowToTop(l_handle)
------------------------------------------------------------------------------------
Chord( )
Sebuah Chord adalah daerah yang dibatasi oleh perpotongan sebuah elips dan garis segmen. Fungsi ini menggambar suatu chord berdasarkan koordinat dari function.
Global External Function:
FUNCTION boolean Chord(ulong hwnd,long x1,long y1,long x2,long y2,long r1, long r2, long r3, long r4) LIBRARY "Gdi32.dll"
Script:
boolean rtn
ulong l_handle, l_device
long lv[8]
l_handle = handle(w_main)
l_device = GetDC(l_handle)
/*Hal ini dapat dilakukan dalam satu baris seperti: l_device = GetDC(handle(w_main))*/
lv[ ] = {5,5,200,200,0,0,200,300}
rtn = Chord(l_device, lv[1], lv[2], lv[3], lv[4], lv[5], lv[6], lv[7], lv[8])
CloseHandle( )
Fungsi ini digunakan untuk menangani objek yang terbuka, seperti Destroy pada PB saat
Global External Function:
FUNCTION boolean CloseHandle(ulong w_handle) LIBRARY "Kernel32.dll"
Script:
boolean rtn
ulong l_handle
string ls_wname
Lihat Blog
ls_wname = ""
l_handle = A(0, ls_wname) // Usually you would already have the handle.
rtn = CloseHandle(l_handle)
------------------------------------------------------------------------------------
CloseWindow( )
Fungsi CloseWindow meminimalkan Window yang ditargetkan.Yang paling dekat adalah setara PowerBuilder WindowState , tapi ini terbatas hanya window PB. Sintaks di PowerBuilder adalah sebagai berikut:. WindowState =Minimized!
Global External Function:
FUNCTION boolean CloseWindow(ulong w_handle) LIBRARY "User32.dll"
Script:
boolean rtn
ulong l_handle
string ls_wname
ls_wname = ""
l_handle = FindWindowA(0, ls_wname) // Be sure to use the exact title of the window you are targeting.
rtn = CloseWindow(l_handle)
------------------------------------------------------------------------------------
CopyFileA( )
Fungsi ini salinan sebuah file dengan mengambil nama-nama sumber dan tujuan sebagai string dengan referensi.
Global External Function:
FUNCTION boolean CopyFileA(ref string cfrom, ref string cto, boolean flag) LIBRARY "Kernel32.dll"
Script:
string l_from, l_to
boolean l_flag, rtn
l_flag = false
l_from = "c:\pwrs\pb5i32\ex\code\beach.bmp"
l_to = "c:\test.bmp"
rtn = CopyFileA(l_from, l_to, l_flag)
MessageBox("CopyFile", string(rtn))
------------------------------------------------------------------------------------
CreateDirectoryA( )
Fungsi ini digunakan untuk menggambar lingkaran
Global External Function:
FUNCTION boolean Arc(ulong hwnd, long r1, long r2, long r3, long r4, long a1, long a2, long a3, long a4) LIBRARY "Gdi32.dll"
Script:
Boolean rtn
ulong l_handle, l_device
long lv[8]
l_handle = handle(w_main) // 'w_main' is the name of the sample window.
l_device = GetDC(l_handle)
lv[ ] = {10,40,300,220,0,0,180,0}
rtn = Arc(l_device, lv[1], lv[2], lv[3], lv[4], lv[5], lv[6], lv[7], lv[8])
-----------------------------------------------------------------------------------
Beep()
Fungsi ini untuk suara, seperti beep pada PB
Global External Function:
FUNCTION boolean Beep(long freq,long dur) LIBRARY "Kernel32.dll"
Script:
Boolean rtn
Long ll_freq, ll_dur
ll_freq = 500
ll_dur = 20
rtn = Beep(ll_freq, ll_dur)
------------------------------------------------------------------------------------
BringWindowToTop( )
Sebuah perintah agar window selalu berada didepan seperti perintah :[window].bringtotop = true
Global External Function:
FUNCTION boolean BringWindowToTop(ulong w_handle) LIBRARY "User32.dll"
Script:
Boolean rtn
ulong l_handle
l_handle = handle(w_win2)
rtn = BringWindowToTop(l_handle)
------------------------------------------------------------------------------------
Chord( )
Sebuah Chord adalah daerah yang dibatasi oleh perpotongan sebuah elips dan garis segmen. Fungsi ini menggambar suatu chord berdasarkan koordinat dari function.
Global External Function:
FUNCTION boolean Chord(ulong hwnd,long x1,long y1,long x2,long y2,long r1, long r2, long r3, long r4) LIBRARY "Gdi32.dll"
Script:
boolean rtn
ulong l_handle, l_device
long lv[8]
l_handle = handle(w_main)
l_device = GetDC(l_handle)
/*Hal ini dapat dilakukan dalam satu baris seperti: l_device = GetDC(handle(w_main))*/
lv[ ] = {5,5,200,200,0,0,200,300}
rtn = Chord(l_device, lv[1], lv[2], lv[3], lv[4], lv[5], lv[6], lv[7], lv[8])
CloseHandle( )
Fungsi ini digunakan untuk menangani objek yang terbuka, seperti Destroy pada PB saat
Global External Function:
FUNCTION boolean CloseHandle(ulong w_handle) LIBRARY "Kernel32.dll"
Script:
boolean rtn
ulong l_handle
string ls_wname
Lihat Blog
ls_wname = "
l_handle = A(0, ls_wname) // Usually you would already have the handle.
rtn = CloseHandle(l_handle)
------------------------------------------------------------------------------------
CloseWindow( )
Fungsi CloseWindow meminimalkan Window yang ditargetkan.Yang paling dekat adalah setara PowerBuilder WindowState , tapi ini terbatas hanya window PB. Sintaks di PowerBuilder adalah sebagai berikut:
Global External Function:
FUNCTION boolean CloseWindow(ulong w_handle) LIBRARY "User32.dll"
Script:
boolean rtn
ulong l_handle
string ls_wname
ls_wname = "
l_handle = FindWindowA(0, ls_wname) // Be sure to use the exact title of the window you are targeting.
rtn = CloseWindow(l_handle)
------------------------------------------------------------------------------------
CopyFileA( )
Fungsi ini salinan sebuah file dengan mengambil nama-nama sumber dan tujuan sebagai string dengan referensi.
Global External Function:
FUNCTION boolean CopyFileA(ref string cfrom, ref string cto, boolean flag) LIBRARY "Kernel32.dll"
Script:
string l_from, l_to
boolean l_flag, rtn
l_flag = false
l_from = "c:\pwrs\pb5i32\ex\code\beach.bmp"
l_to = "c:\test.bmp"
rtn = CopyFileA(l_from, l_to, l_flag)
MessageBox("CopyFile", string(rtn))
------------------------------------------------------------------------------------
CreateDirectoryA( )
Tombol ENTER sebagai Tombol TAB
Disini kami hanya mensimulasi Tombol ENTER agar bekerja seperti Tombol TAB.
1. Buat User Event di datawindow dengan nama "ue_enter"
2. Pilih Event ID dengan pbm_dwnprocessenters
3. Ketik script dibawah ini :
Send(Handle(This),256,9,Long(0,0))
Semoga bermanfaat.
1. Buat User Event di datawindow dengan nama "ue_enter"
2. Pilih Event ID dengan pbm_dwnprocessenters
3. Ketik script dibawah ini :
Send(Handle(This),256,9,Long(0,0))
Return 1
Semoga bermanfaat.
Prinsip penamaan Variabel dalam Powerbuilder
Saat memberi penamaan variable dalam Powerbuilder, Perlu diperhatikan agar tidak terjadi kesalahan dan arti dalam memberi nama pada variabel yang kita deklarasikan
Hal hal yang perlu diperhatikan adalah Lingkup, Awalan atau Prefix dan Arti dari variabel tersebut.
Syntax:
Hal hal yang perlu diperhatikan adalah Lingkup, Awalan atau Prefix dan Arti dari variabel tersebut.
Syntax:
[scope][prefix]_[name]
Scope Qualifiers
Scope | Prefix | Example |
Argument | a | al_NameId |
Global | g | gs_Name |
Instance | i | ii_Count |
Local | l | ls_Foo |
Shared | s | si_Number |
Standard DataType Prefixes
Data Type | Prefix | Example |
Any | a | la_Raw |
Blob | blb | ablb_Image |
Boolean | b | lb_Exit |
Character | c | lc_Name |
Date | d | ld_BirthDate |
DateTime | dt | ldt_Wreck |
Decimal | dec | ldec_Salary |
Double | db | gdb_OverTime |
Integer | i | li_Count |
Long | l | ll_RowCount |
Real | r | sr_Illusion |
String | s | ls_Bean |
Time | tm | itm_MrWolf |
Unsigned Integer | ui | lui_Handle |
Unsigned Long | ul | gul_Ken |
Standard Object DataType Prefixes
Object Type | Prefix | Example |
Application | app | gapp_PBDelta |
ArrayBounds | ab | lab_Bound |
CheckBox | cbx | icbx_Male |
ClassDefinition | cldef | lcldef_Object |
ClassDefinitionObject | cldefo | lcdefo_ThatObject |
CommandButton | cb | lcb_Cancel |
Connection | cn | lcn_Known |
ConnectionInfo | cni | lcni_ServerInfo |
ConnectObject | cno | scno_ConObj |
ContextInformation | cxinfo | lcxinfo_ObjContext |
ContextKeyword | cxk | lcxk_TheKey |
CPlusPlus | cpp | lcpp_CModule |
Datastore | ds | lds_StockData |
Datawindow | dw | ldw_Employee |
DatawindowChild | dwc | ldwc_States |
DragObject | drg | ldrg_ByTheHair |
DrawObject | drw | ldrw_PaintBrush |
DropDownListBox | ddlb | lddlb_States |
DropDownPictureListBox | ddplb | lddplb_StatesWithFlags |
dwObject | dwo | ldwo_Column |
DynamicDescriptionArea | dda | ldda_Execute |
DynamicStagingArea | dsa | ldsa_MyQuery |
EditMask | em | lem_PhoneNo |
EnumerationDefinition | enum | lenum_Cycle |
EnumerationItemDefinition | enumi | ienumi_Item |
Environment | env | lenv_System |
Error | err | gerr_Snarl |
ExtObject | exto | gexto_Outside |
Function_Object | fo | lfo_Function |
Graph | gr | lgr_Sales |
GraphObject | gro | lgro_Line |
GrAxis | grx | lgrx_Profit |
GrDispAttr | grda | igrda_Value |
GroupBox | gb | igb_Employee |
HScrollBar | hsb | ihsb_Percent |
iNet | inet | linet_Web |
InternetResult | ir | lir_Page |
Line | li | lli_Arrow |
ListBox | lb | llb_States |
ListView | lv | llv_Filenames |
ListViewItem | lvi | llvi_Item |
MailFileDescription | mfd | lmfd_Mail |
MailMessage | mm | lmm_Mail |
MailRecipient | mr | lmr_Mail |
MailSession | ms | lms_Session |
MDIClient | mdi | lmdi_Frame |
Menu | m | lm_Menu |
MenuCascade | mc | lmc_WaterFall |
Message | msg | lmsg_Whisper |
MultiLineEdit | mle | lmle_Text |
NonVisualObject | nvo | lnvo_Invisible |
OLEControl | oc | loc_Bulls |
OLECustomControl | occ | locc_Dial |
OLEObject | oo | loo_Ghost |
OLEStorage | ostg | gostg_WordFile |
OLEStream | ostm | lostm_River |
OMControl | omc | iomc_Temp |
OMCustomControl | omcc | lomcc_Dial |
OMEmbeddedControl | omec | lomec_Micro |
OMObject | omo | iomo_Bob |
OMStorage | omstg | somstg_Drive |
OMStream | omstm | lomstm_Mersey |
Oval | ov | lov_Circle |
PBtoCPPObject | pb2cpp | lpb2cpp_Quad |
Picture | p | lp_Smile |
PictureButton | pb | lpb_Click |
PictureListBox | plb | lplb_Drives |
Pipeline | pl | lpl_OilandGas |
Powerobject | po | lpo_Source |
ProfileCall | prc | lprc_Face |
ProfileClass | prcl | lprcl_Room |
ProfileLine | prl | iprl_Bob |
ProfileRoutine | prr | lprr_Cat |
Profiling | pr | lpr_Outline |
RadioButton | rb | lrb_Male |
Rectangle | rec | irec_Tum |
RemoteObject | ro | iro_Employee |
RichTextEdit | rte | lrte_Script |
RoundRectange | rr | lrr_Lion |
ScriptDefinition | sdef | lsdef_Mycode |
Service | srv | lsrv_Charge |
SimpleTypeDefinition | std | istd_MyType |
SingleLineEdit | sle | lsle_Name |
StaticText | st | lst_Prompt |
Structure | str | lstr_Data |
SystemFunctions | sf | lsf_Bay |
Tab | tab | ltab_Strip |
Timing | tmg | ltmg_Clock |
TraceActivityNode | tran | ltran_Node |
TraceBeginEnd | trbe | ltrbe_Start |
TraceError | tre | ltre_Error |
TraceFile | trf | itrf_TraceFile |
TraceGarbageCollect | trgc | itrgc_Call |
TraceLine | trln | strln_Rope |
TraceObject | tro | ltro_Bob |
TraceRoutine | trr | ltrr_Tiger |
TraceSQL | trsql | ltrsql_MySQL |
TraceTree | trt | ltrt_Birch |
TraceTreeError | trte | ltrte_Err |
TraceTreeGarbageCollect | trtgc | ltrtgc_Trash |
TraceTreeLine | trtl | ltrtl_String |
TraceTreeNode | trtn | ltrtn_Kilt |
TraceTreeObject | trto | ltrto_Trace |
TraceTreeRoutine | trtr | ltrtr_BobGrimmer |
TraceTreeUser | trtu | ltrtu_User |
TraceUser | tru | ltru_Blue |
Transaction | tr | ltr_Trans |
Transport | tp | ltp_Server |
Treeview | tv | ltv_Directory |
TreeviewItem | tvi | ltvi_Node |
TypeDefinition | typdef | ltypdef_Details |
UserObject | uo | luo_Control |
VariableCardinalityDefinition | vcd | lvcd_Type |
VariableDefinition | vd | lvd_Sore |
VerticalScrollBar | vsb | lvsb_Amount |
Window | w | w_PleaseWait |
WindowObject | wo | lwo_WomanElement |
Jumat, 26 Februari 2010
Cara mendapatkan DBMS, User database melalui ODBC
/*Buat external function*/
FUNCTION integer SQLGetInfo (long hconn, integer infotype, ref string infotypeptr, integer bufferlength, ref integer bufferlengthptr) LIBRARY "odbc32.dll"
/*Buat script*/
string ls_dbms, ls_database, ls_user
integer li_length
CONSTANT integer SQL_DBMS_NAME = 17
CONSTANT integer SQL_DATABASE_NAME = 16
CONSTANT integer SQL_USER_NAME = 47
long ll_dbhandle
ls_dbms = space(256)
ls_database = space(256)
ls_user = space(256)
ll_dbhandle = SQLCA.DbHandle()
SQLGetInfo(ll_dbhandle, SQL_DBMS_NAME, ls_dbms, 255, li_length)
SQLGetInfo(ll_dbhandle, SQL_DATABASE_NAME, ls_database, 255, li_length)
SQLGetInfo(ll_dbhandle, SQL_USER_NAME, ls_user, 255, li_length)
MessageBox("Current DBMS" , trim(ls_dbms))
MessageBox("Current DATABASE" , trim(ls_database))
MessageBox("Current USER" , trim(ls_user))
FUNCTION integer SQLGetInfo (long hconn, integer infotype, ref string infotypeptr, integer bufferlength, ref integer bufferlengthptr) LIBRARY "odbc32.dll"
/*Buat script*/
string ls_dbms, ls_database, ls_user
integer li_length
CONSTANT integer SQL_DBMS_NAME = 17
CONSTANT integer SQL_DATABASE_NAME = 16
CONSTANT integer SQL_USER_NAME = 47
long ll_dbhandle
ls_dbms = space(256)
ls_database = space(256)
ls_user = space(256)
ll_dbhandle = SQLCA.DbHandle()
SQLGetInfo(ll_dbhandle, SQL_DBMS_NAME, ls_dbms, 255, li_length)
SQLGetInfo(ll_dbhandle, SQL_DATABASE_NAME, ls_database, 255, li_length)
SQLGetInfo(ll_dbhandle, SQL_USER_NAME, ls_user, 255, li_length)
MessageBox("Current DBMS" , trim(ls_dbms))
MessageBox("Current DATABASE" , trim(ls_database))
MessageBox("Current USER" , trim(ls_user))
Mengganti huruf pertama menjadi kapital
Semisal kita mempunyai inputan data "luv piyut" dan kita ingin data inputan tersebut menjadi "Luv Piyut" maka kita bisa menggunakan fungsi WordCap() seperti tips berikut :
String ls_nama,ls_hasil
ls_nama = "luv piyut"
ls_hasil = dw_1.Describe ( "Evaluate('WordCap(~"" + ls_nama + "~")',0)")
Silahkan lihat hasilnya...:)
String ls_nama,ls_hasil
ls_nama = "luv piyut"
ls_hasil = dw_1.Describe ( "Evaluate('WordCap(~"" + ls_nama + "~")',0)")
Silahkan lihat hasilnya...:)
Menentukan lama waktu execute sebuah script
Untuk menguji lama waktu yang diperlukan dalam meng-execute sebuah potongan script kita bisa menggunakan fungsi CPU()
Long ll_start,ll_waktu
ll_start = CPU()
/*
** Script yang diexecute
*/
ll_waktu = CPU() - ll_start
Long ll_start,ll_waktu
ll_start = CPU()
/*
** Script yang diexecute
*/
ll_waktu = CPU() - ll_start
Menentukan Nilai RGB
Program Contoh dibawah ini akan menggunakan funsi MOD untuk memisahkan warna merah, biru dan hijau
1. Buat aplikasi baru dalam Powerbuilder
2. Buat window baru
3. Tambahkan Control Commandbutton dan StaticText pada window
4. Tambahkan script berikut pada event Commandbutton Click()
Long c, gc
Integer R, G, B
C= st_1.BackColor
gc = rgb(0,1,0)
R = Mod(c, gc)
C = C / gc
G = Mod(c, gc)
C = C / gc
B = Mod(c, gc)
MessageBox ( "Nilai RGB", "Merah =" + String (R) + 'Green = "+ String (G) +" Blue = "+ String (B))
Jalankan program sampel dan klik tombol.
Sebuah pesan akan muncul yang menunjukkan nilai-nilai merah, hijau dan biru yang mewakili StaticText properti BackColor.
1. Buat aplikasi baru dalam Powerbuilder
2. Buat window baru
3. Tambahkan Control Commandbutton dan StaticText pada window
4. Tambahkan script berikut pada event Commandbutton Click()
Long c, gc
Integer R, G, B
C= st_1.BackColor
gc = rgb(0,1,0)
R = Mod(c, gc)
C = C / gc
G = Mod(c, gc)
C = C / gc
B = Mod(c, gc)
MessageBox ( "Nilai RGB", "Merah =" + String (R) + 'Green = "+ String (G) +" Blue = "+ String (B))
Jalankan program sampel dan klik tombol.
Sebuah pesan akan muncul yang menunjukkan nilai-nilai merah, hijau dan biru yang mewakili StaticText properti BackColor.
Membaca file lebih besar dari 32.765 bytes
Fungsi FileRead terbatas dalam membaca file hanya sampai 32.765 bytes saja, hal ini bisa diatasi
blob lbl_data
blob lbl_temp
long ll_file
ll_file = Fileopen("mybigfile.txt",streammode!)
DO WHILE FileRead(ll_file,lbl_temp) > 0
lbl_data += lbl_temp
LOOP
FileClose(ll_file)
blob lbl_data
blob lbl_temp
long ll_file
ll_file = Fileopen("mybigfile.txt",streammode!)
DO WHILE FileRead(ll_file,lbl_temp) > 0
lbl_data += lbl_temp
LOOP
FileClose(ll_file)
Menampilkan atau menyembunyikan Desktop dan Taskbar
Beberapa aplikasi mengharuskan pengguna tidak dapat mengakses taskbar atau desktop ketika menjalankan aplikasi kita. Kami akan memblokir akses ke taskbar atau desktop dengan memanggil Windows API.
//Deklarasikan 2 Function berikut :
Function long FindWindowExA ( long hWnd, long hWndChild, ref string lpszClassName, ref string lpszWindow) library "user32"
Function long ShowWindow (long hWnd, long nCmdShow ) library "user32"
//Tambahkan script berikut :
//Konstanta untuk ShowWindow()
Constant Long SW_HIDE = 0
Constant Long SW_NORMAL = 1
Constant Long SW_SHOWMINIMIZED = 2
Constant Long SW_SHOWMAXIMIZED = 3
Constant Long SW_SHOWNOACTIVATE = 4
Constant Long SW_SHOW = 5
Constant Long SW_MINIMIZE = 6
Constant Long SW_SHOWMINNOACTIVE = 7
Constant Long SW_SHOWNA = 8
Constant Long SW_RESTORE = 9
Constant Long SW_SHOWDEFAULT = 10
--------------------------------------------------------
//Mencari nama Windows Shell
String ls_ShellViewWnd = "Progman"
String ls_ShellTaskBarWnd = "Shell_TrayWnd"
String ls_Null
// Local
Long ll_HTaskBar, ll_HDeskTop
// Hide Taskbar
ll_HTaskBar = FindWindowExA( 0, 0, ls_ShellTaskBarWnd, ls_Null )
ShowWindow( ll_HTaskBar, SW_HIDE )
// Hide Desktop
ll_HDeskTop = FindWindowExA( 0, 0, ls_ShellViewWnd, ls_Null )
ShowWindow( ll_HDeskTop, SW_HIDE )
// Tunda untuk memulihkan
MessageBox( 'Pause', 'Lihat Perbedaannya !' )
// Show Taskbar
ll_HTaskBar = FindWindowExA( 0, 0, ls_ShellTaskBarWnd, ls_Null )
ShowWindow( ll_HTaskBar, SW_SHOW )
// Show Desktop
ll_HDeskTop = FindWindowExA( 0, 0, ls_ShellViewWnd, ls_Null )
ShowWindow( ll_HDeskTop, SW_SHOW )
//Deklarasikan 2 Function berikut :
Function long FindWindowExA ( long hWnd, long hWndChild, ref string lpszClassName, ref string lpszWindow) library "user32"
Function long ShowWindow (long hWnd, long nCmdShow ) library "user32"
//Tambahkan script berikut :
//Konstanta untuk ShowWindow()
Constant Long SW_HIDE = 0
Constant Long SW_NORMAL = 1
Constant Long SW_SHOWMINIMIZED = 2
Constant Long SW_SHOWMAXIMIZED = 3
Constant Long SW_SHOWNOACTIVATE = 4
Constant Long SW_SHOW = 5
Constant Long SW_MINIMIZE = 6
Constant Long SW_SHOWMINNOACTIVE = 7
Constant Long SW_SHOWNA = 8
Constant Long SW_RESTORE = 9
Constant Long SW_SHOWDEFAULT = 10
--------------------------------------------------------
//Mencari nama Windows Shell
String ls_ShellViewWnd = "Progman"
String ls_ShellTaskBarWnd = "Shell_TrayWnd"
String ls_Null
// Local
Long ll_HTaskBar, ll_HDeskTop
// Hide Taskbar
ll_HTaskBar = FindWindowExA( 0, 0, ls_ShellTaskBarWnd, ls_Null )
ShowWindow( ll_HTaskBar, SW_HIDE )
// Hide Desktop
ll_HDeskTop = FindWindowExA( 0, 0, ls_ShellViewWnd, ls_Null )
ShowWindow( ll_HDeskTop, SW_HIDE )
// Tunda untuk memulihkan
MessageBox( 'Pause', 'Lihat Perbedaannya !' )
// Show Taskbar
ll_HTaskBar = FindWindowExA( 0, 0, ls_ShellTaskBarWnd, ls_Null )
ShowWindow( ll_HTaskBar, SW_SHOW )
// Show Desktop
ll_HDeskTop = FindWindowExA( 0, 0, ls_ShellViewWnd, ls_Null )
ShowWindow( ll_HDeskTop, SW_SHOW )
Membuat Function tanggal akhir bulan
1. Buat argument ad_date dengan tipe Date
2. Pilih Return tipe nya dengan tipe data Date
2. Buat script berikut
int li_retdays, li_month, li_year
li_month = Month(ad_date)
li_year = year(ad_date)
IF li_month < 12 THEN
li_month ++
ELSE
li_month = 1
li_year ++
END IF
// Membuat tanggal awal
ld_newdate = date(li_year),li_month,1)
// membuat tanggal akhir
ld_previousMonthLastDay = day(relativedate(ld_newdate, -1))
Return(ld_previousMonthLastDay)
2. Pilih Return tipe nya dengan tipe data Date
2. Buat script berikut
int li_retdays, li_month, li_year
li_month = Month(ad_date)
li_year = year(ad_date)
IF li_month < 12 THEN
li_month ++
ELSE
li_month = 1
li_year ++
END IF
// Membuat tanggal awal
ld_newdate = date(li_year),li_month,1)
// membuat tanggal akhir
ld_previousMonthLastDay = day(relativedate(ld_newdate, -1))
Return(ld_previousMonthLastDay)
Mendeteksi Versi Powerbuilder
String ls_PBver
Environment env
GetEnvironment(env)
ls_PBver = string(env.pbmajorrevision) + '.' + string(env.pbminorrevision) + '.' + string(env.pbfixesrevision)
Environment env
GetEnvironment(env)
ls_PBver = string(env.pbmajorrevision) + '.' + string(env.pbminorrevision) + '.' + string(env.pbfixesrevision)
Membuat List Printer yang terinstal dengan Listbox
Dalam tips ini kita akan membuat list printer yang terinstal didalam komputer dengan menggunakan LISTBOX
STRING ls_printers[]
INT li_rtn, i, li_nbPrinters
li_rtn = RegistryKeys("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers", ls_printers)
li_nbPrinters = UpperBound(li_printers)
FOR i = 1 TO li_nbPrinters
lb_1.addItem(ls_printers[i])
NEXT
STRING ls_printers[]
INT li_rtn, i, li_nbPrinters
li_rtn = RegistryKeys("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers", ls_printers)
li_nbPrinters = UpperBound(li_printers)
FOR i = 1 TO li_nbPrinters
lb_1.addItem(ls_printers[i])
NEXT
Merubah List Datawindow ke Grid Datawindow atau sebaliknya
1. Ekspor Datawindow
2. Edit datawindow yang telah kita ekspor tersebut
3. Cari "Processing ="
4. Untuk membuat DW List menjadi Grid, ubah Processing=1
5. Untuk membuat DW list menjadi normal atau non-grid, ubah Processing=0
2. Edit datawindow yang telah kita ekspor tersebut
3. Cari "Processing ="
4. Untuk membuat DW List menjadi Grid, ubah Processing=1
5. Untuk membuat DW list menjadi normal atau non-grid, ubah Processing=0
Membuat Datawindow Secara Dinamis
String ls_select,ls_where,ls_dwsyntax,ls_err
ls_select = "Select id, fname, lname, address, city, state, zip from customer"
ls_where = " where customer.fname like '" + is_cust + "%'"
ls_dwsyntax = SQLCA.SyntaxFromSQL ( ls_select, "Style(Type=grid)", ls_err )
dw_1.Create ( ls_dwsyntax, ls_err )
IF ls_err <> '' THEN
MessageBox ( "error - Syntax", ls_err )
ELSE
dw_1.SetTransObject ( SQLCA )
dw_1.Retrieve()
END IF
ls_select = "Select id, fname, lname, address, city, state, zip from customer"
ls_where = " where customer.fname like '" + is_cust + "%'"
ls_dwsyntax = SQLCA.SyntaxFromSQL ( ls_select, "Style(Type=grid)", ls_err )
dw_1.Create ( ls_dwsyntax, ls_err )
IF ls_err <> '' THEN
MessageBox ( "error - Syntax", ls_err )
ELSE
dw_1.SetTransObject ( SQLCA )
dw_1.Retrieve()
END IF
Ubah warna berganti-ganti baris pada datawindow
Untuk baris pada datawindow memiliki penampilan kertas printer menambahkan Expresi berikut dalam Color detail band.
IF (Mod(GetRow(),2)=0, RGB(0,255,0), RGB(255,255,255))
Warna latar belakang ini tidak muncul ketika Anda mencetak laporan.
Jika Anda ingin mencetak efek ini anda harus menambahkan sebuah persegi panjang atau kolom teks kosong di belakang kolom detail dan meletakkan pernyataan di atas.
IF (Mod(GetRow(),2)=0, RGB(0,255,0), RGB(255,255,255))
Warna latar belakang ini tidak muncul ketika Anda mencetak laporan.
Jika Anda ingin mencetak efek ini anda harus menambahkan sebuah persegi panjang atau kolom teks kosong di belakang kolom detail dan meletakkan pernyataan di atas.
Tambahkan event Timer kontrol standar
Apakah Anda tahu bahwa Anda dapat menambahkan Event Timer PowerBuilder kontrol visual?
Pertama memetakan sebuah event Timer event pbm_Timer.
Kemudian tambahkan panggilan API berikut:
Function Long SetTimer(Long hwnd, Long IdTimer, Long uTimeOut, Long tmpre) Library "user32.dll"
Function Long KillTimer(Long hwnd, Long IdEvent) Library "user32.dll"
Untuk mengontrol, gunakan perintah berikut bukan Timer ().
SetTimer(Handle(the_control), 1, 500, 0) // 500 adalah jumlah milidetik, atau setiap setengah detik
KillTimer (Handle(the_control), 1) / / Untuk Timer.
Pertama memetakan sebuah event Timer event pbm_Timer.
Kemudian tambahkan panggilan API berikut:
Function Long SetTimer(Long hwnd, Long IdTimer, Long uTimeOut, Long tmpre) Library "user32.dll"
Function Long KillTimer(Long hwnd, Long IdEvent) Library "user32.dll"
Untuk mengontrol, gunakan perintah berikut bukan Timer ().
SetTimer(Handle(the_control), 1, 500, 0) // 500 adalah jumlah milidetik, atau setiap setengah detik
KillTimer (Handle(the_control), 1) / / Untuk Timer.
Sabtu, 20 Februari 2010
Function Center Window
Membuat Tampilan window agar berada ditengah-tengah layar monitor
1. Buat Variable Global pada Declare Global Variables :
Long ScreenWidth, ScreenHeight
2. Buat Nama function misalkan dengan nama f_center
3. Pilih dengan tipe data argumen :window dan nama argumen tersebut a_window
4. pilih tipe data return : integer
5. Ketik Script Dibawah ini :
Environment le_Env
Integer li_ScreenH, li_ScreenW
GetEnvironment(le_Env)
li_ScreenH = PixelsToUnits(le_Env.ScreenHeight, YPixelsToUnits!)
li_ScreenW = PixelsToUnits(le_Env.ScreenWidth, XPixelsToUnits!)
a_window.Y = (li_ScreenH - a_window.Height) / 2
a_window.X = (li_ScreenW - a_window.Width) / 2
a_window.SetPosition(Topmost!)
return 1
6. Untuk Syntax pemanggilan function ini f_center(nama_window) pada saat event open()
7. Selamat Mencoba!!
1. Buat Variable Global pada Declare Global Variables :
Long ScreenWidth, ScreenHeight
2. Buat Nama function misalkan dengan nama f_center
3. Pilih dengan tipe data argumen :window dan nama argumen tersebut a_window
4. pilih tipe data return : integer
5. Ketik Script Dibawah ini :
Environment le_Env
Integer li_ScreenH, li_ScreenW
GetEnvironment(le_Env)
li_ScreenH = PixelsToUnits(le_Env.ScreenHeight, YPixelsToUnits!)
li_ScreenW = PixelsToUnits(le_Env.ScreenWidth, XPixelsToUnits!)
a_window.Y = (li_ScreenH - a_window.Height) / 2
a_window.X = (li_ScreenW - a_window.Width) / 2
a_window.SetPosition(Topmost!)
return 1
6. Untuk Syntax pemanggilan function ini f_center(nama_window) pada saat event open()
7. Selamat Mencoba!!
Function Encrypt & Decrypt
[function string of_encrypt(as_str)]
integer i, j
string ls_enctext = ""
CONSTANT string CRYPT_KEY = "$#@%%@&*"
j = len(as_str)
FOR i = 1 TO j
ls_enctext += mid(CRYPT_KEY , mod(i,10) + 1, 1)
ls_enctext += String(Char(255 - Asc(Mid(as_str, i, 1))))
NEXT
RETURN ls_enctext
======================================================
[function string of_decrypt(as_str)]
integer i, j
string ls_encchar, ls_temp, ls_unasstr = "** Encryption Error"
boolean lb_ok = true
CONSTANT string CRYPT_KEY = "$#@%%@&*"
j = len(as_str)
IF NOT Mod(j, 2) = 1 THEN
ls_temp = ""
FOR i = 2 TO (j + 1) STEP 2
ls_encchar = Mid(as_str, i - 1, 1)
IF mid(CRYPT_KEY, Mod(i / 2, 10) + 1, 1) <> ls_encchar THEN
lb_ok = FALSE
EXIT
END IF
ls_encchar = Mid(as_str, i, 1)
ls_temp += string(char(255 - asc(ls_encchar)))
NEXT
END IF
IF lb_ok THEN ls_unasstr = ls_temp
RETURN LS_UNASSTR
=======================================================
integer i, j
string ls_enctext = ""
CONSTANT string CRYPT_KEY = "$#@%%@&*"
j = len(as_str)
FOR i = 1 TO j
ls_enctext += mid(CRYPT_KEY , mod(i,10) + 1, 1)
ls_enctext += String(Char(255 - Asc(Mid(as_str, i, 1))))
NEXT
RETURN ls_enctext
======================================================
[function string of_decrypt(as_str)]
integer i, j
string ls_encchar, ls_temp, ls_unasstr = "** Encryption Error"
boolean lb_ok = true
CONSTANT string CRYPT_KEY = "$#@%%@&*"
j = len(as_str)
IF NOT Mod(j, 2) = 1 THEN
ls_temp = ""
FOR i = 2 TO (j + 1) STEP 2
ls_encchar = Mid(as_str, i - 1, 1)
IF mid(CRYPT_KEY, Mod(i / 2, 10) + 1, 1) <> ls_encchar THEN
lb_ok = FALSE
EXIT
END IF
ls_encchar = Mid(as_str, i, 1)
ls_temp += string(char(255 - asc(ls_encchar)))
NEXT
END IF
IF lb_ok THEN ls_unasstr = ls_temp
RETURN LS_UNASSTR
=======================================================
Langganan:
Postingan (Atom)