Private Declare Function GetActiveWindow Lib "user32" () As Long Private Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long Public PredchoziLeft As Single Public Limit As Integer Public Aktu As Byte Public Sub DejHeslo() Tag = "" Height = V1.Height Visible = True Hess.Text = "" End Sub Private Sub Command1_Click() Hlavni.Timer1.Enabled = False Edit.Show Edit.WindowState = 0 'Hlavni.Timer1.Enabled = True End Sub Private Sub Command2_Click() Visible = False: Edit.Visible = False ff.Enabled = False: ff.Visible = False Nacti 0, 0, 0 End Sub Private Sub Form_Load() Load Edit Edit.Visible = False PredchoziLeft = 0 Limit = Screen.Width \ Form2.Width Nacti 0, 0, 0 Smer = 1 End Sub Public Sub Nacti(NactiOd As Integer, Odsazeni As Byte, Y As Single) Aktu = Odsazeni Kontrola Odsazeni Edit.Nacti NactiOd, Odsazeni Dim f As New Form2 f.ProvedNacitaci NactiOd, Odsazeni, Edit.Cisla, Y f.Show , Me 'f.Caption = "Uroveň " & Odsazeni f.Tag = Odsazeni l.AddItem f.hwnd: k.AddItem Odsazeni End Sub Public Sub Kontrola(Odsazeni As Byte) Dim i As Integer Dim kk As Long For i = 1 To l.ListCount - 1 If Val(k.List(i)) > Odsazeni Then kk = Val(l.List(i)) DestroyWindow kk k.RemoveItem i l.RemoveItem i i = i - 1 End If Next If Odsazeni = 99 Then kk = Val(l.List(0)) DestroyWindow kk k.Clear l.Clear End If i = Odsazeni 'While i > Limit - 1: i = i - 1: Wend i = Odsazeni Mod Limit kk = Odsazeni \ Limit If kk Mod 2 = 1 Then i = Limit - i - 2 If i = -1 Then i = 1 PredchoziLeft = i * (Form2.Width - Screen.TwipsPerPixelX * 6) End Sub Private Sub Hess_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then Tag = "Q" If UCase(Hess.Text) = Chr(65) & String(2, Chr(67)) & "E" & String(2, Chr(2 ^ 6 + 19)) Then Tag = "W" Visible = False End If End Sub Public Sub Zobraz() DejHeslo Do DoEvents Loop Until Tag <> "" If Tag = "Q" Then Exit Sub Show Height = ff.Height ff.Visible = True ff.Enabled = True Kontrola 99 End Sub Private Sub Timer1_Timer() Dim q As Long, i As Integer q = GetActiveWindow() If q <> hwnd Then For i = 0 To l.ListCount - 1 If Val(l.List(i)) = q Then GoTo p Next End p: End If End Sub Private Pocet As Integer Private Jaky As Integer Public Sub ProvedNacitaci() Dim Rozestup As Integer Rozestup = 600 'l(0).Top = 120 - Rozestup 'i(0).Top = 90 - Rozestup 's(0).Top = 120 - Rozestup Jaky = -1: Pocet = 0 'Načtení nabídky Dim o As Integer Dim Q As String Dim QOD As Integer Q = Edit.Cisla QOD = 1 Dim sc As Integer For o = 1 To Len(Q) If Mid(Q, o, 1) = "#" Then Edit.l.ListIndex = Val(Mid(Q, QOD, o - 1)) QOD = o + 1 'Načtení jeho položek Pocet = Pocet + 1 sc = Pocet Load l(sc) l(sc).Caption = Edit.Jmeno.Text l(sc).Top = l(sc - 1).Top + Rozestup l(sc).Visible = True Load i(sc) ZobrazIco Edit.Cesta.Caption, sc i(sc).Top = l(sc - 1).Top + Rozestup i(sc).Visible = True Load s(sc) s(sc).Top = l(sc - 1).Top + Rozestup s(sc).Caption = ">" If Edit.Typ.ListIndex = 1 Then s(sc).Visible = True End If Next Okraj.Height = 120 + (Pocet * Rozestup) + 150 End Sub Sub ZobrazIco(Ces, X) If Ces = "" Then GoTo p On Error GoTo p i(X).Picture = LoadPicture(Ces) Exit Sub p: i(X).BorderStyle = 1 End Sub Private Aktual As Integer Private Mode As Integer '0 - click;1 - vypisovani Public Od As Integer Public Odstup As Integer Public Cisla As String Public Sub Nacti(OdRadku, OdstupMenu) Od = OdRadku Odstup = OdstupMenu Cisla = "" Dim i As Integer For i = Od To Vypis.ListCount - 1 Vypis.ListIndex = i If Asc(Mid(Vypis.Text, Len(Vypis.Text) - 1, 1)) - 32 = Odstup Then Cisla = Cisla & i & "#" If Asc(Mid(Vypis.Text, Len(Vypis.Text) - 1, 1)) - 32 = Odstup - 1 Then Exit For Next End Sub Sub ZobrazAkci(Text) Dim i As Integer, Delka As Integer Dim Radek As Integer Radek = 38 C_Akce.Caption = "" For i = 1 To Len(Text) Step Radek Delka = Radek If Len(Text) - i < Radek Then Delka = Len(Text) - i + 1 C_Akce.Caption = C_Akce.Caption + Mid(Text, i, Delka) + Chr(13) Next End Sub Sub NactiObrazek(X) If X = "" Then GoTo p On Error GoTo p Ikona.Picture = LoadPicture(X) Ikona.BorderStyle = 0 Cesta.Caption = X Exit Sub p: Ikona.Picture = LoadPicture() Ikona.BorderStyle = 1 Cesta.Caption = "" End Sub Sub Zobraz() l.Clear Mode = 1 Dim i As Integer, o As Integer, z As String 'Pro cyklus o Dim Od As Integer, Kolikaty As Integer, t As String For i = 0 To Vypis.ListCount - 1 Vypis.ListIndex = i Od = 1 Kolikaty = 0 For o = 1 To Len(Vypis.Text) - 2 z = Mid(Vypis.Text, o, 2) If z = "#/" Then t = Mid(Vypis.Text, Od, o - Od) Kolikaty = Kolikaty + 1 Od = o + 2 If Kolikaty = 1 Then l.AddItem String(3 * (Asc(Mid(Vypis.Text, Len(Vypis.Text) - 1, 1)) - 32), ".") + t Exit For End If End If Next Next If l.ListCount > 0 Then l.ListIndex = Aktual Mode = 0 End Sub Sub Predelej() If Mode = 1 Then Exit Sub Dim t As String Vypis.RemoveItem Aktual Vypis.AddItem Jmeno.Text + "#/" + Akce.Text + "#/" + Cesta.Caption + "#/" & Typ.ListIndex & TAKce.ListIndex & Chr(32 + Val(Odsaz.Caption)) & Tok.ListIndex, Aktual End Sub Sub Vstup() rb.LoadFile App.Path + "\Nabidka.dat", rtfText Dim i As Integer p: For i = 1 To Len(rb.Text) - 3 If Mid(rb.Text, i, 3) = "\#\" Then Vypis.AddItem Left(rb.Text, i - 1) rb.Text = Right(rb.Text, Len(rb.Text) - i - 2) GoTo p End If Next Vypis.AddItem Left(rb.Text, Len(rb.Text) - 3) Zobraz End Sub Private Sub Akce_C_Click() 'cd.Flags = cdlOFNFileMustExist cd.Filter = "*.*|*.*" cd.ShowOpen Dim i As Integer If TAKce.ListIndex = 0 Then Akce.Text = cd.FileName Else For i = Len(cd.FileName) To 1 Step -1 If Mid(cd.FileName, i - 1, 1) = "\" Then Akce.Text = Left(cd.FileName, i - 2) Exit For End If Next End If ZobrazAkci Akce.Text End Sub Private Sub Akce_KeyUp(KeyCode As Integer, Shift As Integer) ZobrazAkci Akce.Text Predelej Vypis.ListIndex = Aktual End Sub Private Sub C_Ikona_Click() cd.Flags = cdlOFNFileMustExist cd.Filter = "Soubory ikon (*.ico)|*.ico" cd.ShowOpen If cd.FileName = "" Then Exit Sub NactiObrazek cd.FileName Predelej Vypis.ListIndex = Aktual End Sub Private Sub Form_Load() Typ.AddItem "Položka" Typ.AddItem "Rozevíratelná položka" TAKce.AddItem "Aplikace" TAKce.AddItem "Složka" Tok.AddItem "Normální" Tok.AddItem "Minimalizované" Tok.AddItem "Maximilizované" Mode = 1 Vstup End Sub Private Sub Form_Unload(Cancel As Integer) End End Sub Private Sub Info_Click() MsgBox "Příkazy do nabídky Start:" + Chr(13) + Chr(13) _ + "*zavrit* - ukončí nabídku Start" + Chr(13) _ + "*/ před příkazem - prázdný příkaz (neprovede se akce)" + Chr(13) _ + "** před příkazem - vyžádání hesla pro spustění zástupce" End Sub Private Sub Jmeno_KeyUp(KeyCode As Integer, Shift As Integer) If Mode = 1 Then Exit Sub Predelej l.RemoveItem Aktual l.AddItem String(3 * Val(Odsaz.Caption), ".") + Jmeno.Text, Aktual l.ListIndex = Aktual Vypis.ListIndex = Aktual End Sub Private Sub l_Click() Mode = 1 Aktual = l.ListIndex If l.ListIndex = -1 Then Exit Sub Vypis.ListIndex = l.ListIndex Dim Od As Integer, Kolikaty As Integer, t As String Od = 1 Kolikaty = 0 For o = 1 To Len(Vypis.Text) - 2 z = Mid(Vypis.Text, o, 2) If z = "#/" Then t = Mid(Vypis.Text, Od, o - Od) Kolikaty = Kolikaty + 1 Od = o + 2 If Kolikaty = 1 Then Jmeno.Text = t If Kolikaty = 2 Then Akce.Text = t: ZobrazAkci Akce.Text If Kolikaty = 3 Then NactiObrazek t End If Next Typ.ListIndex = Val(Mid(Vypis.Text, Len(Vypis.Text) - 3, 1)) TAKce.ListIndex = Val(Mid(Vypis.Text, Len(Vypis.Text) - 2, 1)) Odsaz.Caption = Asc(Mid(Vypis.Text, Len(Vypis.Text) - 1, 1)) - 32 Tok.ListIndex = Val(Right(Vypis.Text, 1)) If l.ListIndex < 1 Then O_N.Enabled = False Else O_N.Enabled = True If l.ListIndex = l.ListCount - 1 Then O_D.Enabled = False Else O_D.Enabled = True If Asc(Mid(Vypis.Text, Len(Vypis.Text) - 1, 1)) - 32 = 0 Then O_L.Enabled = False Else O_L.Enabled = True If Asc(Mid(Vypis.Text, Len(Vypis.Text) - 1, 1)) - 32 = 220 Then O_P.Enabled = False Else O_P.Enabled = True Mode = 0 End Sub Private Sub Novy_Click() Vypis.AddItem "Bezejmenný#/#/#/00 0" Aktual = Vypis.ListCount - 1 Zobraz End Sub Private Sub O_D_Click() Dim a As String a = Vypis.Text Vypis.RemoveItem Aktual Vypis.AddItem a, Aktual + 1 a = l.Text l.RemoveItem Aktual l.AddItem a, Aktual + 1 Aktual = Aktual + 1 l.ListIndex = Aktual End Sub Private Sub O_L_Click() Odsaz.Caption = Val(Odsaz.Caption) - 1 If Val(Odsaz.Caption) = 0 Then O_L.Enabled = False If O_P.Enabled = False Then O_P.Enabled = True Predelej Zobraz End Sub Private Sub O_N_Click() Dim a As String a = Vypis.Text Vypis.RemoveItem Aktual Vypis.AddItem a, Aktual - 1 a = l.Text l.RemoveItem Aktual l.AddItem a, Aktual - 1 Aktual = Aktual - 1 l.ListIndex = Aktual End Sub Private Sub O_P_Click() O_L.Enabled = True Odsaz.Caption = Val(Odsaz.Caption) + 1 If O_L.Enabled = False Then O_L.Enabled = True If Val(Odsaz.Caption) = 220 Then O_P.Enabled = False Predelej Zobraz End Sub Private Sub Smazat_Click() If l.ListIndex = -1 Then Exit Sub Dim a As Integer a = MsgBox("Opravdu chcete tohoto zástupce odebrat?", vbQuestion + vbYesNo) If a = vbNo Then Exit Sub Vypis.RemoveItem Aktual Aktual = 0 Zobraz End Sub Private Sub Typ_Click() Predelej Vypis.ListIndex = Aktual End Sub Private Sub Tok_Click() Predelej Vypis.ListIndex = Aktual End Sub Private Sub TAkce_Click() Predelej Vypis.ListIndex = Aktual End Sub Private Sub Ukonci_Click() Dim a As Integer a = MsgBox("Opravdu chcete zavřít editor bez uložení změn?", vbQuestion + vbYesNo) If a = vbYes Then Hide End Sub Private Sub Zavri_Click() Dim i As Integer rb.Text = "" For i = 0 To Vypis.ListCount - 1 Vypis.ListIndex = i rb.Text = rb.Text + Vypis.Text + "\#\" Next rb.SaveFile rb.FileName, rtfText Hide End Sub