Home » Delphi » Mengganti Ikon Suatu Folder

Mengganti Ikon Suatu Folder

Print Friendly



Teraplikasi pada: Delphi 3 ke atas, Win 2000, XP, di atasnya.

Tampilan Icon Folder
Sebuah folder yang secara default memiliki ikon berwarna kuning. Tampilan default ini sangat bermanfaat untuk membedakan folder dari objek-objek lainnya. Namun saat Anda telah memiliki banyak folder, misalnya folder-folder koleksi album lagu, kemungkinnan Anda repot mencari Rod Steward di antara Inul Daratista, Iyeth Bustami dan Mandy Moore. Dalam kondisi seperti inilah manfaat ikon unik per folder jadi sangat membantu. Anggap Anda sudah mengganti icon folder Rod Stewart tadi dengan sebuah foto Rod Stewart yang telah dikonversi menjadi ikon. Sekali tatap saja Anda sudah menemukan folder Album Rod Stewart.

Sekarang, bagaimana mengganti ikon folder ini?

Dengan software-software yang ada saat ini, mengganti ikon folder jadi sangat mudah. Icon Packager dapat melakukannya dengan baik. Sayang Icon Packager mengganti ikon secara keseluruhan, tidak spesifik per folder. Folder Option yang ada di Win 2000 ke atas juga bisa, tapi tidak ada opsi batch (banyak folder sekaligus) dan juga tidak ada opsi rekursi, bila Anda ganti ikon satu folder, folder-folder di dalamnya dan di dalamnya lagi akan terganti ikonnya.

Anda mungkin sudah menemukan software di jagad Net yang bisa memenuhi kebutuhan ini. Tapi jujur saja, untuk saya peribadi, TANGAN SAYA GATAL UNTUK MEMBUATNYA SENDIRI, SELAGI KEKASIHKU DELPHI ADA DI SISIKU MENEMANI.Dengan menambahkan nama saya di caption form “Created by JokoRB”, alamat blog saya di kiri bawa form – dan apa lagi – dan ya, foto saya yang ganteng :-) di kotak About, bukankah akan lebih hebat dan memuaskan untuk dipake?

Untuk mengubahnya, kita tinggal modifikasi file Desktop.ini di folder yang akan diubah ikonnya, atau membuatnya jika belum ada. Isi file Desktop.ini untuk menangani ikon sebuah folder kira-kira seperti ini:

[.ShellClassInfo]
IconFile=D:reevIconCNFNOT.ICO
IconIndex=0

Di mana IconFile menunjukkan file ikon yang akan digunakan, dan IconIndex menunjukkan urutan ikon dalam file ikon tersebut. Dengan menggunakan Method WriteString dan WriteInteger dari kelas TIniFile, semuanya jadi mudah, bukan?

Selanjutnya, tinggal kodenya di Delphi:


procedure TForm1.Button3Click(Sender: TObject);

var

folder, icon, desktop: String;

begin

folder:=Edit1.text;

icon:=edit2.text;

if not DirectoryExists(folder) then

begin

ShowMessage('Folder tidak ditemukan.');

Exit;

end;

icon:=Edit2.text;

if (not FileExists(icon))

or

(not (lowercase(ExtractFileExt(icon))='.ico')) then

begin

ShowMessage('File icon tidak valid.');

Exit;

end;

if folder[length(Folder)]<>'' then

Desktop:=Folder + 'Desktop.ini'

else

Desktop:=Folder + 'Desktop.ini';

if fileExists(Desktop) then DeleteFile(Desktop);

With TIniFile.Create(Desktop) do

   begin

WriteString('.ShellClassInfo','IconFile',icon);

WriteInteger('.ShellClassInfo','IconIndex',0);

Free;

end;

SetFileAttributes(pchar(Desktop), 34);

SetFileAttributes(pchar(Folder), FILE_ATTRIBUTE_SYSTEM);

ShowMessage('Selesai.');

end;

Hanya itu? Ya, hanya ituScreen Shot

untitled.jpg
Folder Delph3i sebelum diganti ikonnya.

selesai.jpg
Proses penggantian ikon.

hasil.jpg
Folder Delph3i setelah diganti ikonnya.
Download
Download kode, EXE dan Screen Shot
(setelah download, ubah ekstensi ke .zip dan scan dulu sebelum dijalankan).

google_tag: jokorb, folder icon, delphi


Incoming search terms:

 

Comments

comments

Powered by Facebook Comments

18 Responses to Mengganti Ikon Suatu Folder

  1. untuk flashdisk apakah trik ini bisa dipakai? mengigat drive letternya bisa berubah-ubah

       New Post

  2. Tentu saja bisa. Asalkan file ikon yang akan dipakai dikopi dulu ke flashdisk tsb:

    Silahkan ubah kode

    if fileExists(Desktop) then DeleteFile(Desktop);  
    

    Menjadi

    if fileExists(Desktop) then DeleteFile(Desktop);  
    CopyFile(PChar(Icon), PChar(ChangeFileExt(Desktop, '.ico')), False);
    Icon:=ChangeFileExt(Desktop, '.ico');
    SetFileAttributes(PChar(Icon), 34);
    

    Selamat mencoba! :-)

       New Post

  3. waduh gw awam nich, bisa diurutin ga caranya, coz gw pusing amat harus mulai dari mana n gambarnya apa harus dirubah dulu jadi *.ico apa *.jpg bisa lngsung digunakan?
    apa program delphi harus ada untuk bisa melakukan trik ini?cos gw ga punya programn n ga ada komputer cm flashdisk
    thanks

       New Post

  4. Tentu saja harus *.ico, *.jpg kaga’ bisa.

    Delphi hanya dipake untuk kompilasi saja. File EXE hasil kompilasi bisa dijalankan di semua Windows mulai 2000 ke atas, meskipun tanpa Delphi terinstall di sana.

    Sebagai referensi, silahkan cek FolderCustmizer di sini.

       New Post

  5. Wah, ane juga baru bkin software kya gnian.. kok kita sama ya, bro..? Jgn2 qt dlunya kembar gantet..?

    Visit me @ http://www.friendster.com/electricow

       New Post

  6. Bro, aq udah bkin desktop.ini kya’ yg ente ajarin, tp ikonna te2p kga brubah, knp y..?

    Kbtulan ane jg bkin pke program ane ndiri, ntar ane kirimin lewat email aj gmn..? please check it out fer me, where’s the fault, ok..?

    Sbg ilustrasi, ane pke sebuah form dmn ad memo1, ntar skrip desktop.ini nya ane append di situ, trus ane SaveToFile sbg desktop.ini di folder target, tapi te2p kga bisa jg, knp..? why..? Doushite..? Pdhl skripnya udh bnr..

    Trus ane pke FolderCustomizer, lgsg bisa, pdhl skripnya sama.. emg salah dimana ya..?

       New Post

  7. Oia, bro,

    aq mw bkin program yg bkalan berurusan sama registry, tp aq nggak tw caranya bwt bs nulis DWORD Value disitu..

    Aq udh bs klo cm nulis string di registry, tp klo DWORD..? Rencananya bwt manipulasi registry gt.. dlu aq udh pernah bkin dgn manfaatin menu advanced options di internet explorer, klo gak di folder options dgn nambahin submenu baru di treeviewnya.. kali ini aq mw bkin yg bnr2 beda, tp gak tw cara nulis DWORD pake delphi ke registry..

    Mohon wangsitnya, mbah.. wkwkwk =)

       New Post

  8. Oia, satu lagi,

    Klo aq nulis string ke registry, gmn caranya biar aq bs ngubah nilai dari data (Deafult) di sebuah subkey..? Bwingung bgt dah..

    Kya’na ane bkl sering2 mampir nih ksni, wuehehe.. =)

    Salam kenal dari Crush_Station Corp.!

       New Post

  9. Oia, ane baru hr ini signup, bsk2 klo udh jadi qt sering2 discuss gt, ok..?

       New Post

    • Bro, aq udah bkin desktop.ini kya’ yg ente ajarin, tp ikonna te2p kga brubah, knp y..?
      Bro, pasti ada yang Anda lupa….
      Doushite..? Pdhl skripnya udh bnr..
      What the hell???
      Download saja contoh saya yang saya berikan di atas dan silahkan ujicoba.
      Trus ane pke FolderCustomizer, lgsg bisa, pdhl skripnya sama.. emg salah dimana ya..?
      Seperti di atas, Anda pasti lupa sesuatu…
      Aq udh bs klo cm nulis string di registry, tp klo DWORD..?

      var r: Tregistry;
      ......
      //kalau string pake r.WriteString(nama, value);
      r.WriteInteger('contohDword',NilaiDword);
      .....
      

      Klo aq nulis string ke registry, gmn caranya biar aq bs ngubah nilai dari data (Deafult) di sebuah subkey..? Bwingung bgt dah..

      r.WriteString(nama, value);
      //nama dikosongkan untuk menulis nilai default
      //sebuah key, misalnya:
      r.WriteString('','Open With Notepad');
      

      Semoga membantu… :-)

         New Post

  10. Hhehehehehehe..

    Udah bisa.. =) Ternyata atributna diganti ya? Kesalahanq kmrn aq cm generate desktop.ini tanpa ganti atributnya, he2.. sankyuu

    Oia, nanya lagi..

    Gimana caranya convert dari TColor jadi format heksa 0xFFFFFF dengan FFFFFF adl kombinasi RGB dari ColorDialog..

    Matur nuwun..

       New Post

    • Sudah coba ubah ke hexa pake IntToHex()?

      var
        r,g,b:byte;
        col:TColor;
        sR, SG, SB: String;
        ResHex:String;
      //............................
      col:=ColorDialog1.Color;
      r:=GetRValue(col);
      G:=GetGValue(col);
      B:=GetBValue(col);
      sR:=IntToHex(r, 2);
      sG:=IntToHex(g, 2);
      sB:=IntToHex(b, 2);
      RexHex:='$'+sR+sG+sB;
      //......................
      

      Semoga membantu :-)

         New Post

  11. Please leave a comment here at my blog

    http://narukami-lonewolf.blogspot.com

       New Post

  12. Wow, shoulda try it.

    Btw, RexHex ap ResHex..?

       New Post

  13. Maksdudnya ResHex. Mas juga, udah tau nannya. Thx koreksinya :-)

       New Post

  14. Bro, aq mw usul ni,

    gmn klo dbuat posting ttg internal windows command?

    Mslhna aq kdg2 bingung jg klo misalna mw munculin dialog “change shortcut icon”. Gmn?

       New Post

    • Bpleh, tapi belum ada waktu ini. Nanti deh, saya banyak utang posting sama komentator nih. Kalau ada waktu ntra ta’ posting.

         New Post

  15. Izin Copy, Paste, Edit and Download….

    Good…

       New Post

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>