Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 4.985 pregleda

Najnovija ↓

Treba mi pomoć oko INI fajla 24.12.2004. u 21:23 · pre 266 meseci #1
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
Re: Treba mi pomoć oko INI fajla 25.12.2004. u 13:19 · pre 266 meseci #3
.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.
Re: Treba mi pomoć oko INI fajla 25.12.2004. u 14:04 · pre 266 meseci #5
@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
Re: Treba mi pomoć oko INI fajla 25.12.2004. u 14:30 · pre 266 meseci #6
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
Potpis
Blue Man Group
Re: Treba mi pomoć oko INI fajla 25.12.2004. u 16:17 · pre 266 meseci #7
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.
Re: Treba mi pomoć oko INI fajla 25.12.2004. u 16:50 · pre 266 meseci #8
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
Potpis
Blue Man Group
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme