22 April, 2013

FormatDateTime pemrograman Delphi

ini sekedar catatan saya jika lupa syntax hehe...

Example code : Showing all of the date field formatting data types
var
  myDate : TDateTime;

begin
  // Set up our TDateTime variable with a full date and time :
  // 5th of June 2000 at 01:02:03.004  (.004 milli-seconds)
  myDate := EncodeDateTime(2000, 6, 5, 1, 2, 3, 4);

  // Date only - numeric values with no leading zeroes (except year)
  ShowMessage('              d/m/y = '+
              FormatDateTime('d/m/y', myDate));

  // Date only - numeric values with leading zeroes
  ShowMessage('           dd/mm/yy = '+
              FormatDateTime('dd/mm/yy', myDate));

  // Use short names for the day, month, and add freeform text ('of')
  ShowMessage('  ddd d of mmm yyyy = '+
              FormatDateTime('ddd d of mmm yyyy', myDate));

  // Use long names for the day and month
  ShowMessage('dddd d of mmmm yyyy = '+
              FormatDateTime('dddd d of mmmm yyyy', myDate));

  // Use the ShortDateFormat settings only
  ShowMessage('              ddddd = '+
              FormatDateTime('ddddd', myDate));

  // Use the LongDateFormat settings only
  ShowMessage('             dddddd = '+
              FormatDateTime('dddddd', myDate));

  // Use the ShortDateFormat + LongTimeFormat settings
  ShowMessage('                  c = '+
              FormatDateTime('c', myDate));
end;
Show full unit code
                 d/m/y = 5/6/00
              dd/mm/yy = 05/06/00
     ddd d of mmm yyyy = Mon 5 of Jun 2000
   dddd d of mmmm yyyy = Monday 5 of June 2000
                 ddddd = 05/06/2000
                dddddd = 05 June 2000
                     c = 05/06/2000 01:02:03
 
Example code : Showing all of the time field formatting data types
var
  myDate : TDateTime;

begin
  // Set up our TDateTime variable with a full date and time :
  // 5th of June 2000 at 01:02:03.004  (.004 milli-seconds)
  myDate := EncodeDateTime(2000, 6, 5, 1, 2, 3, 4);

  // Time only - numeric values with no leading zeroes
  ShowMessage('     h:n:s.z = '+FormatDateTime('h:n:s.z', myDate));

  // Time only - numeric values with leading zeroes
  ShowMessage('hh:nn:ss.zzz = '+FormatDateTime('hh:nn:ss.zzz', myDate));

  // Use the ShortTimeFormat settings only
  ShowMessage('           t = '+FormatDateTime('t', myDate));

  // Use the LongTimeFormat settings only
  ShowMessage('          tt = '+FormatDateTime('tt', myDate));

  // Use the ShortDateFormat + LongTimeFormat settings
  ShowMessage('           c = '+FormatDateTime('c', myDate));
end;
Show full unit code
        h:m:s.z = 1:2:3.4
   hh:mm:ss.zzz = 01:02:03.004
              t = 01:02
             tt = 01:02:03
              c = 05/06/2000 01:02:03
 
Example code : Showing the effect of local date format settings
var
  myDate : TDateTime;

begin
  // Set up our TDateTime variable with a full date and time :
  // 5th of June 2049 at 01:02:03.004  (.004 milli-seconds)
  //
  // Note that 49 is treated as 2049 as follows :
  //               TwoDigitYearCenturyWindow => 50
  //                            Current year => 2008 (at time of writing)
  //      Subtract TwoDigitYearCenturyWindow => 1958
  //            2 digit year to be converted => 49
  //  Compare with the last 2 digits of 1958 => Less
  //      So the year is in the next century => 2049
  // (58 would be converted to 1958)

  myDate := StrToDateTime('05/06/49 01:02:03.004');

  // Demonstrate default locale settings

  // Use the DateSeparator and TimeSeparator values
  ShowMessage('dd/mm/yy hh:nn:ss = '+
              FormatDateTime('dd/mm/yy hh:nn:ss', myDate));

  // Use ShortMonthNames
  ShowMessage('              mmm = '+FormatDateTime('mmm', myDate));

  // Use LongMonthNames
  ShowMessage('             mmmm = '+FormatDateTime('mmmm', myDate));

  // Use ShortDayNames
  ShowMessage('              ddd = '+FormatDateTime('ddd', myDate));

  // Use LongDayNames
  ShowMessage('             dddd = '+FormatDateTime('dddd', myDate));

  // Use the ShortDateFormat string
  ShowMessage('            ddddd = '+FormatDateTime('ddddd', myDate));

  // Use the LongDateFormat string
  ShowMessage('           dddddd = '+FormatDateTime('dddddd', myDate));

  // Use the TimeAmString
  ShowMessage('           hhampm = '+FormatDateTime('hhampm', myDate));

  // Use the ShortTimeFormat string
  ShowMessage('                t = '+FormatDateTime('t', myDate));

  // Use the LongTimeFormat string
  ShowMessage('               tt = '+FormatDateTime('tt', myDate));

  // Use the TwoDigitCenturyWindow
  ShowMessage('       dd/mm/yyyy = '+
              FormatDateTime('dd/mm/yyyy', myDate));

  ShowMessage('');

  // Now change the defaults
  DateSeparator      := '-';
  TimeSeparator      := '_';
  ShortDateFormat    := 'dd/mmm/yy';
  LongDateFormat     := 'dddd dd of mmmm of yyyy';
  TimeAMString       := 'morning';
  TimePMString       := 'afternoon';
  ShortTimeFormat    := 'hh:nn:ss';
  LongTimeFormat     := 'hh : nn : ss . zzz';
  ShortMonthNames[6] := 'JUN';
  LongMonthNames[6]  := 'JUNE';
  ShortDayNames[1]   := 'SUN';
  LongDayNames[1]    := 'SUNDAY';
  TwoDigitYearCenturyWindow := 75; // This means 49 is treated as 1949

  // Set up our TDateTime variable with the same value as before
  // except that we must use the new date and time separators
  // The TwoDigitYearCenturyWindow variable only takes effect here
  myDate := StrToDateTime('09-02-49 01_02_03.004');

  // Use the DateSeparator and TimeSeparator values
  ShowMessage('dd/mm/yy hh:nn:ss = '+
              FormatDateTime('dd/mm/yy hh:nn:ss', myDate));

  // Use ShortMonthNames
  ShowMessage('              mmm = '+FormatDateTime('mmm', myDate));

  // Use LongMonthNames
  ShowMessage('             mmmm = '+FormatDateTime('mmmm', myDate));

  // Use ShortDayNames
  ShowMessage('              ddd = '+FormatDateTime('ddd', myDate));

  // Use LongDayNames
  ShowMessage('             dddd = '+FormatDateTime('dddd', myDate));

  // Use the ShortDateFormat string
  ShowMessage('            ddddd = '+FormatDateTime('ddddd', myDate));

  // Use the LongDateFormat string
  ShowMessage('           dddddd = '+FormatDateTime('dddddd', myDate));

  // Use the TimeAmString
  ShowMessage('           hhampm = '+FormatDateTime('hhampm', myDate));

  // Use the ShortTimeFormat string
  ShowMessage('                t = '+FormatDateTime('t', myDate));

  // Use the LongTimeFormat string
  ShowMessage('               tt = '+FormatDateTime('tt', myDate));

  // Use the TwoDigitCenturyWindow
  ShowMessage('       dd/mm/yyyy = '+
              FormatDateTime('dd/mm/yyyy', myDate));
end;
Show full unit code
   dd/mm/yy hh:mm:ss = 05/06/49 01:02:03
                 mmm = Jun
                mmmm = June
                 ddd = Sat
                dddd = Saturday
               ddddd = 05/06/2049
              dddddd = 05 June 2049
              hhampm = 01AM
                   t = 01:02
                  tt = 01:02:03
          dd/mm/yyyy = 05/06/2049
 
   dd/mm/yy hh:nn:ss = 05-06-49 01_02_03
                 mmm = JUN
                mmmm = JUNE
                 ddd = SUN
                dddd = SUNDAY
               ddddd = 05-JUN-49
              dddddd = SUNDAY 05 of JUNE of 1949
              hhampm = 01morning
                   t = 01_02_03
                  tt = 01 _ 02 _ 03 . 004
          dd/mm/yyyy = 05-06-1949
 


Source : www.delphibasics.co.uk

17 April, 2013

Handling errors / Penanganan Kesalahan di Delphi

Delphi menggunakan pendekatan event handling untuk penanganan error. Kesalahan adalah (kebanyakan) dianggap sebagai pengecualian, yang menyebabkan pengoperasian program untuk menunda dan melompat ke handler pengecualian terdekat. Jika kita tidak memiliki satu, ini akan menjadi default handler Delphi yang akan melaporkan kesalahan dan menghentikan program.


Try, except dimana masalah berada

Delphi menyediakan hanya membangun untuk membungkus kode dengan penanganan exception. Ketika pengecualian terjadi dalam kode terbungkus (atau apa pun itu panggilan), kode tersebut akan melompat ke exception handling bagian dari kode pembungkus:


begin
Try
...
The code we want to execute
...
Except
...
This code gets executed if an exception occurs in the above block
...
end;
end;


kita mencoba untuk mengeksekusi beberapa kode, yang akan berjalan kecuali jika kesalahan (pengecualian) terjadi. Kemudian kode kecuali akan mengambil alih.


Mari kita lihat contoh sederhana di mana kita sengaja membagi angka dengan nol:


var
number1, number0 : Integer;
begin
try
number0 := 0;
number1 := 1;
number1 := number1 div number0;
ShowMessage('1 / 0 = '+IntToStr(number1));
except
on E : Exception do
begin
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
end;
end;
end;


Ketika pembagian gagal, kode melompat ke blok statement Exception . Pernyataan ShowMessage pertama sehingga tidak bisa dijalankan.


apa yangh terjadi ketika proses debugging


Perhatikan bahwa ketika Anda kode debug kita dalam Delphi, Delphi akan pengecualian perangkap bahkan jika kita memiliki exception handling. kita kemudian harus mengklik OK pada dialog kesalahan, lalu tekan F9 atau panah hijau untuk meneruskan statement exeception . kita bisa menghindari ini dengan mengubah pilihan debug.


And finally …


Misalkan bukannya menjebak kesalahan statement itu terjadi, kita mungkin ingin membiarkan tingkat pengecualian penangan yang lebih tinggi dalam kode kita untuk melakukan perangkap lebih global.


Delphi menyediakan bagian alternatif untuk pembungkus exception Akhirnya. Bukannya dipanggil ketika pengecualian terjadi, klausa akhirnya selalu disebut setelah sebagian atau semua statement coba dijalankan. Hal ini memungkinkan kita untuk membebaskan memori yang dialokasikan, atau kegiatan sejenis lainnya. Namun, tidak perangkap kesalahan – penanganan exception tertinggi berikutnya (Try) blok yang bersarang telah di alokasikan dan dieksekusi.






Sumber : readoneit.wordpress.com

16 April, 2013

Hardiskku yang malang habis terjatuh dari lemari baju.

Dari judulnya sangat menyeramkan hahahaha.
tapi memang menyeramkan, setelah hardisk seagate ku terjatuh
dia mati !!! gak bergerak ( berputar maksudnya ) dibios gak kedetect.
external apa lagi. setelah beberapa abad berlalu ....
muncul lah niat untuk mengetahui, ngapain aja sih isinya hardisk kwkwkwkw...
dan dibedah lah sang hardisk mati tadi...
(maaf gambarnya belum di upload. nanti ya kalau sempat hahahha... )

setelah dibedah, dan dikeluarkan isinya. ( lebay dikit hahaha )
di ketuk-ketuk, dicolok lagi powernya. zzzzhhhh zzzzhhhh wah bunyi apa itu ?
jangan-jangan ada jin-nya hahhaha.

mungkin faktor hoki ato apa heatnya aq geser saat powernya nyala, wuzz wuzz wuzz... wah headnya pindah ke track awal. dan piringannya berputar kembali :D horeee...

pengalaman hari ini sangat mengesankan hehehhe.... jadi ini hanya coretan saya. jika tidak berkenan silahkan lewati postingan ini hahaha :D

yang jelas hari ini saya senang. wkkwk

Mengambil Tabel Dari web tertentu menggunakan google spreadsheed.

OK, Pertama Kalian Harus memiliki akun google. kalau tidak punya silahkan buat.
Siapkan link website yang ingin di ambil tabelnya. contoh saya adalah http://www.atlantica-db.com/mercenary/melee .

Langkah Selanjutnya Melangkah Ke Google Drive.
- Pilih Create.
- Pilih Spreadsheet.
- sorot pada cell a1.
- ketik atau paste link =ImportHtml("http://www.atlantica-db.com/mercenary/melee","table",1)
fungsi ImportHtml(url,query,index)

untuk menyimpan ke drive lokal anda tinggal pilih File > Download as...
pilih sesuai kebutuhan anda.

wala, tabel sukses tercopy. hahaha. semoga bermanfaat.

Google Drive Mempermudah Berbagi file

Rasanya kebutuhan untuk berbagi file itu sangat penting apa lagi saat ini jarak merupakan salah satu penghalang yg nyata. nah google drive adalah solusinya. tidak perlu berjalan ke rumah teman untuk mengcopy file. tinggal di taruh di folder google drive, sync ( google drive akan mensinkronkan file di lokal disk ke disk di google ) jika di temukan file baru, akan di upload secara otomatis. mudah kan ? tidak perlu lagi masuk ke halaman upload haha. mari kunjungi halaman google drive disini.

15 April, 2013

Aplikasi Ping dengan Log File

Silahkan Langsung ~ download

File > Unduh atau CTRL + S.

QuickReport borland delphi 7

Setelah browsing-browsing ternyata susah juga cari tutorial pembuatan laporan menggunakan Quickreport.
langsung aja ya, ternyata borland delphi sudah menyediakan demo / contoh quickreport di folder installasi di komputer saya berada di C:\Program Files\Borland\Delphi7\Demos\Quickrpt.


QReport_Readme.txt
The Quick Reports package is not installed in the IDE by default. To run
these demos you must first install dclqrt70.bpl.

To install, go to the IDE menu and select the "Component" menu item. From there,
select "Install Packages". In the dialog select the "Add" button and then browse
to the \bin directory of Delphi (default location is 
c:\Program Files\Borland\Delphi7\bin). Select the file named dclqrt70.bpl.

The QuickReport pacakge is now installed and you can run the example programs.



mungkin agak berbeda lokasi di komputer pembaca, jadi sesuaikan dengan folder installasi delphinya.
sekian. semoga bermanfaat.