Dim Text As String, Byl As Boolean, I As Integer, J As Integer, Pocet As Integer
Dim TT(500) As String, TP(500) As Integer
Text = "asdfdjkdjkvdfjkdfn" 'prohledávaný text
Pocet = 0
For I = 1 To Len(Text)
Byl = False
For J = 1 To Pocet
If Mid(Text, I, 1) = TT(J) Then
TP(J) = TP(J) + 1
Byl = True: Exit For
End If
Next J
If Byl = False Then
Pocet = Pocet + 1
TT(Pocet) = Mid(Text, I, 1)
TP(Pocet) = 1
End If
Next I
For I = 1 To Pocet
'výpis TT(I) a TP(I)
Next I
Příspěvky odeslané z IP adresy 88.103.130.–
Na formuláři je rozměrný prvek Label.
Pokud do něho vložím text cca 10 znaků, obsadí první řádek.
Pokud do něho vložím text cca 20 znaků, "zalomí" se v prvku na dva řádky.
Pokud do něho vložím text cca 50 znaků, "zalomí" se v prvku na čtyři řádky.
A tak podobně.
Jak zjistím, na kolik řádků se v prvku Label "zalomí" text libovolné délky.
Podle zjištěného počtu řádků potom mohu omezit výšku prvku Label.
Děkuji.
ad 1) Otevření textového souboru způsobem Append prodlužuje soubor (zapisuje na konec).
Např.
Open "Soubor.txt" For Append As #1
Print #1, "tento text bude zapsán za konec souboru"
Close #1
Používám trošičku jiný způsob a funguje bezchybně
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
RetVal = x / Screen.TwipsPerPixelX
Select Case RetVal
Case WM_LBUTTONDOWN
' zvedni form
Case WM_RBUTTONDOWN
' popup menu
Case WM_MBUTTONDOWN
' konec programu
End Select
End Sub
Mám podmínku, že: pokud počet písmen názvu otázky je menší než 20, vypiš 1. název otázky. Druhá podmínka je pokud počet písmen názvu otázky je větší jak 20, vypiš 1. + název otázky s maximálním počtem znaků 20.
dá se provést v v proceduře
Private Sub Text1_Change()
If Len(Text1.Text) <= 20 then
Label1.Caption = Text1.Text
else
Label1.Caption = "1. " & Mid(Text1.Text, 1, 20)
endif
End Sub
k bodu 2c)
pro všechny prvky
Dim Ctrl As Control
For Each Ctrl In Me.Controls
Ctrl.Enabled = True
Next
pro Command Button
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is CommandButton Then
Ctrl.Enabled = False
End If
Next
a tak podobně
Samozřejmě, toto není standardní funce VB, musíš ji nadeklarovat a ty použité konstanty také.
Public Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const EWX_FORCE = 4
Public Const EWX_SHUTDOWN = 1
Tyto deklarace najdeš např. v API Vieweru, který je dodáván s VB.
Zkus pomocí API
ExitWindowsEx EWX_SHUTDOWN, 0
nebo
ExitWindowsEx EWX_SHUTDOWN + EWX_FORCE, 0
Tak nevím, udělal jsem to přesně tak - jden DirListBox a jeden DriveListBox a stejný kód (ovšem mám VB6 na Win XP) a funguje to perfektně. Např. když vyberu CD a CD není založeno, projede to v pohodě a nekončí chybou. Totéž s výběrem prázdné disketové mechaniky. Zkusil jsem dát On Error GoTo ZobrazChybu a chybu to zachytilo a zobrazil se správný text a číslo chyby.
Stejný případ u simulovaného dělení nulou nebo LoadPicture na neexistující soubor na disku.
V jednom projektu využívám důsledně On Error (obsahuje ho každá procedura - případné chyby loguji) a nikdy jsem nepozoroval nefunkčnost.
Že by ta Vista? Nevím, nemám zkušenost.
Nepoužívám Dir, ale pokud příkaz Dir(cesta, vbSystem + vbHidden + vbReadOnly) vyhledá soubory se zadanými atributy, tak v tom by to mohlo být. Příkaz Kill nezruší soubor s atributem ReadOnly.