Delphi for delphier

Buat tinggi Item Listbox berbeda

Eko IndriyawanPernah kebayang tidak temen-temen, kalau kita bisa membuat tinggi items didalam Listbox itu bisa berbeda-beda.

Saya menemukan tips ini ketika mentok mau nulis tips dan trik apa lagi, akhirnya saya ambil object Listbox dan saya otak-atik event-event yang dimiliki serta beberapa properties yang ada, yang mana event dan properties itu selama ini jarang sekali saya gunakan, eh ternyata dari situ malah dapat ide untuk buat tips n trik lagi.

Intinya kita bisa mendesain data item yang ada didalam Listbox itu memiliki tinggi yang berbeda-beda…

Pertanyaannya adalah “Bisakah anda melakukannya untuk DBGrid ?”, namun untuk sementara tidak perlu berpikiran sejauh itu, mari kita bahas dari yang paling mudah dulu saja.

Baiklah, sekarang kita kembali ke pokok permasalahan

Kita akan membahas mengenai bagaimana cara-nya kita bisa membuat item-item didalam Listbox itu memiliki tinggi item yang berbeda-beda.

Mungkin barang kali untuk sementara ini saya belum tahu ide ini mau diterapkan untuk apa, tapi suatu saat nanti bisa jadi tips atau trik ini akan berguna sekali. Tapi tidak ada salahnya jika temen-temen terutama yang masih menjadi programmer baru silahkan anda memperbanyak wawasan anda dalam belajar bahasa pemrograman Delphi.

Sekarang silahkan anda ikuti petunjuk yang diberikan dari langkah demi langkah dengan bahasa yang mudah untuk dipahami dan dimengerti.

langsung saja silahkan anda lakukan proses berikut ini :

    • Silahkan anda buka program delphi anda
    • Buat program aplikasi baru, beri nama Project1
    • Silahkan anda ambil object-object seperti disebutkan dibawah ini:

    – Listbox1
    – Edit1
    – Button1

      • Kemudian atur desainnnya seperti terlihat pada desain form berikut ini.

        ….
        ….
        object Form1: TForm1
        Left = 305
        Top = 94
        Width = 405
        Height = 425
        Caption = ‘www.Benpinter.net by Eko Indriyawan’
        Color = clBtnFace
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -11
        Font.Name = ‘MS Sans Serif’
        Font.Style = []
        OldCreateOrder = False
        PixelsPerInch = 96
        TextHeight = 13
        object ListBox1: TListBox
        Left = 8
        Top = 16
        Width = 377
        Height = 313
        Style = lbOwnerDrawVariable
        ItemHeight = 16
        TabOrder = 0
        end
        object Button1: TButton
        Left = 8
        Top = 360
        Width = 75
        Height = 25
        Caption = ‘Button1’
        TabOrder = 1
        OnClick = Button1Click
        end
        object Edit1: TEdit
        Left = 8
        Top = 336
        Width = 377
        Height = 21
        TabOrder = 2
        Text = ‘Edit1’
        end
        end

        // Berdasarkan kode desain form diatas, terlihat bahwa pada object Listbox1 untuk properties “Style”-nya diisi
        // dengan nilai “lbOwnerDrawVariable”
        // Artinya Listbox itu ketika membuat item, didesain secara costumize yang dikontrol dari event yang salah satunya
        // adalah event “OnMeasureItem”
        ….
        ….

        • Jika anda sudah mendesain seperti terlihat pada kode desain form diatas, silahkan anda pilih object Button1
        • Klik 2x object Button1
        • Isikan kode program didalamnya dengan kode program seperti terlihat pada potongan kode program dibawah ini:

        ….
        ….
        procedure TForm1.Button1Click(Sender: TObject);
        begin

        with ListBox1 do
        with Items do
        Add(edit1.Text);

        end;
        ….
        ….

        • Jika sudah selesai anda tuliskan, silahkan anda lanjutkan dengan memilih object Listbox1
        • Tampilkan object inspectornya
        • Pilih tab Events
        • Pilih event OnMeasureItem
        • Klik 2x event tersebut, hingga terbentuk prosedur.
        • Isikan didalam prosedur itu dengan kode program seperti terlihat pada potongan kode program dibawah ini.

        ….
        ….
        procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;var Height: Integer);
        begin

        tag := tag + 1;

        if tag mod 2 = 0 then
        Height := 50
        else
        Height := 20;

        end;

        // Dari penjelasan kode program diatas dapat disimpulkan bahwa setiap terjadi ada pembuatan Items
        // property Tag selalu di-counter dengan increment 1
        // Dari Nilai Tag yang di dapatkan kemudian di mod, jika hasilnya nol maka tinggi Item akan 50
        // Namun apabila tidak sama dengan nol, tinggi item sama dengan 20
        ….
        ….

        • Sekarang silahkan anda lanjutkan dengan meng-compile dan jalankan program aplikasinya
        • Silahkan anda ketikkan kata sembarang kedalam Edit1Jika sudah selesai, silahkan anda tekan tombol Button1
        • Apabila proses tersebut berhasil, maka secara langsung data yang anda ketikkan didalam Edit1 tadi akan dimasukkan kedalam Listbox dengan tinggi sesuai dengan validasi yang telah ditentukan pada event OnMeasureItem
        • Gimana temen-temen mudah bukan, jadi tidak ada yang susah kan hingga saat ini…

         

        untuk download contoh program, silahkan klik disini

        Semoga artikel kali ini bisa bermanfaat dan berguna bagi generasi bangsa Indonesia

        Iklan

        Blog di WordPress.com.

        %d blogger menyukai ini: