Uložení nastavení aplikace   zodpovězená otázka

VB.NET

Ahoj tazke znova mam nieco...

Chcel by som sa spytat ako jednoducho vytvorit to aby si moja aplikacia napriklad pamatala rozlozenie list(toolstrip) alebo keby som chcel aby moja aplikacia bola vo viacerych jazykoch.

Docital som sa ze na konfiguracny subor sa pouziva subor s koncovkou .ini do ktoreho sa zapisuje nastavenie aplikacie.

Este som sa tu docital na fore kde Tomas radil jednemu uzivatelovi pouzit .xml priamo v My project/settings ale podla mojich dedukcii to funguje na ulozenie nastaveni napr. zachovanie velkosti okna popripade pozicie ale pouzit to ako konfiguracny subor kde by som mohol za behu aplikacie menit nastavenia....??

Pre mna by bol najlepsi nejaky priklad z ktoreho by som si uz potom vedel odvodit aj ostatne nastavenia mojej aplikacie...

priklad:

form1 s button1

po stlaceni button1 sa otvory form2 kde by bola moznost zmenit text button1 na button2 napr. by tam boli radiobuttony1 a 2

po zavreni okna by sa nastvenie ulozilo do suboru s koncovkou ini. a po znovu otvoreni aplikacie by sa uz nacital button1 s hodnotou button2

bol by som vdacny za priklad.

Dakujem

dodo

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

pokud Vám jde přímo o soubor, INI je možnost, ale bude nutné stáhnout knihovnu pro práci s INI (pokud ji ovšem nechcete psát Vy sám). Já bych preferoval XML, protože .NET FW má funkce pro práci s XML v sobě a vytvoření XML dokumentu také není žádná věda. Viz Tomášův článek.

Jestli však není nutné mít konfiguraci v souboru, je možno použít My.Settings. Velice jednoduše se s tím pracuje, protože se nemusíte zabývat konverzemi typů.

Snad jsem trošku pomohl, přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ak by ste boli taky dobry a urobili mi jednoduchy priklad bol by som velmi vdacny skusal som pracovat aj sam s xml nastavenim ale moc mi to neslo...

Stacilo by mi nieco uplne jednoduche...

Bol by som velmi vdacny

A este by som chcel vediet ktory clanok myslite tento ?

http://vbnet.cz/forum-tema--155-editace_...

Dakujem

dodo

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Na prajektu zapracuji, tak chviličku strpení, jinak ten článek je tento:

http://www.vbnet.cz/clanek--80-prace_s_x...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dakujem tento clanok som si vobec nevsimol... uz idem aj hned studovat.

A za nazorny priklad na ktorom pracujete naozaj dakujem.

dodo

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak tady je jednoduchý návod na My.Settings:

http://www.tomas-h.ic.cz/Test/MySettings...

K XML určitě zvládnete pomocí článku napsat program sám.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pro práci s INI soubory lze použít i API funkce bez stahování komponent - viz

http://vbnet.cz/forum-tema--673-cteni_in...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jestli však není nutné mít konfiguraci v souboru, je možno použít My.Settings.

To je hloupost, kam myslíte, že se nastavení My.Settings ukládá? Do XML souboru, který je někde ve složce Application Data. Má to tu výhodu, že některá nastavení můžete nastavit jako Application (budou společná pro všechny uživatele), zatímco jiná můžete nastavit jako User (pro každého uživatele zvlášť).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Samozřejmě, data se uloží do xml souboru, ale jde vlastně o to, že si je systém uloží tam kam se mu to hodí, a já pak nemusím řešit načítání souboru apod.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

K výše uvedenému právě slouží docela pohodlně zabudovaný konfigurační soubor.

Dá se s tím docela dobře pracovat (rozhodně pohodlněji, než s .ini soubory.

Příklad jenom super jednoduchý, ale myslím, že svou funkčnost si již velice jednoduše odvodíte sám:

Založte si nový projekt a na Form1 si dejte 2 tlačítka a jeden textbox.

Do kódu si zadejte nejprve funkčnost pro tlačítko 2 (budeme s ním měnit popis tlačítka 1:

 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
   ' změníme popis tlačítka Button1
   Button1.Text = IIf(Button1.Text = "ANO", "NE", "ANO")
End Sub

(nad kódem moc nešpekulujte - hodil jsem tam jen něco maximálně jednoduchého, ale názorného.

S settings je možno pracovat dvěma způsoby. Buď si to nasázíte ručně na kartě nastavení, nebo, pokud si chcete pamatovat nějakou vlastnost nějakého Controlu, tak to jde nastavit i v okně vlastností.

Takže začneme tou druhou možností:

- vyberte si tlačítko Button1

- v okně Properties rozbalte v sekci Data (ApplicationSettings)

- klepněte do PropertyBinding a rozklepněte si tlačítko, které se Vám objeví

- ukáže se Vám seznam vlastností tlačítka, najeďte si na vlastnost, kterou si chcete pamatovat (v našem případě Text),rozbalte nabídku a z ní vyberte New (novou proměnnou)

- V tabulce, která se Vám objeví zadejte Name - pod tímto jménem bude Vaše proměnná uložena v konfiguračním souboru)

- dejte OK. V okně properties by se Vám mělo o řádek níže zobrazit vámi vytvořené nastavení, tedy Text a jméno Vaší proměnné (pokud tam náhodou není, dá se vybrat ze seznamu, který se Vám rozevře při kliknutí na rozevírací šipku)

Toť v prvním kroku vše.

Spusťte si aplikaci, na tlačítku 1 byste měl mít standardní popis. Kliknutím na tlačítko 2 by se tento popis měl změnit.

Ukončete aplikaci a spusťte ji znovu - už byste měl mít popsáno tlačítko tak, jak bylo při předchozím ukončení aplikace.

Opět aplikaci ukončete.

V okně Solution explorer 2x klikněte na My project a dostanete se na kartu aplikace.

Vyberte z ní záložku Settings.

Objeví se Vám tabulka Vašich proměnných, které ukládáte v konfiguračním souboru. Měl byste tam vidět i tu proměnnou, kterou jste si před chvílí nastavil.

Do dalšího řádku přidejte další proměnnou - do sloupce Name napiště třeba ZkusebniText, typ proměnné nechejte String, Scope také nechejte na User (budete aktualizovat sám), hodnotu můžete, nebo taky nemusíte vyplňovat.

Tím jsme si založili další proměnnou, kterou si budeme chtít pamatovat.

Na rozdíl od předchozí, kterou jsme vytvořili v okně properties daného controlls, si tuto proměnnou však už budeme muset obsloužit sami (ukládání a načítání).

Ve skutečnosti Visual Studio v tom předchozím případě nevytvořilo pouze tu proměnnou, ale současně i metody, které se starají o její ukládání a načítání)

Takže běžte opět do kódu a vytvoříme následující:

Při spuštění formuláře si budeme přát, aby se nám v našem textboxu objevil text jaký tam byl v okamžiku posledního ukončení aplikace.

V metodě Form1_load tedy načteme hodnotu uloženou v před chvílí vytvořené proměnné:

 Private Sub Form10_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' načteme uloženou hodnotu
        TextBox1.Text = My.Settings.ZkusebniText

    End Sub

jenomže abychom vůbec měli co načítat, musíme si při ukončení aplikace hodnotu z textboxu do konfiguračního souboru zase uložit:

Private Sub Form10_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        ' uložíme hodnotu pro příští použití
        My.Settings.ZkusebniText = TextBox1.Text

    End Sub

Toť vše. zkuste si párkrát spustit a následně ukončit aplikaci a mezi tím zi pomačkat tlačítko Button2, případně napsat nějaký text do textboxu.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Neviem co k tomu dodat.... ste dobry naozaj dakujem vsetkym za pomoc.

Este raz si to vsetko prejdem vyskusam pomenim a uvidim ci to budem vediet obsluzit aj sam... vyzera to jednoducho...

Este by som sa spytal ked upravim nieco v mojom konfiguracnom okne ako nacitam informacie hned z konfiguracneho suboru aby sa prejavili okamzite?

Dakujem

dodo

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Když v okně "My Project" změním v nastavení (záložka Settings) ve sloupci Scope u některé položky User na Application, nastane chyba:

Error 1 Property 'ZkusebniText' is 'ReadOnly'

Je to změna pro nastavení pro všechny uživatele? Nevíte, kde se to dá změnit?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback