//honeypot demagogic

 Forum DhammaCitta. Forum Diskusi Buddhis Indonesia

Author Topic: [HELP] Programming  (Read 17240 times)

0 Members and 1 Guest are viewing this topic.

Offline johan3000

  • KalyanaMitta
  • *****
  • Posts: 11.552
  • Reputasi: 219
  • Gender: Male
  • Crispy Lotus Root
[HELP] Programming
« on: 24 August 2009, 01:45:19 PM »
Mencari kesalahan dlm program seperti mencari pembunuh.
Banyak sebab yg tak terduga, dan kadang kala kita membutuhkan bantuan orang lain.

Moga2 dgn topic ini, pembunuhan tsb cepat ketangkap!....  :))  :))
dan anda kembali bisa tidur nyenyak  ;D  ;D  ;D
Nagasena : salah satu dari delapan penyebab matangnya kebijaksanaan dgn seringnya bertanya

Offline johan3000

  • KalyanaMitta
  • *****
  • Posts: 11.552
  • Reputasi: 219
  • Gender: Male
  • Crispy Lotus Root
Re: [HELP] Programming
« Reply #1 on: 24 August 2009, 01:56:26 PM »
kasus :
Kira2 8 thn dgn visualfoxpro, gw membuat program
penerima pasien yg mencetak label (kira2 berkisar 10cmx4cm)
label dlm bentuk kertas berlubang (tractor feed).
printer yg dipakai adalah Epson LX 300+, dgn window 98

minggu lalu komputernya rusak, maka semua program dipindah
ke komputer lain window XP dan dipasang driver LX300+

programpun direbuilt EXE dgn visualFoxPro9, semua berjalan lancar,
kecuali sekarang kalau print label, kertasnya jalan sampai 1 halaman.

Dibagian report udah nyoba utik2 tapi gak berhasil (pilihan, manual feed,
tractor feed, no new page after printing, dsb)...

info : printer epson LX300+ tidak punya paper custom size, dan kalau pilih
kertas A5, ya kertas tsb jalannya gak terlalu banyak.

pertanyaan : KIRA2 kesalahan ada dimana ya ?
pertanyaan menyerupain : apa yg perlu diperhatikan utk print label* dgn LX-300+ (winXP vFox9)
(dimana label adalah print area ukuran kecil)

mohon bantuan detektif2 dari DC,... semoga gw bisa tidur nyenyak lagi!...

kalau ada yg kurang jelas dari gw, silahkan tanya lagi yo!  :'( :'( :'(
« Last Edit: 24 August 2009, 01:58:35 PM by johan3000 »
Nagasena : salah satu dari delapan penyebab matangnya kebijaksanaan dgn seringnya bertanya

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #2 on: 24 August 2009, 02:16:21 PM »
Bro Johan,

coba anda buat custom paper size dengan cara

Start->Printer and Faxes->pada menu (di bagias atas) click File->Server Properties

setelah anda mendefinisikan jenis paper ini, kemudian pilih paper jenis ini saat print, pasti beres.


Offline Forte

  • Sebelumnya FoxRockman
  • KalyanaMitta
  • *****
  • Posts: 16.577
  • Reputasi: 458
  • Gender: Male
  • not mine - not me - not myself
Re: [HELP] Programming
« Reply #3 on: 24 August 2009, 02:27:41 PM »
oh.. foxpro ya..
btw.. itu printnya pake frx / pake prg jalaninnya ?
kalau pake frx emang agak ribet seh.. dan memang harus customize paper

tapi kalau pake prg kita bisa panggil code ascii buat stop print.. tapi gw lupa kunci angkanya :P
pake function  [at]

Ini bukan milikku, ini bukan aku, ini bukan diriku
6 kelompok 6 - Chachakka Sutta MN 148

Offline hatRed

  • KalyanaMitta
  • *****
  • Posts: 7.400
  • Reputasi: 138
  • step at the right place to be light
Re: [HELP] Programming
« Reply #4 on: 24 August 2009, 03:19:00 PM »
yupp..

i juga punya problem yg sama...... 

program ticket yg dulu bisa tuh tanpa custom size di server properties.. tapi bisa pas... printnya berhenti pas sampe ukuran tiketnya aja..

nah pas i bikir program serupa, cuman i gak tau deh gmana cara nyetopin kertasnya...
i'm just a mammal with troubled soul



Offline Forte

  • Sebelumnya FoxRockman
  • KalyanaMitta
  • *****
  • Posts: 16.577
  • Reputasi: 458
  • Gender: Male
  • not mine - not me - not myself
Re: [HELP] Programming
« Reply #5 on: 24 August 2009, 03:40:59 PM »
try this..

Code: (visual foxpro) [Select]
local lcTempFile, lcPrinterName, lcFileInRam
SET SAFETY OFF
lcTempFile = ‘c:\coba.txt’
lcPrinterName = SET(”Printer”,2) &&
SET PRINTER TO NAME (lcPrinterName) &&
SET DEVICE TO FILE (lcTempFile)
 [at] PROW(),10 SAY ALLTRIM(CUST_ID)
 [at] PROW(),43 SAY ALLTRIM(PENERIMA)
 [at] PROW()+1,3 SAY ALLTRIM(PENGIRIM)
 [at] PROW()+1,3 SAY ALLTRIM(alam1)
 [at] PROW()+1,3 SAY ALLTRIM(alam2)

 [at] PROW()+1,0 say ‘ ‘ &&biar posisi head printer kembali ke posisi 0(nol)

itu hasil google..

kelemahannya, yaitu gak bisa huruf besar, tapi bisa diakali.. dengan kombinasi kunci pada LX-300
nanti malam coba gw cari dan gw share.. mudah2an masih ada di lappie
Ini bukan milikku, ini bukan aku, ini bukan diriku
6 kelompok 6 - Chachakka Sutta MN 148

Offline Forte

  • Sebelumnya FoxRockman
  • KalyanaMitta
  • *****
  • Posts: 16.577
  • Reputasi: 458
  • Gender: Male
  • not mine - not me - not myself
Re: [HELP] Programming
« Reply #6 on: 24 August 2009, 06:06:11 PM »
SET SAFETY OFF
lcTempFile = 'c:\kwita.txt'
SET DEVICE TO FILE (lcTempFile)


** Cek berapa banyak No Transaksi
SELECT no_transaksi FROM printfaktur GROUP BY no_transaksi INTO CURSOR banyaktransaksi
recendtran=RECCOUNT()

FOR rectran = 1 TO recendtran
SELECT banyaktransaksi
GO rectran
notran = no_transaksi

SELECT * FROM printfaktur WHERE no_transaksi=notran INTO CURSOR curtransaksi
SELECT curtransaksi

recend=RECCOUNT()
endfaktur=CEILING(recend/10)
 
FOR nfaktur=1 TO endfaktur
**Baris 1
STORE totaldetail TO _TOTALDETAIL
STORE discdetail TO _DISCDETAIL
STORE disc TO _DISC
STORE disc_cash TO _DISC_CASH
STORE ppn TO _PPN
STORE total TO _TOTAL

 [at] PROW(),1 SAY CHR(27)+CHR(33)+CHR(36) && <======= INI CONTOH KOMBINASI


 [at] PROW(),1 SAY "TRANSAKSI ORDER PEMBELIAN"
 [at] PROW()+01,1 say REPLICATE(CHR(205),25)+SPACE(12)+"NO FAKTUR  : "+NO_TRANSAKSI
 [at] PROW()+01,2 SAY SPACE(36)                       +"TGL FAKTUR : "+DTOC(TGL_TRANSAKSI)
 [at] PROW()+02,2 SAY CHR(27)+CHR(33)+CHR(4)
 [at] PROW(),2 SAY SPACE(74)                   +"KEPADA YTH."
 [at] PROW()+01,2 SAY "KODE SUPPLIER  : "+SUPPLIER+SPACE(47)+NAMA_SUPPLIER
 [at] PROW()+01,2 SAY SPACE(74)                       +KOTA
 [at] PROW()+02,1 say CHR(201)+REPLICATE(CHR(205),22)+CHR(203)+REPLICATE(CHR(205),50)                              +CHR(203)+REPLICATE(CHR(205),22)  +CHR(203)+REPLICATE(CHR(205),26)      +CHR(187)
 [at] PROW()+01,1 SAY CHR(186)+SPACE(22)             +CHR(186)+SPACE(50)                                           +CHR(186)+SPACE(22)               +CHR(186)+SPACE(26)+CHR(186)  
 [at] PROW()+01,1 SAY CHR(186)+"     J U M L A H      " +CHR(186)+"      N  A  M  A            B  A  R  A  N  G      "+CHR(186)+"     HARGA SATUAN     "+CHR(186)+"   S U B      T O T A L   "+CHR(186)
 [at] PROW()+01,1 SAY CHR(186)+SPACE(22)             +CHR(186)+SPACE(50)                                           +CHR(186)+SPACE(22)               +CHR(186)+SPACE(26)                   +CHR(186)  
 [at] PROW()+01,1 say CHR(204)+REPLICATE(CHR(205),22)+CHR(206)+REPLICATE(CHR(205),50)                              +CHR(206)+REPLICATE(CHR(205),22)  +CHR(206)+REPLICATE(CHR(205),26)      +CHR(185)

no=0

IF nfaktur=endfaktur
batas=RECCOUNT()
ELSE
batas=nfaktur*10
ENDIF

FOR rec=(nfaktur-1)*10+1 TO batas
GO REC
no=no+1
SCATTER MEMVAR field jumlah,satuan,kode_barang,nama_barang,harga,sub_total
 [at] PROW()+01,1 SAY CHR(186)+" "+TRANSFORM(jumlah,' [at] z 9,999,999,999.99')+" "+satuan+" "+CHR(186)+" "+LEFT(nama_barang,25)+" / "+kode_barang+" "+CHR(186)+" "+TRANSFORM(harga,' [at] z 9,999,999,999,999.99')+" "+CHR(186)+" "+TRANSFORM(sub_total,' [at] z 9,999,999,999,999,999.99')+" "+CHR(186)                                  
NEXT

FOR i=9 TO no STEP -1
 [at] PROW()+01,1 SAY CHR(186)+SPACE(22)             +CHR(186)+SPACE(50)                                           +CHR(186)+SPACE(22)               +CHR(186)+SPACE(26)                   +CHR(186)  
NEXT

 [at] PROW()+01,1  say CHR(200)+REPLICATE(CHR(205),22)+CHR(202)+REPLICATE(CHR(205),50)                              +CHR(202)+REPLICATE(CHR(205),22)  +CHR(202)+REPLICATE(CHR(205),26)      +CHR(188)
 [at] PROW()+01,1  SAY +"TERBILANG : "
 [at] PROW(),88    SAY                                                   "SUB TOTAL : "+TRANSFORM((_totaldetail+_discdetail),' [at] z 9,999,999,999,999,999.99')
 [at] PROW()+01,1  SAY KONV_RP(_TOTAL)
 [at] PROW(),88    say                                                    "DISCOUNT  : "+TRANSFORM((_discdetail+_disc+_disc_cash),' [at] z 9,999,999,999,999,999.99')
 [at] PROW()+01,88 SAY                                                      "P.P.N.    : "+TRANSFORM(_ppn,' [at] z 9,999,999,999,999,999.99')   
 [at] PROW()+01,88 SAY                                                  "T O T A L : "+TRANSFORM(_total,' [at] z 9,999,999,999,999,999.99')   
 [at] PROW()+02,70 SAY "(Hormat Kami)"
 [at] PROW()+01,1  SAY " "
 [at] PROW()+01,1  SAY " "
 [at] PROW()+01,1  SAY " "
 [at] PROW()+01,0  say " "

NEXT
NEXT

SET DEVICE TO SCREEN
lcFileInRam = FILETOSTR( lcTempFile )
??? lcFileInRam+CHR(13)
SET PRINTER TO
**************
   
« Last Edit: 24 August 2009, 06:10:28 PM by Forte »
Ini bukan milikku, ini bukan aku, ini bukan diriku
6 kelompok 6 - Chachakka Sutta MN 148

Offline hatRed

  • KalyanaMitta
  • *****
  • Posts: 7.400
  • Reputasi: 138
  • step at the right place to be light
Re: [HELP] Programming
« Reply #7 on: 24 August 2009, 06:10:57 PM »
mo nanya

itu yg bikin kertas gak kegulung sampe abis yg baris ini ya

Code: [Select]
[at]  PROW()+01,0  say " "
i'm just a mammal with troubled soul



Offline Forte

  • Sebelumnya FoxRockman
  • KalyanaMitta
  • *****
  • Posts: 16.577
  • Reputasi: 458
  • Gender: Male
  • not mine - not me - not myself
Re: [HELP] Programming
« Reply #8 on: 24 August 2009, 06:13:18 PM »
Cerdas.. YUP ;D
Ini bukan milikku, ini bukan aku, ini bukan diriku
6 kelompok 6 - Chachakka Sutta MN 148

Offline hatRed

  • KalyanaMitta
  • *****
  • Posts: 7.400
  • Reputasi: 138
  • step at the right place to be light
Re: [HELP] Programming
« Reply #9 on: 24 August 2009, 06:16:19 PM »
intinya cuman ngeprint spasi apa karakter apa tuh?

soalnya aye pake VB ;D
i'm just a mammal with troubled soul



Offline Forte

  • Sebelumnya FoxRockman
  • KalyanaMitta
  • *****
  • Posts: 16.577
  • Reputasi: 458
  • Gender: Male
  • not mine - not me - not myself
Re: [HELP] Programming
« Reply #10 on: 24 August 2009, 06:38:27 PM »
bukan print karakter spasi seh tapi mengembalikan posisi head printer ke asal rimbanya. makanya diset prow()+1,0

Ini bukan milikku, ini bukan aku, ini bukan diriku
6 kelompok 6 - Chachakka Sutta MN 148

Offline johan3000

  • KalyanaMitta
  • *****
  • Posts: 11.552
  • Reputasi: 219
  • Gender: Male
  • Crispy Lotus Root
Re: [HELP] Programming
« Reply #11 on: 25 August 2009, 07:57:33 AM »
Bro Johan,

coba anda buat custom paper size dengan cara

Start->Printer and Faxes->pada menu (di bagias atas) click File->Server Properties

setelah anda mendefinisikan jenis paper ini, kemudian pilih paper jenis ini saat print, pasti beres.



Thanks bro Indra atas masukannya, tetapi printer driver LX-300+ bawaan window XP tsb
tidak menyediakan CUSTOM SIZE, sedangkan kalau ganti printer inkJet baru seharusnya gak masalah. Tapi pelanggan mendengar BELI, BELI, BELI,... udah gak mau.

sharing : Dokumentasi/backup sangalah penting dalam dunia software developer.
seingat saya dulu juga begitu printernya di pasang gak bisa langsung mulus. Jadi saya coba beberapa driver (bisa juga download dari internet), dan akhirnya bisa. Sayangnya kejadian tsb tidak didokumentasikan dgn baik dan driver (LX-300+) yg bisa itu tidak dicopy dan disimpan, jadilah setelah sekian tahun udah gak ingat DULU BISA, DGN CARA GIMANA ?

Udah juga dicoba pilih amplot size yg lain2 dan belum berhasil.


thanks again, bro Indra udah membantu.
 _/\_
Nagasena : salah satu dari delapan penyebab matangnya kebijaksanaan dgn seringnya bertanya

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #12 on: 25 August 2009, 08:10:37 AM »
Bro Johan,

coba anda buat custom paper size dengan cara

Start->Printer and Faxes->pada menu (di bagias atas) click File->Server Properties

setelah anda mendefinisikan jenis paper ini, kemudian pilih paper jenis ini saat print, pasti beres.



Thanks bro Indra atas masukannya, tetapi printer driver LX-300+ bawaan window XP tsb
tidak menyediakan CUSTOM SIZE, sedangkan kalau ganti printer inkJet baru seharusnya gak masalah. Tapi pelanggan mendengar BELI, BELI, BELI,... udah gak mau.

sharing : Dokumentasi/backup sangalah penting dalam dunia software developer.
seingat saya dulu juga begitu printernya di pasang gak bisa langsung mulus. Jadi saya coba beberapa driver (bisa juga download dari internet), dan akhirnya bisa. Sayangnya kejadian tsb tidak didokumentasikan dgn baik dan driver (LX-300+) yg bisa itu tidak dicopy dan disimpan, jadilah setelah sekian tahun udah gak ingat DULU BISA, DGN CARA GIMANA ?

Udah juga dicoba pilih amplot size yg lain2 dan belum berhasil.


thanks again, bro Indra udah membantu.
 _/\_


sptnya Bro Johan belum mencoba trik ini, saya sering mengalami hal yg sama dan Server Properies pada Printer selalu bisa menyelesaikan. saran saya, coba dulu

Offline johan3000

  • KalyanaMitta
  • *****
  • Posts: 11.552
  • Reputasi: 219
  • Gender: Male
  • Crispy Lotus Root
Re: [HELP] Programming
« Reply #13 on: 25 August 2009, 08:40:52 AM »


Setelah saya create myLabel, trus gimana myLabel (paperForm ini) dapat dikenal oleh printer2 lainnya ? soalnya gw buka printer Epson C90, dan gak bisa akses myLabel.

Bisa jelaskan setelah myLabel di buat, bagaimana printer menggunakan setting ini ?

mohon bantuannya, soalnya ini barang canggih bagi saya...

 _/\_
Nagasena : salah satu dari delapan penyebab matangnya kebijaksanaan dgn seringnya bertanya

Offline hatRed

  • KalyanaMitta
  • *****
  • Posts: 7.400
  • Reputasi: 138
  • step at the right place to be light
Re: [HELP] Programming
« Reply #14 on: 25 August 2009, 08:44:03 AM »
kalo gak salah itu untuk ukuran2 kertas di windows...

kalo buat c90 tergantung neh.. print lewat kodeprogram atau pake aplikasi printer c90..

tapi bukannya ngeprint di lx-300 ???
i'm just a mammal with troubled soul



Offline johan3000

  • KalyanaMitta
  • *****
  • Posts: 11.552
  • Reputasi: 219
  • Gender: Male
  • Crispy Lotus Root
Re: [HELP] Programming
« Reply #15 on: 25 August 2009, 08:47:40 AM »
try this..

Code: (visual foxpro) [Select]
local lcTempFile, lcPrinterName, lcFileInRam
SET SAFETY OFF
lcTempFile = ‘c:\coba.txt’
lcPrinterName = SET(”Printer”,2) &&
SET PRINTER TO NAME (lcPrinterName) &&
SET DEVICE TO FILE (lcTempFile)
 [at] PROW(),10 SAY ALLTRIM(CUST_ID)
 [at] PROW(),43 SAY ALLTRIM(PENERIMA)
 [at] PROW()+1,3 SAY ALLTRIM(PENGIRIM)
 [at] PROW()+1,3 SAY ALLTRIM(alam1)
 [at] PROW()+1,3 SAY ALLTRIM(alam2)

 [at] PROW()+1,0 say ‘ ‘ &&biar posisi head printer kembali ke posisi 0(nol)

itu hasil google..

kelemahannya, yaitu gak bisa huruf besar, tapi bisa diakali.. dengan kombinasi kunci pada LX-300
nanti malam coba gw cari dan gw share.. mudah2an masih ada di lappie


Thanks bro Forte dan HatRed, ternyata member2 DC banyak yg doyan programming

kalau contoh2 bro Forte dgn printer2 code tsb ya bagi yg programmer sejati...
memang dua pilihan apakah output printer kita menggunakan PRG atau FRM,
saya pilih FRM karna disana dgn mudah menggantikan ukuran FONT2 utk label pasien.
Memang sih client tsb sukanya ganti2 fontnya, kurang besar, kurang begitu...
malah setelah 2 minggu dia bisa minta perubahan2 yg tidak esensial...

Jadi gw amat takut deh kalau hardCOde dgn printer code tsb..
selain itu nanti kalau ganti printer, harus ngubah program lagi sebab printerKodenya
udah gak berfungsi.

Sebenarnya ganti inkJet lebih mantep lho!... gak berisik, dan tintanyapun lebih murah.
Bagaimana menurut bro? (kalau client sih gak mau keluar duit lagi deh...)

thanks again!
 _/\_ :) :| :D
Nagasena : salah satu dari delapan penyebab matangnya kebijaksanaan dgn seringnya bertanya

Offline hatRed

  • KalyanaMitta
  • *****
  • Posts: 7.400
  • Reputasi: 138
  • step at the right place to be light
Re: [HELP] Programming
« Reply #16 on: 25 August 2009, 08:54:03 AM »

ini kalo di printer inkjet sih aye dah pernah ngeprint Stiker...  (samalah kek label gtu)

cuman di vb :P  itu pake crystal report.... jadi pas buat file crystal reportnya udah di set ukuran stickernya....

nah pas di program tinggal di set aja ukuran kertasnya (sebelomnya di tambah di server properties dulu.. cuman karena merepotkan user jadi di otomatisasi di program)

and voila...


dan kelemahannya cuman gak bisa buat printer yg di network.. (karena pilihan server propertiesnya itu loh)

tapi dapat diakali dengan menyuruh user lebih giat lagi ... :)) itu biasanya di printer Epson (Inkjet ) ada pilihan Page Sizenya di pake User defined aja...
i'm just a mammal with troubled soul



Offline hatRed

  • KalyanaMitta
  • *****
  • Posts: 7.400
  • Reputasi: 138
  • step at the right place to be light
Re: [HELP] Programming
« Reply #17 on: 25 August 2009, 08:59:08 AM »
 [at]  om jo

itu PRG sama FRM apa sih?
i'm just a mammal with troubled soul



Offline johan3000

  • KalyanaMitta
  • *****
  • Posts: 11.552
  • Reputasi: 219
  • Gender: Male
  • Crispy Lotus Root
Re: [HELP] Programming
« Reply #18 on: 25 August 2009, 09:15:44 AM »
Quote
Creating Reports

Standard wisdom suggests creating a report and adding tables to its data environment and setting relations among them, then dragging the controls onto the report, much as you created your frmData form. While this approach is easy to begin with, it can create a debugging nightmare for multi-table reports. In truth, the simplest way to create a report begins with an SQL SELECT statement, and once you've learned a little of this "second" programming language, it's easier to type the SQL code than to use a Wizard or GUI interface.

To make best use of the FoxPro report writer, use SQL to create a denormalized view or cursor of the exact data you want in your report. Refer to the fields in the cursor as MyField only and not MyCursor.MyField. The Report Writer will run the report from whatever cursor, table, or view is in the currently selected work area. The extra effort of adding the controls to the report individually is well worth the time in exchange for the ease of getting the rest of the report working properly.


Figure 9. The most foolproof way to create reports in Visual FoxPro is to select with SQL commands, exactly the way  you want it to appear in your report. This code can be
located in the Click() method of the button that calls the
report, and is usually followed by the REPORT command.Figure 9. The most foolproof way to create reports in Visual FoxPro is to select with SQL commands, exactly the way
 you want it to appear in your report. This code can be
located in the Click() method of the button that calls the
report, and is usually followed by the REPORT command.

Figure 10. Adding fields to a report is as simple as drawing a rectangle, then typing in the name of the field which you want shown in that position. The Visual FoxPro Report Writer easily does group and summary totals, averages, and so on, and with a few Print When tricks can produce some very sophisticated reports.

Create a frmReport with a "Run Report" button. Double click on the "Run Report" button on your frmReport and type the following code in the window, as shown in Figure 9:
SELECT * FROM Customers ;
    INTO CURSOR TempCustomers ;
   ORDER BY Customer

REPORT FORM Customers.FRX TO PRINTER PROMPT PREVIEW

Create a new report by highlighting Reports on the Docs tab of the Project Manager and clicking New. Save your report as "Customers." Using the Report Controls toolbar, click the Field control and draw a rectangle in the detail section of the report as shown in Figure 10. Type "Customer" in the Expression textbox. You can add other fields, and finish off the title band if you want. The Visual FoxPro Report Writer has many other capabilities including group and summary computations that I'll leave for you to discover. Getting the most out of the Report Writer is mostly a matter of assembling the data in the order and way you want it to appear, and learning a few tricks with Print When and formatting.


http://www.melbpc.org.au/pcupdate/2108/2108article4.htm


PRG dlm vFoxPro adalah CODE (file yg mengisi program tertulis, spt source code VB)
FRM, FRX adalah file yg bersisi layout dan field, header, footer, dll yg berhubungan dgn REPORT
   (FRM bentuk aslinya, FRX setelah dicompile...kira2 begitu deh, soalnya udah agak lupa)

Jadi keuntungan menggunakan fasilitas FRM, anda cukup menggeser, menambah, menghapus
  field2 mapun label2 dlm keadaan WYWYG (what U see what U get) graphic layout.
spt pada figure 10.

Dan utk report2 lebih canggih lagi bisa gunakan CRYSTAL REPORT yg konon bekerja sama dgn banyak programming Language.

semoga cukup jelas!  ;D

[at]  om jo

itu PRG sama FRM apa sih?
« Last Edit: 25 August 2009, 09:17:48 AM by johan3000 »
Nagasena : salah satu dari delapan penyebab matangnya kebijaksanaan dgn seringnya bertanya

Offline hatRed

  • KalyanaMitta
  • *****
  • Posts: 7.400
  • Reputasi: 138
  • step at the right place to be light
Re: [HELP] Programming
« Reply #19 on: 25 August 2009, 09:23:14 AM »
oo...

berarti sama ya.. kalo pake VB6.

file FRM itu cuma kode berisi layout serta code source sedangkan FRX adalah file2 biner yg integrasikan ke layout Form... (kek gambar de el el )

berarti kalo di FoxPro di pisahin ya  kode GUI sama kode Programnya ;D

btw boleh gantian nanyanya gak...

ini i dah pernah nanya disini lum ya :-?

cuman mo nanya.... trik buat dapet tampilan kek vista gitu.... yg kalo muncul dialog box... layar backgroundnya jadi item..

trik sementara sih pake form laen yg dijadiin layer.. (hitam dan transparant)
« Last Edit: 25 August 2009, 09:25:10 AM by hatRed »
i'm just a mammal with troubled soul



Offline Forte

  • Sebelumnya FoxRockman
  • KalyanaMitta
  • *****
  • Posts: 16.577
  • Reputasi: 458
  • Gender: Male
  • not mine - not me - not myself
Re: [HELP] Programming
« Reply #20 on: 25 August 2009, 09:26:35 AM »
yeah.. fox rock.. :))
Ini bukan milikku, ini bukan aku, ini bukan diriku
6 kelompok 6 - Chachakka Sutta MN 148

Offline johan3000

  • KalyanaMitta
  • *****
  • Posts: 11.552
  • Reputasi: 219
  • Gender: Male
  • Crispy Lotus Root
Re: [HELP] Programming
« Reply #21 on: 25 August 2009, 09:28:37 AM »
kalo gak salah itu untuk ukuran2 kertas di windows...

kalo buat c90 tergantung neh.. print lewat kodeprogram atau pake aplikasi printer c90..

tapi bukannya ngeprint di lx-300 ???

printer LX-300+ punya client, jadi gw cuma nyoba ngecek di C90 apakah
newForm yg dibuat myLabel nongol ?
Nagasena : salah satu dari delapan penyebab matangnya kebijaksanaan dgn seringnya bertanya

Offline tesla

  • KalyanaMitta
  • *****
  • Posts: 6.426
  • Reputasi: 125
  • Gender: Male
  • bukan di surga atau neraka, hanya di sini
Re: [HELP] Programming --- about overriding constructor in Pascal
« Reply #22 on: 21 December 2010, 02:37:32 PM »
gan... nanya donk... kok yg ini ga bisa di compile ya?

Quote
TATCommandDevice = class(TObject)
public
  constructor Create(const AName: String = '');
end;

TATModem = class(TATCommandDevice)
public
  constructor Create(const AName: String = ''); override;
end;

error di compilenya:
Code: [Select]
Error: there is no method in an accesstor class to be overriden: "constructor TATModem.Create(const AnsiString);"

padahal kan di ancestornya ada tuh method...
kenapa yah gan?
Lepaskan keserakahan akan kesenangan. Lihatlah bahwa melepaskan dunia adalah kedamaian. Tidak ada sesuatu pun yang perlu kau raup, dan tidak ada satu pun yang perlu kau dorong pergi. ~ Buddha ~

Offline seniya

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 3.469
  • Reputasi: 169
  • Gender: Male
  • Om muni muni mahamuni sakyamuni svaha
Re: [HELP] Programming
« Reply #23 on: 21 December 2010, 07:47:53 PM »
gan... nanya donk... kok yg ini ga bisa di compile ya?

error di compilenya:
Code: [Select]
Error: there is no method in an accesstor class to be overriden: "constructor TATModem.Create(const AnsiString);"

padahal kan di ancestornya ada tuh method...
kenapa yah gan?

Kayaknya constructor-nya harus dideklarasikan sebagai virtual karena hanya function/procedure virtual aja yang bisa di-override. Dari Delphi Help dikatakan:

Quote
Virtual and dynamic methods

To make a method virtual or dynamic, include the virtual or dynamic directive in its declaration. Virtual and dynamic methods, unlike static methods, can be overridden in descendant classes. When an overridden method is called, the actual (runtime) type of the class or object used in the method call--not the declared type of the variable--determines which implementation to activate.

To override a method, redeclare it with the override directive. An override declaration must match the ancestor declaration in the order and type of its parameters and in its result type (if any).

In the following example, the Draw method declared in TFigure is overridden in two descendant classes.

Code: [Select]
type
  TFigure = class
    procedure Draw; virtual;
  end;
  TRectangle = class(TFigure)
    procedure Draw; override;
  end;
  TEllipse = class(TFigure)
    procedure Draw; override;
  end;

Given these declarations, the following code illustrates the effect of calling a virtual method through a variable whose actual type varies at runtime.

Code: [Select]
var
  Figure: TFigure;
begin
  Figure := TRectangle.Create;
  Figure.Draw;  // calls TRectangle.Draw
  Figure.Destroy;
  Figure := TEllipse.Create;
  Figure.Draw;  // calls TEllipse.Draw
  Figure.Destroy;
end;

Only virtual and dynamic methods can be overridden. All methods, however, can be overloaded; see Overloading methods.

Virtual versus dynamic

Virtual and dynamic methods are semantically equivalent. They differ only in the implementation of method-call dispatching at runtime. Virtual methods optimize for speed, while dynamic methods optimize for code size.

In general, virtual methods are the most efficient way to implement polymorphic behavior. Dynamic methods are useful when a base class declares many overridable methods which are inherited by many descendant classes in an application, but only occasionally overridden.

Note:
Only use dynamic methods if there is a clear, observable benefit. Generally, use virtual methods.

dan

Quote
Overriding methods

Overriding a method means extending or refining it, rather than replacing it. A descendant class can override any of its inherited virtual methods.

To override a method in a descendant class, add the directive override to the end of the method declaration.

Overriding a method causes a compilation error if

* The method does not exist in the ancestor class.
* The ancestor's method of that name is static.
* The declarations are not otherwise identical (number and type of arguments parameters differ).

Btw, saya coba coding anda di Delphi 7, pesan error yang keluar adalah "cannot override a static method"
"Holmes once said not to allow your judgement to be biased by personal qualities, and emotional qualities are antagonistic to clear reasoning."
~ Shinichi Kudo a.k.a Conan Edogawa

Offline tesla

  • KalyanaMitta
  • *****
  • Posts: 6.426
  • Reputasi: 125
  • Gender: Male
  • bukan di surga atau neraka, hanya di sini
Re: [HELP] Programming
« Reply #24 on: 22 December 2010, 09:52:41 AM »
thanks... udah solved dg keyword reintroduce

jadi...
constructor Create(const AName: String = ''); override; reintroduce;

saya jg googling kemana2...
kesimpulannya:
keyword override artinya adalah meng-implement-kan abstract method pada ancestor class.
keyword reintroduce artinya adalah meng-override-kan method pada ancestor class.

penamaan yg agak berbeda...




oh ya, tambahan: saya pakai Lazarus dg compiler FPC :)
Lepaskan keserakahan akan kesenangan. Lihatlah bahwa melepaskan dunia adalah kedamaian. Tidak ada sesuatu pun yang perlu kau raup, dan tidak ada satu pun yang perlu kau dorong pergi. ~ Buddha ~

Offline morpheus

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 2.750
  • Reputasi: 110
  • Ragu pangkal cerah!
Re: [HELP] Programming
« Reply #25 on: 22 December 2010, 09:56:03 AM »
pascal tambah ancur sekarang...
* I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it
* Neo, sooner or later you're going to realize just as I did that there's a difference between knowing the path and walking the path

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #26 on: 22 December 2010, 09:59:01 AM »
pascalnya masih ok, delphi yg mengecewakan

Offline tesla

  • KalyanaMitta
  • *****
  • Posts: 6.426
  • Reputasi: 125
  • Gender: Male
  • bukan di surga atau neraka, hanya di sini
Re: [HELP] Programming
« Reply #27 on: 22 December 2010, 10:00:40 AM »
pascal hancur gmn?
delphi terjun bebas gmn?

... Lazarus itu kan meniru Delphi... kalau Delphi udah uzur, Lazarus ikut?
Lepaskan keserakahan akan kesenangan. Lihatlah bahwa melepaskan dunia adalah kedamaian. Tidak ada sesuatu pun yang perlu kau raup, dan tidak ada satu pun yang perlu kau dorong pergi. ~ Buddha ~

Offline seniya

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 3.469
  • Reputasi: 169
  • Gender: Male
  • Om muni muni mahamuni sakyamuni svaha
Re: [HELP] Programming
« Reply #28 on: 22 December 2010, 12:48:32 PM »
Kenapa Delphi ditinggalkan & Lazarus lbh disukai? Apa aja kelebihan Lazarus dibanding Delphi? Selain masalah lisensi tentunya....

Ane pernah coba Lazurus sekitar 2 th yg lalu,memang sangat mirip dg Delphi,tp wkt itu Lazarus msh baru & msh dlm tahap pengembangan.
"Holmes once said not to allow your judgement to be biased by personal qualities, and emotional qualities are antagonistic to clear reasoning."
~ Shinichi Kudo a.k.a Conan Edogawa

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #29 on: 22 December 2010, 12:55:43 PM »
sebelumnya saya termasuk orang yg fanatik sama delphi.

tapi sekarang trend programming sudah mengarah kepada open source dan cross platform, sedangkan delphi masih nempel sama M$. Delphi XE yg terbaru, juga masih belum mengusung cross platform yg sangat ditunggu2 oleh para delepoper seluruh dunia. hal ini membuat delphi jadi tidak populer. alternatif pengganti delphi adalah lazarus. tapi lazarus tumbuh terlalu lambat, tidak mampu mengejar ketinggalan.

Offline tesla

  • KalyanaMitta
  • *****
  • Posts: 6.426
  • Reputasi: 125
  • Gender: Male
  • bukan di surga atau neraka, hanya di sini
Re: [HELP] Programming
« Reply #30 on: 22 December 2010, 01:19:31 PM »
sebelumnya saya termasuk orang yg fanatik sama delphi.

tapi sekarang trend programming sudah mengarah kepada open source dan cross platform, sedangkan delphi masih nempel sama M$. Delphi XE yg terbaru, juga masih belum mengusung cross platform yg sangat ditunggu2 oleh para delepoper seluruh dunia. hal ini membuat delphi jadi tidak populer. alternatif pengganti delphi adalah lazarus. tapi lazarus tumbuh terlalu lambat, tidak mampu mengejar ketinggalan.

gw suka Delphi karena hasil compilenya stand alone. jadi hasil compiled nya ga tergantung lagi dg library lain --- di platform M$ Windows tentunya.
secara default, semua library yg dibutuhkan ter-static linking dg application binary, yet file & memory usage sizenya masih kecil.
utk Desktop programming, saya cuma ketemu Delphi & sodaranya C Builder, IDE yg begini... cmiiw

skr saya pakai Lazarus karena... (Anda benar) 1. cross platform (tp harus direcompile). 2. IDE nya tidak memakan resource seganas Delphi (Delphi yg support Unicode tentunya... jgn bandingkan dg Delphi 7 ke bawah).
utk Lazarus, ada 1 fitur yg sangat keren menurut saya. yaitu pemilihan widgets utk GUI, programmer ga perlu pusing lagi dg lib2 widgets, tanggung jawab ini menjadi tanggung jawab tools nya (Lazarus). saya suka sekali fitur ini...

utk aplikasi web dan device, kayanya memang bukan bidang Lazarus... malah menurut saya Delphi tidak focus krn merambah ke framework2 microsoft... jadi saya rasa sih Lazarus udah cukup mature dan mungkin akan menjadi tonggak hidupnya Pascal mengambil alih dari tangan Delphi (harapan pribadi jg sih...). jika dilihat dari websitenya, imho perkembangan Lazarus sangat aktif.

tuh lihat... bener kan kata saya... sangat aktif... lari terus, ga capek2 ;D
Lepaskan keserakahan akan kesenangan. Lihatlah bahwa melepaskan dunia adalah kedamaian. Tidak ada sesuatu pun yang perlu kau raup, dan tidak ada satu pun yang perlu kau dorong pergi. ~ Buddha ~

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #31 on: 22 December 2010, 01:23:22 PM »
gw suka Delphi karena hasil compilenya stand alone. jadi hasil compiled nya ga tergantung lagi dg library lain --- di platform M$ Windows tentunya.
secara default, semua library yg dibutuhkan ter-static linking dg application binary, yet file & memory usage sizenya masih kecil.
utk Desktop programming, saya cuma ketemu Delphi & sodaranya C Builder, IDE yg begini... cmiiw

skr saya pakai Lazarus karena... (Anda benar) 1. cross platform (tp harus direcompile). 2. IDE nya tidak memakan resource seganas Delphi (Delphi yg support Unicode tentunya... jgn bandingkan dg Delphi 7 ke bawah).
utk Lazarus, ada 1 fitur yg sangat keren menurut saya. yaitu pemilihan widgets utk GUI, programmer ga perlu pusing lagi dg lib2 widgets, tanggung jawab ini menjadi tanggung jawab tools nya (Lazarus). saya suka sekali fitur ini...

utk aplikasi web dan device, kayanya memang bukan bidang Lazarus... malah menurut saya Delphi tidak focus krn merambah ke framework2 microsoft... jadi saya rasa sih Lazarus udah cukup mature dan mungkin akan menjadi tonggak hidupnya Pascal mengambil alih dari tangan Delphi (harapan pribadi jg sih...). jika dilihat dari websitenya, imho perkembangan Lazarus sangat aktif.

tuh lihat... bener kan kata saya... sangat aktif... lari terus, ga capek2 ;D

saya juga berharap demikian, senangnya kalau bisa terus berbicara dalam bahasa Pascal. bahasa yg sangat estetis menurut saya, tidak seperti bahasa JAWA, walaupun akhirnya saya terpaksa harus berbicara JAWA juga ;D

Offline tesla

  • KalyanaMitta
  • *****
  • Posts: 6.426
  • Reputasi: 125
  • Gender: Male
  • bukan di surga atau neraka, hanya di sini
Re: [HELP] Programming
« Reply #32 on: 22 December 2010, 03:29:31 PM »
saya juga berharap demikian, senangnya kalau bisa terus berbicara dalam bahasa Pascal. bahasa yg sangat estetis menurut saya, tidak seperti bahasa JAWA, walaupun akhirnya saya terpaksa harus berbicara JAWA juga ;D
utk desktop kayanya java (Swing) performance nya loyo deh... suruh nunggu minum kopi dulu utk starting :P
Lepaskan keserakahan akan kesenangan. Lihatlah bahwa melepaskan dunia adalah kedamaian. Tidak ada sesuatu pun yang perlu kau raup, dan tidak ada satu pun yang perlu kau dorong pergi. ~ Buddha ~

Offline morpheus

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 2.750
  • Reputasi: 110
  • Ragu pangkal cerah!
Re: [HELP] Programming
« Reply #33 on: 22 December 2010, 05:07:04 PM »
pascal hancur gmn?
delphi terjun bebas gmn?

... Lazarus itu kan meniru Delphi... kalau Delphi udah uzur, Lazarus ikut?
maksudnya banyak penambahan belakangan seperti reintroduce tadi... kalo sampe bisa override ancestor class berarti mangkin susah ditrace dan dibaca, padahal tujuan utama pascal adalah readability dan diutamakan untuk kalangan akademik yg ingin belajar programming.

pencipta pascal (wirth) pernah mengeluh hal yg sama, setelah pascal ditambahin ini itu sama borland. pascal tidak lagi murni, malah mulai membentuk sekte2 baru dengan penambahan ajaran2 non-otentik ke dalam kitab suci pascalitaka... mungkin ini adalah upaya kausalya.
* I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it
* Neo, sooner or later you're going to realize just as I did that there's a difference between knowing the path and walking the path

Offline tesla

  • KalyanaMitta
  • *****
  • Posts: 6.426
  • Reputasi: 125
  • Gender: Male
  • bukan di surga atau neraka, hanya di sini
Re: [HELP] Programming
« Reply #34 on: 22 December 2010, 05:28:33 PM »
maksudnya banyak penambahan belakangan seperti reintroduce tadi... kalo sampe bisa override ancestor class berarti mangkin susah ditrace dan dibaca, padahal tujuan utama pascal adalah readability dan diutamakan untuk kalangan akademik yg ingin belajar programming.

pencipta pascal (wirth) pernah mengeluh hal yg sama, setelah pascal ditambahin ini itu sama borland. pascal tidak lagi murni, malah mulai membentuk sekte2 baru dengan penambahan ajaran2 non-otentik ke dalam kitab suci pascalitaka... mungkin ini adalah upaya kausalya.


btw saya jadi binggung dg reintroduce ini...
kenapa keyword reintroduce ini perlu?
di C++ ga ada keyword ini, sementara virtual --- override masih sama...
reintroduce ---> tidak perlu keyword karena memang menimpa...

fitur pemanggilan parent method, imo sama sekali tidak diperlukan...
ada yg bisa kasih contoh kegunaannya?



(TParent(child)).doSomething;

atau

(child as TParent).doSomething;

code mana yg benar? & dalam kenyataan, problem apa yg perlu solusi kaya gini...
child class perlu panggil parent class 'dari luar'.
Spoiler: ShowHide

imo, code begini tidak pernah terpanggil... kecuali
Code: [Select]
var holder: ^TParent;

holder :=  [at] achildInstance;
^holder.doSomething;

ini malah akan sebabkan bug :o
« Last Edit: 22 December 2010, 05:38:49 PM by tesla »
Lepaskan keserakahan akan kesenangan. Lihatlah bahwa melepaskan dunia adalah kedamaian. Tidak ada sesuatu pun yang perlu kau raup, dan tidak ada satu pun yang perlu kau dorong pergi. ~ Buddha ~

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #35 on: 22 December 2010, 05:51:28 PM »
mungkin ini bisa sedikit mencerahkan

Quote
Suppose you developed an awesome framework using language X and released it as version 1. Your users raved at all it could do and it became heavily used. Flush with success, you decide to release version 2 with even more awesomeness. You specifically made sure it was fully backward compatible. Suddenly, you users started reporting strange behaviors. Their own virtual methods were being called at strange times. Many reported that their old code would not compile with the new version. Strange. All the same objects, methods, and functionality still remained. All you did was add a few virtual methods to some base classes, some new object types, and some new optional functionality. What happened?

The override and reintroduce directives serve to eliminate this problem by requiring that in order to actually override a virtual method you must use the override directive in place of the virtual directive. If you happen to introduce your own virtual method that has the same name as one of your ancestors' virtual methods, the compiler now warns you, but will still do the right thing. In this case, using reintroduce, not only suppresses that warning, it also serves to document in the source you intended to do that.

Without the override and reintroduce directives, you would not be able to continually evolve your framework without fear of breaking all your users. And if your users had to make massive modifications every time a new version is released, then they would be loathe to adopt the new version. Finally, using "override" also allows the framework designer to change the type of virtual in the ancestors without breaking user code. For instance, in Delphi many methods are marked "dynamic" which is a table-based runtime method lookup form of polymorphism. It's doesn't perform quite as fast as a regular virtual so it is usually used for methods that are rarely overridden and/or are responses to user actions where the extra overhead is never noticed. Suppose in V1 of the framework a method was marked "dynamic" but in practice it ended up being overridden and called more than you intended. In V2, you could change it to "virtual" without fear of user's code being broken.

Delphi's Object Pascal language isn't the only language to recognize this problem. C# requires the use of an "override" directive for the exact same reason. The C++ standards committee is finally recognizing the problem and are modifying the language to support it... sort of. In C++, if a method's name and parameter list matches an ancestor's virtual, then it is an override (even if you don't say "virtual" on the descendant!). For the upcoming new C++ standard, if you specify "virtual" and the signatures don't match then it is a new virtual method introduced on current class. If there is a signature match with the ancestor and the writer didn't intend to override, then the "new" keyword is used to tell the compiler that this is a new virtual for this class.

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #36 on: 22 December 2010, 05:53:29 PM »
dan ini

Quote
If you declare a method in a descendant class that has the same name as a method in an ancestor class then you are hiding that ancestor method - meaning if you have an instance of that descendant class (that is referenced as that class) then you will not get the behavior of the ancestor. The compiler will give you a warning.

Now you have one of two choices to suppress that warning message:

Adding the keyword reintroduce just lets the compiler know you are hiding that method and it suppresses the warning. You can still use the inherited keyword within your implementation of that descended method to call the ancestor method.
If the ancestor's method was virtual or dynamic then you can use override. It has the added behavior that if this descendant class is cast back as the ancestor, then the call to that method will always be to the descendant method (which then may optionally call the ancestor through inherited).
So difference between override and reintroduce is in polymorphism. With reintroduce, if you cast the descendant class as the parent, then call that method you will get the ancestor method, but if you have it cast as the descendant method then you will get the behavior of the descendant. With override you always get the descendant If the ancestor method was neither virtual nor dynamic, then reintroduce is your only option (actually you could use a class helper, but we won't go there now).

In spite of what Malach said, you can still call inherited on a reintroduced method, even if the parent was neither virtual nor dynamic.

Essentially reintroduce is just like override, but it works with non-dynamic and non-virtual methods, and it does not replace the behavior if the object instance is cast back as the ancestor.

Further Explanation:

Reintroduce is a way of communicating intent to the compiler that you did not make an error. The traditional way of overriding a method in an ancestor is with the override keyword, but it requires that the ancestor method was virtual or dynamic, and that you want the behavior to change when the class is cast as the ancestor class. Now enter finalize. It lets you tell the compiler that you did not accidentally create a method with the same name as an ancestor method (which would be annoying if the compiler didn't warn you about) and this allows you to override a method that is not virtual or dynamic or if you don't want the behavior changed when the class is cast as the ancestor.

Offline seniya

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 3.469
  • Reputasi: 169
  • Gender: Male
  • Om muni muni mahamuni sakyamuni svaha
Re: [HELP] Programming
« Reply #37 on: 22 December 2010, 07:14:31 PM »
sebelumnya saya termasuk orang yg fanatik sama delphi.

tapi sekarang trend programming sudah mengarah kepada open source dan cross platform, sedangkan delphi masih nempel sama M$. Delphi XE yg terbaru, juga masih belum mengusung cross platform yg sangat ditunggu2 oleh para delepoper seluruh dunia. hal ini membuat delphi jadi tidak populer. alternatif pengganti delphi adalah lazarus. tapi lazarus tumbuh terlalu lambat, tidak mampu mengejar ketinggalan.

Bukannya ada Kylix, versi cross platform dari Delphi????
"Holmes once said not to allow your judgement to be biased by personal qualities, and emotional qualities are antagonistic to clear reasoning."
~ Shinichi Kudo a.k.a Conan Edogawa

Offline Indra

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 14.819
  • Reputasi: 451
  • Gender: Male
Re: [HELP] Programming
« Reply #38 on: 22 December 2010, 07:33:57 PM »
Bukannya ada Kylix, versi cross platform dari Delphi????

Kylix udah lama tewas, dibunuh sama penciptanya sendiri

Offline morpheus

  • Global Moderator
  • KalyanaMitta
  • *****
  • Posts: 2.750
  • Reputasi: 110
  • Ragu pangkal cerah!
Re: [HELP] Programming
« Reply #39 on: 22 December 2010, 11:04:46 PM »
Essentially reintroduce is just like override, but it works with non-dynamic and non-virtual methods, and it does not replace the behavior if the object instance is cast back as the ancestor.
oh, kirain mengganti code yg ada di parent ala ruby.

kalo yg ruby itu konon not recommended oleh pakar oop dan software engineering:
http://en.wikipedia.org/wiki/Open/closed_principle
tapi pernah juga kepepet pake.
* I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it
* Neo, sooner or later you're going to realize just as I did that there's a difference between knowing the path and walking the path

Offline tesla

  • KalyanaMitta
  • *****
  • Posts: 6.426
  • Reputasi: 125
  • Gender: Male
  • bukan di surga atau neraka, hanya di sini
Re: [HELP] Programming
« Reply #40 on: 27 December 2010, 06:13:27 PM »
btw di Lazarus

TTimer kok sepertinya ada bug
Enabled := False; Enabled := True; (maksudnya di off kan sementara, kemudian di On kan)

di cek enabled nya udah jadi true, tapi onTimer nya ga ter eksekusi
Lepaskan keserakahan akan kesenangan. Lihatlah bahwa melepaskan dunia adalah kedamaian. Tidak ada sesuatu pun yang perlu kau raup, dan tidak ada satu pun yang perlu kau dorong pergi. ~ Buddha ~