Форум программистов, компьютерный форум, киберфорум
fever brain
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Калькулятор

Запись от fever brain размещена 05.05.2017 в 16:32
Показов 3207 Комментарии 0
Метки vb

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Option Explicit
'
'Калькулятор (by the fever.brain 2017)
'
Const r = 90
 
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Dim WithEvents cmb As ComboBox, WithEvents txt As TextBox, WithEvents but As CommandButton
Dim i&, j&, ii&, l&, t&, w&, h&, x&, y&, s$, u$, v, Script As Object
 
Sub EnCode()
    Dim b() As Byte, i&, j#, ii&, n&, f$, h$(): ReDim h$(0): On Error Resume Next: ChDir App.Path: If Len(Dir("41.ico")) > 0 Then Exit Sub
    h(0) = "`````fЫ‰°№pmc`зИ№``f```````С†єpАs`ma``ыd``aЕАeжs„Е}nzc`pp``zxwґ±·dnК€dЮpk}цЪzzВпзѕhklµіґУj®ДяiviпдtИИ„dИВПЌбыЮ°ЮsЕ®jІЃlиТkъЮ·fѕr¶ЂfКdЉh€»y№ШОч»‚Су№jоеЉ…лрЮ|зщЯѕМЬизЯзщЊічgг‡ЗoЗпЯз№ЬйЬ»xyеЯbrpmisrjмЙЭfcbюСЧvdЉѕБЗ~pжЌФepЮpatuе°стД®‚ШхцМъ»Къы°·рЭЬrЦyвСзЩКep¶ґ`Шbвnk‚vШЇЙуФgѕ…Ыc®кuрaоп‹нОЇ·јНКѕюъuєє‹cббa}Мї±МЬасЙ}эШgУММРwАзЯЦ‹`sСМЅБрбЩcЗёЦжнhsЗ‡~ЫЇmЊЛВ‡чщЇъшоnЮqцПХЧмцЩxаocъо°ъЖрлА~jШ·аiУИrд`x‰eѕМмvЧпхn€xщК`ЂЯЌеh„u|щѓѕѕІяэjgµ±lwХxЩ·mґФkй~„в°ГЙНс„ЯІтТьЩ±ЕЙk№Икк|гмgЬП»u…|tѓэёtеµЅКнОн‡езПт±fцІЬц‹Ь¶РЛЩiщщщщiййьрФОэїЕї±єяє|c»июпЩhoйпЗЮоГeЧв„„·fг·ґ}cЧОcфж·‰uІТg‹іВТ‰„иИшГв|УАvИфЭмюЌ`яpуµжЊdik‰уъГёТиХТлЩАЂМиЉЙЕїЇ‚ЃґпЊaдСъnфeb`щхФжeкѓ‚†uЭє±эйЉэ`ЂРo®Гv°лЯоЬtЧ}Ю‚aШЕ®‚жзtг·eжјjО·Пдиs®єpЩїшебеєэ}ж€miШgwлЪokцяДјв†цpЩТі°·Еv№ае}}ж€mЌііѓмЩБwБЩzЧЮbиЧы†djaеЭbkФу…Ъхь}яч†mµ»іkВСфщxеvxЫРaнКжЃyeф±{nіlСнЖЮАlЬФБэКїdЊ…tСсхйС¶aуФэ®ЉБСкГеЕйzЊ€baґпЯxп‚€wтбшМЭуhiьѓШqoЮМ·яЉ°¶їhв~Ѕ`Ђc`Љ…``qtlР»бЊГЌкіФгѕюмУъµЯуzвчС`ЌЪ‹МuЙmШи№аЅП±зэјx†гwЖВjСЫёЫkХнaјhт°эєИчТяхxЗf…‚ОbТwp»м`Л‚†qgуpg»ГклЉ·ґРbГwv†Е|Зптhp`мµбµиХВi"
    For i = 1 To Len(h(0)): Do While Asc(Mid$(h(0), i, 1)) < 174: Mid$(h(0), i, 1) = Chr$(Asc(Mid$(h(0), i, 1)) + 32): Exit Do: Loop: Next: For i = 1 To 7: j = j * 128 + (Asc(Mid$(h(0), i, 1)) - 128): Next: ReDim b(j - 1): ii = j + i - 1: For i = i To ii: Do While i Mod 7 = 1: ii = ii + 1: n = (Asc(Mid$(h(0), ii, 1)) - 128): Exit Do: Loop: b(i - 8) = (Asc(Mid$(h(0), i, 1)) - 128) * 2 + n Mod 2: n = n \ 2: Next: Erase h: f = "tmpEnCoderArc.rar": i = FreeFile: Open f$ For Binary As #i: Put #i, 1, b: Close #i: Call CreateObject("WScript.Shell").Run("WinRAR x -y """ & f & "", 1, True):  Kill f
End Sub
 
Private Sub but_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    With but
        Select Case Len(.Caption)
        Case 1
            Select Case Asc(.Caption)
            Case 67: txt.Text = ""
            Case 40 To 57, 61, 94: SendKeys "{" & .Caption & "}", 1
            End Select
        Case Else: If .Caption = "und" Then txtUpdate IIf(u = "", 0, u) Else SendKeys .Caption, 1: SendKeys "{(}", 1
        End Select
    End With
End Sub
 
Private Sub txt_Change()
    If txt.Text = "" Then txt.Text = "0": txt.SelLength = 2
End Sub
 
Private Sub txt_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case 1: txt.SelStart = 0: txt.SelLength = 2 ^ 15: KeyAscii = 0
    Case 13, 61
        On Error Resume Next
        u = txt.Text: s = Replace(Replace(u, " ", ""), ",", "."): s = Script.eval(s)
        If Err Then MsgBox Err.Description & vbLf & Err.Number Else If Len(s) Then cmb.AddItem s, 0: txtUpdate IIf(s = "", 0, s)
        KeyAscii = 0
    End Select
End Sub
 
Private Sub Form_Load()
    Def l, r, t, r, w, r * 31, h, r * 3, x, Screen.TwipsPerPixelX, y, Screen.TwipsPerPixelY
    Set cmb = SetProp(vbCtrAdd(Me, "ComboBox"), "move" & ToStr(l, t, w))
    Set txt = SetProp(vbCtrAdd(Me, "textbox"), "text=0;SelLength=2;ZOrder 0;move" & ToStr(l + x, t + y, w - r * 3 - x * 2, h))
    Def t, t + txt.Height + r, l, r, w, r * 6, h, r * 4, ii, 0, s, "123=C456+-789*/,0^()", v, Split("sin cos tan sqr abs atn exp log rnd und")
    For i = 1 To 6: If i = 5 Then t = t + r
        For j = 1 To 5
            With Controls.Add("vb.CommandButton", "but" & ii)
                 If j = 4 Then l = l + r
                 SetProp Controls("but" & ii), "fontbold=1;fontsize=9;move" & ToStr(l, t, w, h): Def l, l + w, ii, ii + 1
                If i < 5 Then .Caption = Mid$(s, ii, 1) Else .Caption = v(ii - 21)
            End With
    Next: Def l, r, t, t + h: Next
    Set Script = CreateObject("MSScriptControl.ScriptControl"): Script.Language = "VBScript"
    Call EnCode
    SetProp FinSize(Me), "Caption=Калькулятор;StartUpPosition=2;icon=41.ico;MaxButton=0"
    txt.SetFocus
    End Sub
 
Private Sub txtUpdate(ByVal NewText$): With txt: .Text = "": SendKeys Replace(Replace(NewText, "+", "{+}"), "^", "{^}"), 1: End With: End Sub
Private Sub cmb_Click(): With txt: .Text = cmb.Text: .SelStart = Len(.Text): End With: End Sub
Private Sub but_Click(): txt.SetFocus: End Sub
 
'==========================================
 Function SetProp(ByVal Obj As Object, ByVal Prop$, Optional ByVal Visible& = 1): Dim a&, b&, c&, q&, i$(), j$(), k$(), v, s$, frm As Form: On Error Resume Next: For Each v In Array(".", ";", "=", ",", "(", ")"): For a = 1 To 2: s = Choose(a, v & " ", " " & v): While InStr(Prop, s): Prop = Replace(Prop, s, v): Wend: Next: Next: i = Split(Trim$(Prop), ";"): Set SetProp = Obj: For a = 0 To UBound(i): j = Split(i(a), "=", 2): q = UBound(j): Select Case q: Case 1: GoSub Get_to: Select Case LCase(j(0))
    'Зависимости: GetWindowLong , SendMessage, SetWindowLong
    Case "maxbutton": SetWindowLong Obj.hwnd, -16, IIf(CBool(j(1)), GetWindowLong(Obj.hwnd, -16) Or &H10000 Or &H40000, GetWindowLong(Obj.hwnd, -16) And Not &H10000 And Not &H40000): Obj.Hide: Case "container": q = InStr(1, j(1), "("): Select Case q: Case 0: Set Obj.Container = CallByName(Obj.Parent, j(1), 2): Case Else: Set Obj.Container = CallByName(Obj.Parent, Left$(j(1), q - 1), 2, Val(Mid$(j(1), q + 1))): End Select: Case "icon": Set frm = Obj: frm.Icon = LoadPicture(j(1)): For q = 0 To 1: Call SendMessage(frm.hwnd, &H80, q, ByVal frm.Icon.Handle): Next: Case "picture": CallByName Obj, j(0), 4, LoadPicture(j(1)): Case "list": k = Split(j(1), ","): For c = 0 To UBound(k): Obj.AddItem k(c): Next: Case "startupposition": Select Case j(1): Case 0: Obj.Move 0, 0: Case 1, 2: Obj.Move (Screen.Width - Obj.Width) / 2, (Screen.Height - Obj.Height) / 2: End Select
    Case Else: CallByName Obj, j(0), 4, j(1): End Select: Case Else: While InStr(i(a), "  "): i(a) = Replace(i(a), "  ", " "): Wend: j = Split(i(a), , 2): q = UBound(j): Select Case q: Case 0: GoSub Get_to: CallByName Obj, j(0), 1: Case Else: GoSub Get_to: k = Split(j(1), ","): q = UBound(k): Select Case q: Case 0: CallByName Obj, j(0), 1, k(0): Case 1: CallByName Obj, j(0), 1, k(0), k(1): Case 2: CallByName Obj, j(0), 1, k(0), k(1), k(2): Case 3: CallByName Obj, j(0), 1, k(0), k(1), k(2), k(3): End Select: End Select: End Select: Next:  DoEvents: SetProp.Visible = Visible: Exit Function
Get_to: Set Obj = SetProp: k = Split(j(0), "."): For c = 0 To UBound(k) - 1: Set Obj = CallByName(Obj, k(c), 2): Next: j(0) = k(c): Return
End Function
Function vbCtrAdd(ByVal Parent As Object, ByVal vbCtrType) As Object: Dim i&, j&, s$, t$: On Error Resume Next: vbCtrType = LCase(vbCtrType): t = Mid(vbCtrType, 1, 1): i = 2: Do: s = Mid(vbCtrType, i, 1): Do While Not s Like "[aeiouwy]": t = t & s: j = j + 1: Exit Do: Loop: i = i + 1: Loop Until j = 2 Or i > Len(vbCtrType): Do While j < 2: t = t & String(2 - j, "_"): Exit Do: Loop: i = 1: Do: s = t & i: i = i + 1: Loop While Not IsError(Parent.Controls(s).Name): Set vbCtrAdd = Controls.Add("vb." & vbCtrType, s, Parent): End Function
Function FinSize(Parent As Object, Optional ByVal gaps = 90): Dim v, sz&(1): Set FinSize = Parent: With Parent: For Each v In Parent.Controls: Do While v.Left + v.Width > sz(0): sz(0) = v.Left + v.Width: Exit Do: Loop: Do While v.Top + v.Height > sz(1): sz(1) = v.Top + v.Height: Exit Do: Loop: Next: .Move .Left, .Top, sz(0) + (.Width - .ScaleWidth) + r, sz(1) + (.Height - .ScaleHeight) + gaps: End With: End Function
Function ToStr$(ParamArray Args()): Dim v, i&: For Each v In Args: Select Case i: Case 0: i = 1: ToStr = " " & v: Case 1: ToStr = ToStr$ & "," & v: End Select: Next: End Function
Sub Def(ParamArray w()): Dim i&: For i = 0 To UBound(w) Step 2: w(i) = w(i + 1): Next: End Sub
'==========================================
Private Sub but_LostFocus(): On Error Resume Next: Set but = ActiveControl: End Sub
Private Sub cmb_LostFocus(): but_LostFocus: End Sub
Private Sub txt_LostFocus(): but_LostFocus: End Sub
Миниатюры
Нажмите на изображение для увеличения
Название: 13_winxp_installf.png
Просмотров: 1662
Размер:	5.3 Кб
ID:	4381   Нажмите на изображение для увеличения
Название: 5155360.jpg
Просмотров: 1851
Размер:	50.6 Кб
ID:	4542   Нажмите на изображение для увеличения
Название: 2003.jpg
Просмотров: 1460
Размер:	54.4 Кб
ID:	4680  

Нажмите на изображение для увеличения
Название: 2007.jpg
Просмотров: 1871
Размер:	93.9 Кб
ID:	4681   Нажмите на изображение для увеличения
Название: original.jpg
Просмотров: 781
Размер:	243.2 Кб
ID:	4722   Нажмите на изображение для увеличения
Название: гифки-горлум-удалённое-737907.gif
Просмотров: 6106
Размер:	506.4 Кб
ID:	4954  

Изображения
 
Метки vb
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru