Tvorba MENU z textového pole   otázka

VB6/VBA

VISUAL BASIC 6

Prosím o radu, nejsem zatím dobrý programátor, spíše se učím, způsobem, že se vrhnu na problém a pomocí manuálu ho chci vyřešit, jenomže jsem se zasekl. Níže uvidíte zdroj podprogramu, který je vyřešen, jak přečíst ze souboru database.txt polozku jméno pracovníka. V souboru database.txt je více položek, jako například čas datum a zkratka. Procedura je vlastně hotová, do pole jmenoprac(1..až 30) se načte ze souboru Jméno a Příjmení.

Tažke mám v proměné JMENOPRAC(1...30) všechny jména příjmení ze souboru.

Potřeboval bych ale vytvořit hned pod příkazem kde ukončuji soubor viz.níže (Close #1), (ale upozornuji ne novou procedurou, ale hned pod tímto řádkem), nové MENU z proměné pole

JMENOPRAC(1 až 30), které by se otevřelo a objevilo na obrazovce a vrátilo by mi vybranou hodnotu v případě výběru do nějaké libovolné proměné.

Nevím si rady. Napište mi prosím třeba i mail na [email protected].

Private Sub vymprac_Click()
    Rem maximálně třicet pracovníků
    
    Dim polozka(90) As String
    Dim jmenoprac(30) As String
      
       Dim i As Integer
       Dim o As Integer
       Dim e As Integer
       Dim c As Integer
       Dim b As Integer
                                 
       i = 0
       e = 0
       c = 1
       b = 0
       o = 0
             
       
       Open "C:\pruzna\database.txt" For Input As #1
       Do While Not EOF(1)
           o = o + 1
           Select Case o
           Case 3 - c
             o = 0
             c = 1
             b = b + 1
             Input #1, jmenoprac(b)
             MsgBox (jmenoprac(b))
                                  
            End Select
           i = i + 1
           Input #1, polozka(i)
           Loop
       Close #1
             
End Sub
nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Nevyhověl by ComboBox? A šlo by to jak s polem pracovníků, tak bez.

Zkuste na formulář přidat ComboBox se jménem Combo1 a kód v místě načítání jména pracovníka změňte takto:

  Input #1, jmenoprac(b)
  'MsgBox (jmenoprac(b))
  Combo1.AddItem jmenoprac(b), b - 1
  ' poslední řádek pracuje takto: 
  ' načtené jméno přidá jako novou položku do ComboBoxu
  ' jmenoprac(b) vytvoří text položky, za čárkou je index položky - 1
  ' -1 proto, že indexování začíná od nuly, proměnná b od jedničky

Volbu v ComboBoxu zjistíte takto - výstup demonstruji v MsgBox

  Private Sub Combo1_Click()
    MsgBox Combo1.List(Combo1.ListIndex)
  End Sub

A použít pole pracovníků lze, pokud jeho definici dáte mimo subrutinu tlačítka, takto:

  Private Sub Combo1_Click()
    MsgBox jmenoprac(Combo1.ListIndex + 1)
  End Sub
  ' přičítám jedničku neb index comba začíná nulou, pole prac. máte od jedničky

Budete-li sem vkládat kód, použijte VBcode (kód vkládejte mezi

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

Přidejte si na Váš form v náhvrhu menu a submenu(0)

s indexem nula, další menu přidávejte v kódu pomocí:

Load submenu(index)

Submenu lze přidávat přímo ve smyčce, kde procházíte

zdrojový soubor a vždy načíst další submenu dle počtu.

Pole může být i dynamické a příkazem ReDim Preserve

můžete zvětšovat jeho velikost,pak LBound(pole) vrátí

dolní index UBound(pole) horní index, lze ho projít

cyklem For prvek=LBound(pole) to UBound(pole)...Next,

kde lze m.j. taky přidat za každý prvek submenu...

Submenu pak mají společný clickevent,kde si dle indexu

kliknutého menu např. za kliknutí přidáte tisícovku

pracovníkovi do prémií... :-)

Možná by Vám lépe posloužil combobox či listbox, zkuste

o tom popřemýšlet a brouzdejte nápovědou pro inspiraci.

nahlásit spamnahlásit spam 1 / 1 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