Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Gascripe

C# .NET Formuláře Windows Forms Zdrojákoviště Gascripe

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Hlavní částí tohoto programu jsou oblasti. Ty se editují úplně nahoře. Lze přidávat, editovat a mazat. Maže se následovně - klikněte na oblast a stisknte Delete... :) Edituje stiskem F2 (Musí být zvolena oblast!). Stějně tak i u sekcí a souborů. U nich však máte kromě standartních zkratek (N - nový, F2 - editace jména, Delete - smazání) i možnost využít ContextMenuStri­pu... Kliknutím na sekci se v okně vedle zobrazí její soubory. Soubory lze otevírat standartně - dvojklikem, či ContextMenuStri­pem... Pro Vaše pohodlí tu je i další možnost - můžete využít tlačítek dole... :) Vždy je třeba označit danou věc, jinak Vám to prostě nepůjde. Vše by mělo být pojištěno - kromě vstupu do složek v Aplikačních datech mimo program... Tedy až na hlavní složku - tu klidně smažte...

Nyní jsem přidal možnost měnit barvy - jak pomocí brevných schémat, tak dialogem pro jednotlivé sekce. Pokud budete chtít ruční barevné úpravy resetovat - stačí vybrat jedno ze schémat.

Přidána možnost přetahovat libovolné soubory/složky. Lze s nimi manipulovat úplně stejně - navíc s možností dialogu "Open with". Ovšem za cenu neuhlídatelnosti - pokusím se vše pojistit, ale zatím je to nekryté - kolize stejných jmen (dojde k přepsání staršího souboru) a zapomenutí koncovky při editaci. Tak nezapomeňtě na koncovku při změně jména! (To vše se samozřejmě týká jen přetáhlých souborů...)


Galerie

Program byl vytvořen v roce 2012.

 

Stáhnout

Staženo 272x (202.04 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

 

Program pro vás napsal matesax
Avatar
Jak se ti líbí článek?
2 hlasů
Aktivity (1)

 

 

Komentáře
Zobrazit starší komentáře (11)

Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:27.9.2012 15:46

Aha, ty jsi to publikoval. No pořád nechápeš tu podstatu, je potřeba oddělit logiku od vzhledu. Vzhledem myslím to, s čím pracuje uživatel. Proto v té třídě nemá být ani:

string name = Interaction.InputBox("Zadej jméno nové sekce.", "Section Name Dialog", "NewSection");

To je přeci část uživatelského rozhraní, to patří ven. Metoda ve třídě má sežrat parametry a vyplivnout výsledek, nemá se již na nic ptát, od toho tu je to rozhraní venku.

Editováno 27.9.2012 15:46
Odpovědět 27.9.2012 15:46
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:27.9.2012 15:53

Ale ono to je v tom manageru...

private void SectionViewerActualize()
{
    FilesViewer.Items.Clear();
    SectionViewer.Nodes.Clear();

    if (!String.IsNullOrEmpty(actualArea))
        SectionViewer.Nodes.AddRange(new SpravaGascripe().CreateNodesArray(actualArea));
}

private void CreateSection()
{
    if (String.IsNullOrEmpty(actualArea))
        MessageBox.Show("Není vybrána žádná oblast!", "Kam s ní?");

    else if (sectionManager.CreateSection((String.IsNullOrEmpty(actualPath) || SectionViewer.SelectedNode == null || MessageBox.Show("Chceš vytvořit podsekci (ano), či novou hlavní sekci (ne)?", "Ověření", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.No) ? actualArea : actualPath))
            SectionViewerActualize();
}

private void EditSectionName()
{
    if (sectionManager.Rename(actualPath))
        SectionViewerActualize();
}

private void RemoveSection()
{
    if (SectionViewer.SelectedNode != null && sectionManager.Remove(actualPath))
    {
        actualPath = null;
        FilesViewer.Items.Clear();
        SectionViewerActualize();
    }
}

Kde to vidíš?

Editováno 27.9.2012 15:53
 
Odpovědět 27.9.2012 15:53
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:27.9.2012 15:56

Např. v SectionManager:

public bool CreateSection(string path)
        {
            string name = Interaction.InputBox("Zadej jméno nové sekce.", "Section Name Dialog", "NewSection");

            if (String.IsNullOrEmpty(name))
                return false;
            else
            {
                new DirectoryInfo(NoExistName(path + @"\" + name)).Create();
                return true;
            }
        }
Odpovědět 27.9.2012 15:56
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:27.9.2012 16:00

Ale to je již ta třída mimo - to mám udělat ještě další? :) Jo takhlen - mám dát parametr newName (string) - a ptát se při volání?

Editováno 27.9.2012 16:03
 
Odpovědět 27.9.2012 16:00
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:27.9.2012 16:14

Ještě něco - než to dám ke schválení?

 
Odpovědět 27.9.2012 16:14
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:27.9.2012 16:34

Aplikace má 2 vrstvy, v jedné jsou formy a jejich obsluha včetně dialogů a dalšími věcmi, se kterými uživatel pracuje. V druhé je jen logika. 1. vrstva vezme data od uživatele a předá je té druhé. Ta něco udělá a zas předá řízení té první, která ukáže výsledek uživateli.

Dáš tam parametr, přesně tak. To ActualFolder nebo jak se to jmenuje by mohla být proměnná té třídy, předpokládám, že se nemění, šla by nastavit při vytvoření.

Určitě jsem tam někde ještě viděl práci se stream a nad tím dialog. Si to projeď :)

Editováno 27.9.2012 16:34
Odpovědět  +1 27.9.2012 16:34
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:27.9.2012 16:51

No ta se mění vůbec ze všech nejvíce... :) Proto to je actualPath - aktuální - tedy je v ní cesta, kde zrovna uživatel je...

 
Odpovědět 27.9.2012 16:51
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:27.9.2012 17:02

Jo tak, můžeš jí tedy předávat parametrem nebo použít nějaký návrhový vzor, ale v tom nejsem tak dobrý, abych ti mohl radit, je to docela věda :)

Odpovědět 27.9.2012 17:02
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:27.9.2012 17:19

Update...

 
Odpovědět 27.9.2012 17:19
Avatar
lcet.m
Člen
Avatar
lcet.m:14.1.2013 17:40

var není dynamické typování. Používá ho správně.

 
Odpovědět 14.1.2013 17:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 21. Zobrazit vše