Sunday, March 31, 2013

Menghilangkan Ritual Mode Compatibility - VB6 Tips

Sebuah aplikasi yang dibuat dengan VB6 seringkali tidak kompatibel dengan OS yang berada di atas XP, akhirnya user harus melakukan kegiatan ritual rutinan pada saat pertama kali menjalankan aplikasi exe tersebut. Adapun rutinan yang dimaksud adalah sebagai berikut:

  1. Klik kanan di icon exe program tersebut.
  2. Pilih Properties
  3. Kemudian klik pada tab Compatibility
  4. Anda dapat memilih atau bisa juga tidak di tombol Change settings for all users
  5. Berikan tanpa centang di Run this program in compatibility mode for
  6. Di dalam menu drop-down pilih sistem operasi yang sesuai
  7. Klik tombol Apply dan OK

Nah, agar user tidak direpotkan dengan kegiatan di atas, lebih baik Anda sisipkan saja beberapa script untuk memasukan beberapa nilai pada registry, di bawah adalah contohnya (InnoSetup Installer):

Scrip Inno sebelumnya....
[Registry]
Root: HKCU; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueType: String; ValueName:"{app}\AplikasiAnda.exe"; ValueData: "WINXP"; Flags: Uninsdeletekey
Root: HKLM; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueType: String; ValueName:"{app}\AplikasiAnda.exe"; ValueData: "WINXP"; Flags: Uninsdeletekey
Scrip Inno sesudahnya....
Demikian, semoga bermanfaat.
READ MORE - Menghilangkan Ritual Mode Compatibility - VB6 Tips

VB6 Tools: VB6 Code Tidy


Sebelumnya saya pernah memposting beberapa VB6 Tools, salah satu yang dianggap bermanfaat diantaranya adalah Manifest Creator yang dibuat LaVolpe.
Kali ini masih mengenai VB6 tools yang berguna untuk men-tidy code-code VB6. Contoh kode:
Private Sub GetProfilIDAndBloggerID(TextXML As String)

Dim child As IXMLDOMNode
Dim x As New DOMDocument
x.loadXML TextXML
Dim strID As String
Dim i As Integer
' Add the child nodes

ReDim strIDAndProfiles(0)

For Each child In x.documentElement.childNodes
If child.NodeName = "entry" Then
For i = 0 To child.childNodes.Length - 1
If child.childNodes(i).NodeName = "id" Then
strID = child.childNodes(i).Text
If Trim$(strID) <> "" Then
strIDAndProfiles(UBound(strIDAndProfiles)) = strID
End If
ReDim Preserve strIDAndProfiles(UBound(strIDAndProfiles) + 1)
End If
Next
End If
Next

If blnFromFile = False Then
strPathXML = App.Path & "\" & strTitle & ".XML"
End If

Dim b As Integer

frmBlog.List1.Clear

If UBound(strIDAndProfiles) > 0 Then
For i = 0 To UBound(strIDAndProfiles)
If Trim$(strIDAndProfiles(i)) <> "" Then
frmBlog.List1.AddItem strIDAndProfiles(i)
End If
Next
End If

With frmBlog
If .List1.ListCount > 1 Then
.Show vbModal, frmMain
strID = .List1.List(.List1.ListIndex)
Else
strID = .List1.List(0)
End If
End With

i = InStr(1, strID, "user-")
b = InStr(1, strID, "blog-")

strBlogID = Mid$(strID, b + 5, 19)
strProfileID = Mid$(strID, i + 5, Len(strID) - (b + 3))
Set x = Nothing

End Sub
Melihat kode di atas, tidak Anda kesulitan membacanya? Nah, dengan tools ini Anda akan mudah meng-indentnya secara tepat, sehingga menjadi:
Private Sub GetProfilIDAndBloggerID(TextXML As String)

    Dim child As IXMLDOMNode
    Dim x As New DOMDocument
    x.loadXML TextXML
    Dim strID As String
    Dim i As Integer
    ' Add the child nodes

    ReDim strIDAndProfiles(0)

    For Each child In x.documentElement.childNodes
        If child.NodeName = "entry" Then
            For i = 0 To child.childNodes.Length - 1
                If child.childNodes(i).NodeName = "id" Then
                    strID = child.childNodes(i).Text
                    If Trim$(strID) <> "" Then
                        strIDAndProfiles(UBound(strIDAndProfiles)) = strID
                    End If
                    ReDim Preserve strIDAndProfiles(UBound(strIDAndProfiles) + 1)
                End If
            Next
        End If
    Next

    If blnFromFile = False Then
        strPathXML = App.Path & "\" & strTitle & ".XML"
    End If

    Dim b As Integer

    frmBlog.List1.Clear

    If UBound(strIDAndProfiles) > 0 Then
        For i = 0 To UBound(strIDAndProfiles)
            If Trim$(strIDAndProfiles(i)) <> "" Then
                frmBlog.List1.AddItem strIDAndProfiles(i)
            End If
        Next
    End If

    With frmBlog
        If .List1.ListCount > 1 Then
            .Show vbModal, frmMain
            strID = .List1.List(.List1.ListIndex)
        Else
            strID = .List1.List(0)
        End If
    End With

    i = InStr(1, strID, "user-")
    b = InStr(1, strID, "blog-")

    strBlogID = Mid$(strID, b + 5, 19)
    strProfileID = Mid$(strID, i + 5, Len(strID) - (b + 3))
    Set x = Nothing

End Sub
Cara menggunakan:
  1. Ekstrak terlebih dahulu
  2. Klik Install.bat
  3. Buka project VB6 apa saja (terserah)
  4. Klik Menu Add-Ins, pada menu ini Anda akan menemukan sebuah menu baru yaitu menuu Rapikan Kode
  5. Klik Rapikan Kode
  6. Beri centang pada CheckBox Rapikan Seluruhnya untuk merapikan seluruh kode yang ada pada Project
Download: VB6 Code Tidy Source Code
READ MORE - VB6 Tools: VB6 Code Tidy

Friday, January 25, 2013

Edit Class 1.0 - Mempermudah Membuat Posting di Blogspot

Mengenai Edit Class versi 1.0 sebuah sofware editor sederhana yang saya buat untuk mempermudah membuat postingan di blogspot.

Apakah Edit Class 1.0 itu?

Edit class 1.0 merupakan sebuah software editor sederhana untuk mempermudah membuat posting di blogspot. Edit class bukan HTML editor, dia hanya lebih spesifik dari itu. Karena tujuannya yang sederhana, Edit Class tidak memperlakukan HTML sebagai objek yang memiliki properties, atribut, dsb, tetapi ia lebih memperlakukan HTML sebagai string, jadi dalam kenyataannya ia hanya memanipulasi string. File yang dihasilkan berektensi .blr [pada kenyataannya ia hanya file teks biasa yang bisa Anda buka melalui NotePad].

Edit Class 1.0
Gambar: Edit Class 1.0 - Sofware Editor Sederhana

Sebelum Menggunakan Edit Class 1.0

Sebelum menggunakan ada hal yang harus diperhatikan, bahwa Edit Class terdiri dari beberapa bagian, di antaranya yang paling terpenting adalah: SideBar yang tediri dari dua bagian: Daftar HTML dan Daftar Macro, MainEdit yang terdiri dari: BodyPost, Preview, CustomCSS, EditHTML, EditMacros.

 Daftar HTML

Daftar HTML berguna untuk membuat daftar tags HTML yang dibutuhkan. Untuk menambah daftar HTML yang dibutuhkan, Anda dapat membuka file yang terdapat pada Program Files\Code\HTMLTag.txt dan mengeditnya menggunakan Notepad. Adapun format kodenya adalah sebagai berikut:

{Name!+StartTags|EndTags}
Contoh:
{Underline!+<U>|</U>}

Daftar Macro

Daftar Macro macro dibuat berdasarkan daftar HTML di atas, untuk menambah daftar Macro yang dibutuhkan, Anda dapat membuka file yang terdapat pada Program Files\Code\Macros.txt. Macro digunakan untuk meng-eksekusi (menjalankan) rangkaian perintah daftar HTML di atas secara berurutan dari kiri ke kanan. Adapun format kodenya adalah sebagai berikut:

{MacroName:HTMLName,HTMLName, etc.}
Contoh:
{italic+underline:italic,Underline}

Preview

Preview digunakan untuk melihat hasil tulisan Anda yang dibuat pada Tab Body Post.

Custom CSS

Custom CSS merupakan style CSS yang yang akan mempengaruhi preview. Custom CSS digunakan sebagai simulasi CSS yang terdapat pada blog agar style tulisan offline yang Anda buat dengan Edit Class menyerupai style tulisan online.

Daftar Built-In Functions

Pada versi 1.0 ini, Edit Class memiliki beberapa fungsi built-in yang dapat ditambahkan pada file yang terdapat di Program Files\Code\HTMLTag.txt. Adapun format kode untuk memanggil fungsi-fungsi built-in adalah sebagai berikut:
{Name!+Built-In}
Contoh:
{Encode!+EncodeHTML}
Adapun fungsi-fungsi built-in tersebut, yaitu:
  1. DecodeHTML
  2. EncodeHTML
  3. RemoveHTML
  4. MakeTable
  5. FormatVB6Code
  6. OrdinerList
  7. UnOrdinerList
  8. InsertLink
  9. InsertImage

Cara menggunakan Edit Class 1.0

  1. Buatlah tulisan pada Body Post
  2. Pilih teks yang akan dimodifikasi
  3. DoubleKlik HTML atau Macro yang dibutuhkan
  4. Setelah, selesai kopi tulisan ke dalam posting blogspot milik Anda.
Download: EditClass1.0
READ MORE - Edit Class 1.0 - Mempermudah Membuat Posting di Blogspot

Thursday, January 24, 2013

TEST - Membuat Table di Blogspot

NoteCatatan
Because while loops do not have explicit built-in counter variables, they are more vulnerable to infinite looping than the other types of loops. Moreover, because it is not necessarily easy to discover where or when the loop condition is updated, it is easy to write a while loop in which the condition never gets updated. For this reason, you should be careful when you design while loops.

HTML List Tags

TagDescription
<ol>Defines an ordered list
<ul>Defines an unordered list
<li>Defines a list item
<dl>Defines a definition list
<dt>Defines an item in a definition list
<dd>Defines a description of an item in a definition list
READ MORE - TEST - Membuat Table di Blogspot