[ Towar @ 24.12.2004. 20:23 ] @
Napravio sam jedan program i dodao funkciju mjenjanja skinova, odnosno boja. Evo kod:

Code:
Private Sub red_Click()

Form1.ON.BackColor = &HFF&
Form1.OFF.BackColor = &HFF&
Form1.SysMon.TimeBarColor = &HFF&
frmAbout.lblDescription.BackColor = &HFF&
frmAbout.lblDisclaimer.BackColor = &HFF&
frmAbout.lblTitle.BackColor = &HFF&
frmAbout.lblVersion.BackColor = &HFF&
frmAbout.cmdOK.BackColor = &HFF&
frmAbout.cmdSysInfo.BackColor = &HFF&
frmAbout.picIcon.BackColor = &HFF&
frmPicture.Label1.BackColor = &HFF&
frmPicture.Text1.BackColor = &HFF&
frmPicture.cmdChange.BackColor = &HFF&
frmPicture.cmdCancel.BackColor = &HFF&

color.Text = &HFF&

Call WriteToINI("Picture Address", "c", color.Text, App.Path & "\Glowpad.ini")

MsgBox ("Skin color changed to RED")

End Sub

Private Sub yellow_Click()

Form1.ON.BackColor = &HFFFF&
Form1.OFF.BackColor = &HFFFF&
Form1.SysMon.TimeBarColor = &HFFFF&
frmAbout.lblDescription.BackColor = &HFFFF&
frmAbout.lblDisclaimer.BackColor = &HFFFF&
frmAbout.lblTitle.BackColor = &HFFFF&
frmAbout.lblVersion.BackColor = &HFFFF&
frmAbout.cmdOK.BackColor = &HFFFF&
frmAbout.cmdSysInfo.BackColor = &HFFFF&
frmAbout.picIcon.BackColor = &HFFFF&
frmPicture.Label1.BackColor = &HFFFF&
frmPicture.Text1.BackColor = &HFFFF&
frmPicture.cmdChange.BackColor = &HFFFF&
frmPicture.cmdCancel.BackColor = &HFFFF&

color.Text = &HFFFF&

Call WriteToINI("Picture Address", "c", color.Text, App.Path & "\Glowpad.ini")


MsgBox ("Skin color changed to YELLOW")

End Sub


To je kada je boja odabrana, i kad ju odaberem lijepo se boja i promjeni, to vidim, ali poslije neće čitat iz INI fajla, čak ne mogu niti kompajlirati program:

Code:
Form1.ON.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
Form1.OFF.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
Form1.SysMon.TimeBarColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblDescription.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblDisclaimer.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblTitle.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblVersion.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.cmdOK.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.cmdSysInfo.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.picIcon.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.Label1.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.Text1.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.cmdChange.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.cmdCancel.BackColor = "" & GetFromINI("PictureAddress", "c", App.Path & "\Glowpad.ini")


Proba sam mnogo načina i ništa mi ne radi. Molim vas pomozite
[ Aleksandar Ružičić @ 24.12.2004. 21:30 ] @
Funkcije za rad sa INI fajlovima:
http://www.elitesecurity.org/tema/26410/0#181871
[ DarkoR @ 25.12.2004. 12:19 ] @
.Net Framework provides a decent way to store app settings using Xml Serialization

[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/persistappsettnet.asp[/url]

Sekcija Creating a Custom Application Configuration Class

Zaista dobar nacin za realizovanje Application Settings-a.
[ mladenovicz @ 25.12.2004. 12:40 ] @
@DarkoR
U pitanju je VB, a ne VB.NET aplikcija
[ Towar @ 25.12.2004. 13:04 ] @
@Mladenovicz

Mislim da znam u čemu je problem, VB mi kod od boje npr. &H8000000D pretvara u broj
Code:
Call WriteToINI("Picture Address", "c1", &H8000000D, App.Path & "\Glowpad.ini")

i onda pri startu programa kada poziva registar
Code:
Form1.ON.BackColor = "" & GetFromINI("Picture Address", "c1", App.Path & "\Glowpad.ini")


Ne može prepoznati boju zato šta je VB iz koda boje izračunao neki broj. Nemam ideje kako da to sredi. Molim te pomozi
[ mladenovicz @ 25.12.2004. 13:30 ] @
Pa &H8000000D i jeste broj (hex). Boju mozes da setujes kao hex ili kao long. I jedno i drugo radi.

Code:

Private Sub Command1_Click()
    Label1.BackColor = &H8000000D
End Sub

Private Sub Command2_Click()
    Label1.BackColor = -2147483635 ' ili &H8000000D
End Sub

Private Sub Command3_Click()
    Label1.BackColor = vbRed
End Sub


1. Napravi jednu funkciju koja menja boju

Code:

Public Function ChangeColor(C As Long, ColorText As String)
    Form1.On.BackColor = C
    Form1.OFF.BackColor = C
    Form1.SysMon.TimeBarColor = C
    frmAbout.lblDescription.BackColor = C
    frmAbout.lblDisclaimer.BackColor = C
    frmAbout.lblTitle.BackColor = C
    frmAbout.lblVersion.BackColor = C
    frmAbout.cmdOK.BackColor = C
    frmAbout.cmdSysInfo.BackColor = C
    frmAbout.picIcon.BackColor = C
    frmPicture.Label1.BackColor = C
    frmPicture.Text1.BackColor = C
    frmPicture.cmdChange.BackColor = C
    frmPicture.cmdCancel.BackColor = C
    
    Color.Text = C
    
    Call WriteToINI("Picture Address", "c", Color.Text, App.Path & "\Glowpad.ini")
    
    MsgBox ("Skin color changed to " & ColorText)
End Function

Private Sub red_Click()
    Call ChangeColor(&HFF&, "RED")
End Sub

Private Sub yellow_Click()
    Call ChangeColor(&HFFFF&, "YELLOW")
End Sub


2. setovanje boja ne bi trebalo da radis na ovaj nacin. Ako neka od formi nije loadovana setovanjem boje ce se loadovati, a nece biti prikazana. Trebalo bi da na Form_Load eventu setujes boju za tu formu, a setovanje spolja da radis samo ako je forma prikazana.

3. Ovde svaki put citas istu vrednost iz INI fajla, a dovoljno je samo jednom

Code:

Form1.ON.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
Form1.OFF.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
Form1.SysMon.TimeBarColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblDescription.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblDisclaimer.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblTitle.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.lblVersion.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.cmdOK.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.cmdSysInfo.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmAbout.picIcon.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.Label1.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.Text1.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.cmdChange.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.cmdCancel.BackColor = "" & GetFromINI("PictureAddress", "c", App.Path & "\Glowpad.ini")


Napravi ovako nesto

Code:

    Dim C As Long
    C = GetFromINI("PictureAddress", "c", App.Path & "\Glowpad.ini")
    Form1.On.BackColor = C
    Form1.OFF.BackColor = C
    Form1.SysMon.TimeBarColor = C
    frmAbout.lblDescription.BackColor = C
    frmAbout.lblDisclaimer.BackColor = C
    frmAbout.lblTitle.BackColor = C
    frmAbout.lblVersion.BackColor = C
    frmAbout.cmdOK.BackColor = C
    frmAbout.cmdSysInfo.BackColor = C
    frmAbout.picIcon.BackColor = C
    frmPicture.Label1.BackColor = C
    frmPicture.Text1.BackColor = C
    frmPicture.cmdChange.BackColor = C
    frmPicture.cmdCancel.BackColor = C


s tim, sto i ovde mozes da pozivas funkciju ChangeColor

4. probaj se da upisujes i citas istu vrednost iz INI fajla

Code:

frmPicture.cmdChange.BackColor = "" & GetFromINI("Picture Address", "c", App.Path & "\Glowpad.ini")
frmPicture.cmdCancel.BackColor = "" & GetFromINI("PictureAddress", "c", App.Path & "\Glowpad.ini")


Koristi "PictureAddress" ili "Picture Address". Najbolje je da to stavis kao konstantu i onda da radis sa konstantom. Takodje, ime ini fajla neka ti bude neka promenljiva i neka se "builduje" samo jednom, a ne svaki put kad citas/pises.

Elem, nakon ovih izmena kod ce ti biti mnogo pregledniji, a moguce je da ces i otkloniti problem. U svakom slucaju, bice ti lakse da pratis sta se desava i pronadjes sta ne valja
[ Towar @ 25.12.2004. 15:17 ] @
Sve radi ok kada testiram program unutar VB-a, ali kada napravim .exe i kada ga pokrenem pojavi se greška "Error 13 Type mismatch".
Inače, mladenoviczu, odlično rješenje,hvala.
[ mladenovicz @ 25.12.2004. 15:50 ] @
Nisam siguran sta moze da bude problem. Ne znam sta ce ti prazni navodnici ovde:
Code:

frmPicture.cmdCancel.BackColor = "" & GetFromINI("PictureAddress", "c", App.Path & "\Glowpad.ini")


Takodje, probaj da koristis Val funkciju

Code:

frmPicture.cmdCancel.BackColor = Val(GetFromINI("PictureAddress", "c", App.Path & "\Glowpad.ini"))


Onda ti nece pucati ukoliko GetFromINI vrati prazan string
[ Towar @ 25.12.2004. 18:20 ] @
Mladenoviczu, puno puno hvala sve radi super sa VAL-om.