Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Gascripe

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na matesax
David Hartinger: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.

Editované
Odpovedať
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovedá na David Hartinger
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íš?

Editované
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na matesax
David Hartinger: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;
            }
        }
Odpovedať
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovedá na David Hartinger
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í?

Editované
Avatar
matesax
Tvůrce
Avatar
Odpovedá na David Hartinger
matesax:27.9.2012 16:14

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

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na matesax
David Hartinger: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ď :)

Editované
Odpovedať
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovedá na David Hartinger
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...

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na matesax
David Hartinger: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 :)

Odpovedať
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 21.