eCigTalk.org - Powered by vBulletin



Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 21 по 40 из 141

Тема: Написал eJuiceCalculator для Мака

  1. #21
    Новичок
    Репутация: 11
    Регистрация: 13.05.2011
    Пол:
    Адрес: Кисловодск
    Сообщений: 35
    На 10.7.2 работает отлично. Огромное спасибо.

  2. #22
    Новичок
    Репутация: 6
    Регистрация: 21.08.2011
    Пол:
    Адрес: Москва
    Сообщений: 30
    все отлично работает спасибо!!!

  3. #23
    Вэйпер
    Репутация: 42
    Регистрация: 12.05.2011
    Пол:
    Адрес: Ulyanovsk
    Сообщений: 643
    Накидал iPhone UI для основного экрана:



    Решил не разбивать на сильно много экранов. Постарался размещать в лаконичной форме все вместе. Так намного нагляднее.
    Можно конечно и на много экранов разбить, а значения вообще брать в отдельном диалоге Picker View с прокруткой пальцем, но это будет чехорда экранов. Плюс цифрами оно часто быстрее ввести.

    В дизайнерские изыски вдаваться особо некогда, если кто предложит свои красивые бэкграунды и цветовые схемы, всегда вэлком. Буду рад любой помощи, предложениям, пожеланиям и прочему конструктиву.

    Сейчас вот думаю какую показывать клавиатуру при клике на поле. Num Pad как для набора телефона с крупными цифрами (и Done делать на клик мимо клавиатуры, там его нет, как и запятой, не знаю нужна ли она особо). Или обычную клавиатуру переключенную на цифры, с кнопкой Done, точками - запятыми и пр... ??

    оффтопик:
    Как смастерю первый релиз, надо бы в отдельную тему будет выделить, чтобы здесь не сорить). А эту тему с Mac OS X версией конечно хорошо бы прикрепить наверх, чтобы люди долго не искали.
    Вещь нужная, полезная. Пользуюсь, понравилось)

    Потрачено ~24300р.

  4. #24
    Гуру Аватар для AVK
    Репутация: 222
    Регистрация: 07.12.2010
    Пол:
    Адрес: Москва
    Сообщений: 3,305
    Цитата Сообщение от remint Посмотреть сообщение
    Накидал iPhone UI для основного экрана
    Только я картинку не вижу?

  5. #25
    Гуру Аватар для Superglucker
    Репутация: 594
    Регистрация: 28.02.2011
    Пол:
    Адрес: Moscow - фигоскоу ;)
    Сообщений: 3,440
    AVK, open image in new tab =)
    а в посте не видать, да

  6. #26
    Гуру Аватар для AVK
    Репутация: 222
    Регистрация: 07.12.2010
    Пол:
    Адрес: Москва
    Сообщений: 3,305
    Цитата Сообщение от Superglucker Посмотреть сообщение
    open image in new tab =)
    Пробовал, естественно. Нифига.

  7. #27
    Гуру Аватар для Superglucker
    Репутация: 594
    Регистрация: 28.02.2011
    Пол:
    Адрес: Moscow - фигоскоу ;)
    Сообщений: 3,440
    remint, имхо в "желаемом результате" можно убрать строчку с кнопками "traditional - ice blade - velvet cloud - другой", - тогда внизу строка со страницами влезет, типа: "одна - две - блабалбла - настройки".

    ---------- Сообщение отправлено в 20:05 ---------- Предыдущее сообщение отправлено в 20:03 ----------

    Цитата Сообщение от AVK Посмотреть сообщение
    Пробовал, естественно. Нифига.
    У меня открылось.
    Картинко там такое (перезалил себе в дропбокс):


    ооо... у мну круглые цифры в счётчике...
    Последний раз редактировалось Superglucker; 16.09.2011 в 22:24.

  8. #28
    Гуру Аватар для AVK
    Репутация: 222
    Регистрация: 07.12.2010
    Пол:
    Адрес: Москва
    Сообщений: 3,305
    О! Добавил в начале www. - открылось. Глюк какой-то.

    remint, симпатично, но надо бы предусмотреть переключатель на две основы.

  9. #29
    Вэйпер
    Репутация: 42
    Регистрация: 12.05.2011
    Пол:
    Адрес: Ulyanovsk
    Сообщений: 643
    Цитата Сообщение от AVK Посмотреть сообщение
    Пробовал, естественно. Нифига.
    Оно как-то не сразу и не всегда проходит на этих хостингах. Сначала тоже у самого картинки небыло, какие линки не вставлял, потом "просралось" - появилась.
    Толи от их загрузки сервера, то ли от кэшей каких-то зависит.
    Цитата Сообщение от Superglucker Посмотреть сообщение
    имхо в "желаемом результате можно убрать строчку с кнопками "traditional - ice blade - velvet cloud - другой", - тогда внизу строка со страницами влезет, типа: "одна - две - блабалбла - настройки".
    Да, как вариант. Либо туда же навтыкать переключение настроек в этот свитч контрол.
    Я еще сверху планирую в будущем, при скроле всей страницы вниз переключение режимов показывать, калькулятор жижи, расчет ваттов (из омов и вольтов) и т.п. С автоубиранием обратно по таймауту. Ну можно какую-нибудь счетчик потребления жижи пользователем со статистикой придумать, может закладку с линками на форумы для удобства. Общие настройки при нажатии на (i) с переворачиванием экрана.
    Но пока основное сделать.

    Потрачено ~24300р.

  10. #30
    Гуру Аватар для Superglucker
    Репутация: 594
    Регистрация: 28.02.2011
    Пол:
    Адрес: Moscow - фигоскоу ;)
    Сообщений: 3,440
    Что-то думал, что для двух основ проще будет, да вот никак не соображу чё-то...
    Имеем:
    Nic1 (целые числа, как мы привыкли);
    Nic2 (целые числа, как мы привыкли);
    Aroma (вещественные: 0,05 значит 5 процентов [знак % с последующей круглой скобкой ")" движок на смайл заменяет])
    TargetNic (целые числа, как мы привыкли);
    Qty (количество, в миллилитрах).

    у меня получилось такое уравнение:

    TargetNic * Qty = Aroma * Qty + Nic1*(x - Aroma*Qty) + Nic2*(Qty - x - Aroma*Qty),

    где х - искомое количество основы с концентрацией Nic1.

    В итоге:

    x = (TargetNic*Qty - Aroma*Qty + Nic1*Aroma*Qty - Nic2*Qty - Nic2*Aroma*Qty) / (Nic1 - Nic2)

    так?
    Только что-то с расчётом калькулятора от Сергея не сходится: то одинаково, то нет...
    Последний раз редактировалось Superglucker; 16.09.2011 в 22:24.

  11. #31
    Вэйпер
    Репутация: 42
    Регистрация: 12.05.2011
    Пол:
    Адрес: Ulyanovsk
    Сообщений: 643
    Вроде бы все правильно.
    У меня это наверно будет только для iPad версии, на iPhone будет перегруз интерфейса)), хотя если с прокруткой экрана.. Пока не потыкаешь не поймешь удобно будет, или нет.

    Потрачено ~24300р.

  12. #32
    Вэйпер Аватар для BOBAH
    Репутация: 46
    Регистрация: 08.02.2011
    Пол:
    Адрес: Замкадье
    Сообщений: 895
    Записей в дневнике
    4
    вот кстати тема с формулами http://www.ecigtalk.ru/forum/f23/t6460-p3.html
    Happy vaping!  

  13. #33
    Гуру Аватар для Superglucker
    Репутация: 594
    Регистрация: 28.02.2011
    Пол:
    Адрес: Moscow - фигоскоу ;)
    Сообщений: 3,440
    Цитата Сообщение от remint Посмотреть сообщение
    Вроде бы все правильно.
    Почему тогда не сходится? И главное: почему то сходится, то нет?!?! WTF?
    У меня пока формула в экселе, калькулятор Сергея на vb запускаю на корпоративном win-буке.

    ---------- Сообщение отправлено в 20:47 ---------- Предыдущее сообщение отправлено в 20:44 ----------

    Цитата Сообщение от BOBAH Посмотреть сообщение
    вот кстати тема с формулами Увеличение крепости
    там проще всё =)
    тут ещё арома, которая никотина не имеет. Правильно ли я её учёл?
    Если да, то почему не сходится: у меня косяк или у Сергея? =)
    Последний раз редактировалось Superglucker; 17.09.2011 в 00:14.

  14. #34
    Новичок
    Репутация: 2
    Регистрация: 07.06.2011
    Пол:
    Адрес: Уфа
    Сообщений: 50
    Вот за это респект "писальщику"!! Пасиба!

  15. #35
    Гуру Аватар для svoemesto
    Репутация: 1765
    Регистрация: 30.10.2010
    Пол:
    Адрес: Москва
    Сообщений: 9,758
    Первая часть:

    Код:
    Public Class frmCalc
    
        Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
        Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Long
        'Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpszSection$, ByVal lpszKey$, ByVal lpszDefault$, ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, ByVal lpszFile$)
    
        Public blTypeChangeManual As Boolean
        Public blLoadINI As Boolean
    
        Private Function INI_SetValue(ByVal Section As String, ByVal Key As String, ByVal strValue As String, ByVal fFileName As String) As String
            Call WritePrivateProfileString(Section, Key, strValue, fFileName)
        End Function
    
        Private Function INI_GetValue(ByVal Section As String, ByVal Key As String, ByVal fFileName As String, Optional ByVal DefaultValue As String = "") As String
            Dim Data As String
            Dim i As Long
            Data = "" : For i = 1 To 1000 : Data = Data & " " : Next i
            'Data = Space(1000)
            If GetPrivateProfileString(Section, Key, "", Data, Len(Data), fFileName) > 0 Then
                INI_GetValue = Trim(Data)
            Else
                INI_GetValue = DefaultValue
            End If
            Exit Function
        End Function
    
        Function GetFromString_FileName(ByVal strFileNameAndFolder As String) As String
            Dim i As Long
            Dim str As String
            str = ""
            For i = 1 To Len(strFileNameAndFolder)
                If Mid(strFileNameAndFolder, Len(strFileNameAndFolder) - i + 1, 1) <> "\" Then
                    str = Mid(strFileNameAndFolder, Len(strFileNameAndFolder) - i + 1, 1) & str
                Else
                    Exit For
                End If
            Next i
            GetFromString_FileName = str
        End Function
    
        Function GetFromString_FileFolder(ByVal strFileNameAndFolder As String) As String
            Dim i As Long
            Dim str As String
            str = ""
            GetFromString_FileFolder = ""
            For i = 1 To Len(strFileNameAndFolder)
                If Mid(strFileNameAndFolder, Len(strFileNameAndFolder) - i + 1, 1) = "\" Then
                    GetFromString_FileFolder = Mid(strFileNameAndFolder, 1, Len(strFileNameAndFolder) - i)
                    Exit For
                End If
            Next i
        End Function
    
        Function GetFromString_FileExt(ByVal strFileNameAndFolder As String) As String
            Dim i As Long
            Dim str As String
            str = ""
            For i = 1 To Len(strFileNameAndFolder)
                If Mid(strFileNameAndFolder, Len(strFileNameAndFolder) - i + 1, 1) <> "." Then
                    str = Mid(strFileNameAndFolder, Len(strFileNameAndFolder) - i + 1, 1) & str
                Else
                    Exit For
                End If
            Next i
            GetFromString_FileExt = str
        End Function
    
        Sub INI_SaveToFile()
            Dim strFileName As String, strFilePath As String, strAppExtPath As String, strFileNameAndPath As String
            Dim strListItems As String, i As Long
    
            strAppExtPath = Application.ExecutablePath
            strFilePath = GetFromString_FileFolder(strAppExtPath)
            strFileName = Mid(GetFromString_FileName(strAppExtPath), 1, Len(GetFromString_FileName(strAppExtPath)) - Len(GetFromString_FileExt(strAppExtPath)) - 1) & ".ini"
            strFileNameAndPath = strFilePath & "\" & strFileName
    
    
            Call INI_SetValue("Main", "ctlALG1_PGinBASE", ctlALG1_PGinBASE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_VGinBASE", ctlALG1_VGinBASE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_ADinBASE", ctlALG1_ADinBASE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_NICinBASE", ctlALG1_NICinBASE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_BASE_VOL", ctlALG1_BASE_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_BASE_PRICE", ctlALG1_BASE_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_PG_VOL", ctlALG1_PG_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_PG_PRICE", ctlALG1_PG_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_VG_VOL", ctlALG1_VG_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_VG_PRICE", ctlALG1_VG_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_AD_VOL", ctlALG1_AD_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_AD_PRICE", ctlALG1_AD_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_AR_VOL", ctlALG1_AR_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_AR_PRICE", ctlALG1_AR_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_DROPSinML", ctlALG1_DROPSinML.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_NICinNEED", ctlALG1_NICinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_PGinNEED", ctlALG1_PGinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_VGinNEED", ctlALG1_VGinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_ADinNEED", ctlALG1_ADinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_ARinNEED", ctlALG1_ARinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_VOLinNEED", ctlALG1_VOLinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_MLinDAY", ctlALG1_MLinDAY.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG1_DAYS", ctlALG1_DAYS.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_PGinBASE1", ctlALG2_PGinBASE1.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_VGinBASE1", ctlALG2_VGinBASE1.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_ADinBASE1", ctlALG2_ADinBASE1.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_NICinBASE1", ctlALG2_NICinBASE1.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_PGinBASE2", ctlALG2_PGinBASE2.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_VGinBASE2", ctlALG2_VGinBASE2.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_ADinBASE2", ctlALG2_ADinBASE2.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_NICinBASE2", ctlALG2_NICinBASE2.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_BASE1_VOL", ctlALG2_BASE1_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_BASE1_PRICE", ctlALG2_BASE1_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_BASE2_VOL", ctlALG2_BASE2_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_BASE2_PRICE", ctlALG2_BASE2_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_AR_VOL", ctlALG2_AR_VOL.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_AR_PRICE", ctlALG2_AR_PRICE.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_DROPSinML", ctlALG2_DROPSinML.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_NICinNEED", ctlALG2_NICinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_ARinNEED", ctlALG2_ARinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Main", "ctlALG2_VOLinNEED", ctlALG2_VOLinNEED.Text, strFileNameAndPath)
            Call INI_SetValue("Language", "ctlLanguage", ctlLanguage.Text, strFileNameAndPath)
            Call INI_SetValue("Currency", "ctlCurrency", ctlCurrency.Text, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_PGinBASE.Items.Count - 1
                strListItems = strListItems & ctlALG1_PGinBASE.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_PGinBASE", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_VGinBASE.Items.Count - 1
                strListItems = strListItems & ctlALG1_VGinBASE.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_VGinBASE", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_ADinBASE.Items.Count - 1
                strListItems = strListItems & ctlALG1_ADinBASE.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_ADinBASE", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_NICinBASE.Items.Count - 1
                strListItems = strListItems & ctlALG1_NICinBASE.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_NICinBASE", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_DROPSinML.Items.Count - 1
                strListItems = strListItems & ctlALG1_DROPSinML.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_DROPSinML", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_NICinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG1_NICinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_NICinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_PGinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG1_PGinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_PGinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_VGinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG1_VGinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_VGinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_ADinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG1_ADinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_ADinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_ARinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG1_ARinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_ARinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_VOLinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG1_VOLinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_VOLinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_MLinDAY.Items.Count - 1
                strListItems = strListItems & ctlALG1_MLinDAY.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_MLinDAY", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG1_DAYS.Items.Count - 1
                strListItems = strListItems & ctlALG1_DAYS.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG1_DAYS", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_PGinBASE1.Items.Count - 1
                strListItems = strListItems & ctlALG2_PGinBASE1.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_PGinBASE1", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_VGinBASE1.Items.Count - 1
                strListItems = strListItems & ctlALG2_VGinBASE1.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_VGinBASE1", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_ADinBASE1.Items.Count - 1
                strListItems = strListItems & ctlALG2_ADinBASE1.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_ADinBASE1", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_NICinBASE1.Items.Count - 1
                strListItems = strListItems & ctlALG2_NICinBASE1.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_NICinBASE1", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_PGinBASE2.Items.Count - 1
                strListItems = strListItems & ctlALG2_PGinBASE2.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_PGinBASE2", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_VGinBASE2.Items.Count - 1
                strListItems = strListItems & ctlALG2_VGinBASE2.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_VGinBASE2", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_ADinBASE2.Items.Count - 1
                strListItems = strListItems & ctlALG2_ADinBASE2.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_ADinBASE2", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_NICinBASE2.Items.Count - 1
                strListItems = strListItems & ctlALG2_NICinBASE2.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_NICinBASE2", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_DROPSinML.Items.Count - 1
                strListItems = strListItems & ctlALG2_DROPSinML.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_DROPSinML", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_NICinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG2_NICinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_NICinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_ARinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG2_ARinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_ARinNEED", strListItems, strFileNameAndPath)
    
            strListItems = ""
            For i = 0 To ctlALG2_VOLinNEED.Items.Count - 1
                strListItems = strListItems & ctlALG2_VOLinNEED.Items(i).ToString & ";"
            Next i
            strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
            Call INI_SetValue("List", "ctlALG2_VOLinNEED", strListItems, strFileNameAndPath)
    
    
        End Sub
    
        Function FileUtils_IsFilePresent(ByVal strFileName As String) As Boolean
            Dim strTmp As String 'Временная переменная
            FileUtils_IsFilePresent = False
            On Error Resume Next
            strTmp = Dir(strFileName)
            If Err.Number <> 0 Then Exit Function
            If strTmp <> "" Then FileUtils_IsFilePresent = True
        End Function
        Sub INI_LoadFromFile()
            Dim strFileName As String, strFilePath As String, strAppExtPath As String, strFileNameAndPath As String
            Dim strListItems As String, i As Long
    
            strAppExtPath = Application.ExecutablePath
            strFilePath = GetFromString_FileFolder(strAppExtPath)
            strFileName = Mid(GetFromString_FileName(strAppExtPath), 1, Len(GetFromString_FileName(strAppExtPath)) - Len(GetFromString_FileExt(strAppExtPath)) - 1) & ".ini"
            strFileNameAndPath = strFilePath & "\" & strFileName
    
            If FileUtils_IsFilePresent(strFileNameAndPath) = False Then Exit Sub
    
            blLoadINI = True
    
            ctlALG1_PGinBASE.Text = INI_GetValue("Main", "ctlALG1_PGinBASE", strFileNameAndPath)
            ctlALG1_VGinBASE.Text = INI_GetValue("Main", "ctlALG1_VGinBASE", strFileNameAndPath)
            ctlALG1_ADinBASE.Text = INI_GetValue("Main", "ctlALG1_ADinBASE", strFileNameAndPath)
            ctlALG1_NICinBASE.Text = INI_GetValue("Main", "ctlALG1_NICinBASE", strFileNameAndPath)
            ctlALG1_BASE_VOL.Text = INI_GetValue("Main", "ctlALG1_BASE_VOL", strFileNameAndPath)
            ctlALG1_BASE_PRICE.Text = INI_GetValue("Main", "ctlALG1_BASE_PRICE", strFileNameAndPath)
            ctlALG1_PG_VOL.Text = INI_GetValue("Main", "ctlALG1_PG_VOL", strFileNameAndPath)
            ctlALG1_PG_PRICE.Text = INI_GetValue("Main", "ctlALG1_PG_PRICE", strFileNameAndPath)
            ctlALG1_VG_VOL.Text = INI_GetValue("Main", "ctlALG1_VG_VOL", strFileNameAndPath)
            ctlALG1_VG_PRICE.Text = INI_GetValue("Main", "ctlALG1_VG_PRICE", strFileNameAndPath)
            ctlALG1_AD_VOL.Text = INI_GetValue("Main", "ctlALG1_AD_VOL", strFileNameAndPath)
            ctlALG1_AD_PRICE.Text = INI_GetValue("Main", "ctlALG1_AD_PRICE", strFileNameAndPath)
            ctlALG1_AR_VOL.Text = INI_GetValue("Main", "ctlALG1_AR_VOL", strFileNameAndPath)
            ctlALG1_AR_PRICE.Text = INI_GetValue("Main", "ctlALG1_AR_PRICE", strFileNameAndPath)
            ctlALG1_DROPSinML.Text = INI_GetValue("Main", "ctlALG1_DROPSinML", strFileNameAndPath)
            ctlALG1_NICinNEED.Text = INI_GetValue("Main", "ctlALG1_NICinNEED", strFileNameAndPath)
            ctlALG1_PGinNEED.Text = INI_GetValue("Main", "ctlALG1_PGinNEED", strFileNameAndPath)
            ctlALG1_VGinNEED.Text = INI_GetValue("Main", "ctlALG1_VGinNEED", strFileNameAndPath)
            ctlALG1_ADinNEED.Text = INI_GetValue("Main", "ctlALG1_ADinNEED", strFileNameAndPath)
            ctlALG1_ARinNEED.Text = INI_GetValue("Main", "ctlALG1_ARinNEED", strFileNameAndPath)
            ctlALG1_VOLinNEED.Text = INI_GetValue("Main", "ctlALG1_VOLinNEED", strFileNameAndPath)
            ctlALG1_MLinDAY.Text = INI_GetValue("Main", "ctlALG1_MLinDAY", strFileNameAndPath)
            ctlALG1_DAYS.Text = INI_GetValue("Main", "ctlALG1_DAYS", strFileNameAndPath)
            ctlALG2_PGinBASE1.Text = INI_GetValue("Main", "ctlALG2_PGinBASE1", strFileNameAndPath)
            ctlALG2_VGinBASE1.Text = INI_GetValue("Main", "ctlALG2_VGinBASE1", strFileNameAndPath)
            ctlALG2_ADinBASE1.Text = INI_GetValue("Main", "ctlALG2_ADinBASE1", strFileNameAndPath)
            ctlALG2_NICinBASE1.Text = INI_GetValue("Main", "ctlALG2_NICinBASE1", strFileNameAndPath)
            ctlALG2_PGinBASE2.Text = INI_GetValue("Main", "ctlALG2_PGinBASE2", strFileNameAndPath)
            ctlALG2_VGinBASE2.Text = INI_GetValue("Main", "ctlALG2_VGinBASE2", strFileNameAndPath)
            ctlALG2_ADinBASE2.Text = INI_GetValue("Main", "ctlALG2_ADinBASE2", strFileNameAndPath)
            ctlALG2_NICinBASE2.Text = INI_GetValue("Main", "ctlALG2_NICinBASE2", strFileNameAndPath)
            ctlALG2_BASE1_VOL.Text = INI_GetValue("Main", "ctlALG2_BASE1_VOL", strFileNameAndPath)
            ctlALG2_BASE1_PRICE.Text = INI_GetValue("Main", "ctlALG2_BASE1_PRICE", strFileNameAndPath)
            ctlALG2_BASE2_VOL.Text = INI_GetValue("Main", "ctlALG2_BASE2_VOL", strFileNameAndPath)
            ctlALG2_BASE2_PRICE.Text = INI_GetValue("Main", "ctlALG2_BASE2_PRICE", strFileNameAndPath)
            ctlALG2_AR_VOL.Text = INI_GetValue("Main", "ctlALG2_AR_VOL", strFileNameAndPath)
            ctlALG2_AR_PRICE.Text = INI_GetValue("Main", "ctlALG2_AR_PRICE", strFileNameAndPath)
            ctlALG2_DROPSinML.Text = INI_GetValue("Main", "ctlALG2_DROPSinML", strFileNameAndPath)
            ctlALG2_NICinNEED.Text = INI_GetValue("Main", "ctlALG2_NICinNEED", strFileNameAndPath)
            ctlALG2_ARinNEED.Text = INI_GetValue("Main", "ctlALG2_ARinNEED", strFileNameAndPath)
            ctlALG2_VOLinNEED.Text = INI_GetValue("Main", "ctlALG2_VOLinNEED", strFileNameAndPath)
    
            ctlLanguage.Text = INI_GetValue("Language", "ctlLanguage", strFileNameAndPath)
            ctlCurrency.Text = INI_GetValue("Currency", "ctlCurrency", strFileNameAndPath)
    
            strListItems = INI_GetValue("List", "ctlALG1_PGinBASE", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_PGinBASE.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_PGinBASE.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_VGinBASE", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_VGinBASE.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_VGinBASE.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_ADinBASE", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_ADinBASE.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_ADinBASE.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_NICinBASE", strFileNameAndPath)
            strListItems = SortList(strListItems, ";")
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_NICinBASE.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_NICinBASE.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_DROPSinML", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_DROPSinML.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_DROPSinML.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_NICinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_NICinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_NICinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_PGinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_PGinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_PGinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_VGinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_VGinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_VGinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_ADinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_ADinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_ADinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_ARinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_ARinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_ARinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_VOLinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_VOLinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_VOLinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_MLinDAY", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_MLinDAY.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_MLinDAY.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG1_DAYS", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG1_DAYS.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG1_DAYS.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_PGinBASE1", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_PGinBASE1.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_PGinBASE1.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_VGinBASE1", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_VGinBASE1.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_VGinBASE1.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_ADinBASE1", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_ADinBASE1.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_ADinBASE1.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_NICinBASE1", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_NICinBASE1.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_NICinBASE1.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_PGinBASE2", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_PGinBASE2.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_PGinBASE2.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_VGinBASE2", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_VGinBASE2.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_VGinBASE2.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_ADinBASE2", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_ADinBASE2.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_ADinBASE2.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
    
            strListItems = INI_GetValue("List", "ctlALG2_NICinBASE2", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_NICinBASE2.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_NICinBASE2.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
            blLoadINI = False
    
            strListItems = INI_GetValue("List", "ctlALG2_DROPSinML", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_DROPSinML.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_DROPSinML.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
            blLoadINI = False
    
            strListItems = INI_GetValue("List", "ctlALG2_NICinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_NICinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_NICinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
            blLoadINI = False
    
            strListItems = INI_GetValue("List", "ctlALG2_ARinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_ARinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_ARinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
            blLoadINI = False
    
            strListItems = INI_GetValue("List", "ctlALG2_VOLinNEED", strFileNameAndPath)
            If Len(strListItems) <> 1000 Then
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctlALG2_VOLinNEED.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctlALG2_VOLinNEED.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
            blLoadINI = False
    
        End Sub
    
        Function StrUtils_GetCountSubStrings(ByVal strText1 As String, ByVal strText2 As String, Optional ByVal lngStartPosition As Long = 1) As Integer
            Dim lngPosition As Integer     'Текущая позиция подстроки strText2 в строке strText1
            Dim lngCount As Long        'Счетчик вхождений подстроки strText2 в строке strText1
            lngPosition = lngStartPosition - Len(strText2)
            lngCount = -1
            Do 'Цикл
                lngPosition = InStr(lngPosition + Len(strText2), strText1, strText2)
                lngCount = lngCount + 1
            Loop Until lngPosition = 0 'Заканчиваем цикл если текущая позиция = 0
            StrUtils_GetCountSubStrings = lngCount
        End Function
    
        Function StrUtils_GetWordDec(ByVal strText As String, ByVal lngNumber As Long, ByVal strDec As String) As String
            Dim lngFirstPos As Long
            Dim lngNextPos As Long
            Dim lngStartPosition As Long
            Dim lngPosition As Integer
            Dim lngCount As Long
            strText = " " & strDec & strText & strDec & " "
            lngStartPosition = 2
            lngPosition = lngStartPosition - Len(strDec)
            lngCount = 0
            Do
                lngPosition = InStr(lngPosition + Len(strDec), strText, strDec)
                If lngPosition <> 0 Then
                    lngCount = lngCount + 1
                    If lngNumber = lngCount Then
                        lngFirstPos = lngPosition
                    End If
                    If lngNumber + 1 = lngCount Then
                        lngNextPos = lngPosition
                        Exit Do
                    End If
                End If
            Loop Until lngPosition = 0
            If lngFirstPos <> 0 And lngNextPos <> 0 Then
                StrUtils_GetWordDec = Mid(strText, lngFirstPos + 1, lngNextPos - lngFirstPos - 1)
            End If
        End Function


    ---------- Сообщение отправлено в 10:29 ---------- Предыдущее сообщение отправлено в 10:27 ----------

    Вторая часть:

    Код:
        Private Sub CalcMe()
    
            'Декларируем переменные
            Dim dblNICinBASE1 As Double, dblPGinBASE1 As Double, dblVGinBASE1 As Double, dblADinBASE1 As Double, dblDROPSinML1 As Double
            Dim dblNICinBASE2 As Double, dblPGinBASE2 As Double, dblVGinBASE2 As Double, dblADinBASE2 As Double, dblDROPSinML2 As Double
            Dim dblNICinNEED As Double, dblPGinNEED As Double, dblVGinNEED As Double, dblADinNEED As Double, dblARinNEED As Double, dblVOLinNEED As Double
            Dim dblBASE1toOUTml As Double, dblBASE2toOUTml As Double, dblPGtoOUTml As Double, dblVGtoOUTml As Double, dblADtoOUTml As Double, dblARtoOUTml As Double
            Dim dblPGinADDml As Double, dblVGinADDml As Double, dblADinADDml As Double, dblARinADDml As Double
            Dim dblBASE1toOUTdr As Double, dblBASE2toOUTdr As Double, dblPGtoOUTdr As Double, dblVGtoOUTdr As Double, dblADtoOUTdr As Double, dblARtoOUTdr As Double
            Dim dblPGinOUT As Double, dblVGinOUT As Double, dblADinOUT As Double, dblARinOUT As Double, dblVOLinOUT As Double, dblNICinOUT As Double
            Dim dblDIFFml As Double
            Dim dblWidthDelta As Double, dblHeightDelta As Double
            Dim lngAlgoritm As Long
            Dim dblPartBase1InOUT As Double, dblPartBase2InOUT As Double
    
            Dim dblALG1_BASE_VOL As Double, dblALG1_PG_VOL As Double, dblALG1_VG_VOL As Double, dblALG1_AD_VOL As Double, dblALG1_AR_VOL As Double
            Dim dblALG1_BASE_PRICE As Double, dblALG1_PG_PRICE As Double, dblALG1_VG_PRICE As Double, dblALG1_AD_PRICE As Double, dblALG1_AR_PRICE As Double
            Dim dblALG1_BASE_RUB As Double, dblALG1_PG_RUB As Double, dblALG1_VG_RUB As Double, dblALG1_AD_RUB As Double, dblALG1_AR_RUB As Double
            Dim dblALG1_TOTAL_ML As Double, dblALG1_TOTAL_DR As Double, dblALG1_TOTAL_RUB As Double
    
            Dim dblALG2_BASE1_VOL As Double, dblALG2_BASE2_VOL As Double, dblALG2_AR_VOL As Double
            Dim dblALG2_BASE1_PRICE As Double, dblALG2_BASE2_PRICE As Double, dblALG2_AR_PRICE As Double
            Dim dblALG2_BASE1_RUB As Double, dblALG2_BASE2_RUB As Double, dblALG2_AR_RUB As Double
            Dim dblALG2_TOTAL_ML As Double, dblALG2_TOTAL_DR As Double, dblALG2_TOTAL_RUB As Double
    
    
    
            lngAlgoritm = ctlPagesAlgoritm.SelectedIndex
    
            Select Case lngAlgoritm
    
                Case 0
    
                    'Если один из введенных параметров не цифровой - на выход
                    If (Not IsNumeric(ctlALG1_NICinBASE.Text)) Or (Not IsNumeric(ctlALG1_PGinBASE.Text)) Or (Not IsNumeric(ctlALG1_VGinBASE.Text)) _
                         Or (Not IsNumeric(ctlALG1_ADinBASE.Text)) Or (Not IsNumeric(ctlALG1_NICinNEED.Text)) Or (Not IsNumeric(ctlALG1_PGinNEED.Text)) _
                         Or (Not IsNumeric(ctlALG1_VGinNEED.Text)) Or (Not IsNumeric(ctlALG1_ADinNEED.Text)) Or (Not IsNumeric(ctlALG1_ARinNEED.Text)) _
                         Or (Not IsNumeric(ctlALG1_VOLinNEED.Text)) Then
                        GoTo ErrInInput_Alg1
                    End If
    
                    Call InitValues()
    
                    'Присваиваем переменным входные значения
                    dblNICinBASE1 = CDbl(ctlALG1_NICinBASE.Text)
                    dblPGinBASE1 = CDbl(ctlALG1_PGinBASE.Text)
                    dblVGinBASE1 = CDbl(ctlALG1_VGinBASE.Text)
                    dblADinBASE1 = CDbl(ctlALG1_ADinBASE.Text)
                    dblDROPSinML1 = CDbl(ctlALG1_DROPSinML.Text)
                    dblNICinNEED = CDbl(ctlALG1_NICinNEED.Text)
                    dblPGinNEED = CDbl(ctlALG1_PGinNEED.Text)
                    dblVGinNEED = CDbl(ctlALG1_VGinNEED.Text)
                    dblADinNEED = CDbl(ctlALG1_ADinNEED.Text)
                    dblARinNEED = CDbl(ctlALG1_ARinNEED.Text)
                    dblVOLinNEED = CDbl(ctlALG1_VOLinNEED.Text)
                    dblALG1_BASE_VOL = CDbl(ctlALG1_BASE_VOL.Text)
                    dblALG1_PG_VOL = CDbl(ctlALG1_PG_VOL.Text)
                    dblALG1_VG_VOL = CDbl(ctlALG1_VG_VOL.Text)
                    dblALG1_AD_VOL = CDbl(ctlALG1_AD_VOL.Text)
                    dblALG1_AR_VOL = CDbl(ctlALG1_AR_VOL.Text)
                    dblALG1_BASE_PRICE = CDbl(ctlALG1_BASE_PRICE.Text)
                    dblALG1_PG_PRICE = CDbl(ctlALG1_PG_PRICE.Text)
                    dblALG1_VG_PRICE = CDbl(ctlALG1_VG_PRICE.Text)
                    dblALG1_AD_PRICE = CDbl(ctlALG1_AD_PRICE.Text)
                    dblALG1_AR_PRICE = CDbl(ctlALG1_AR_PRICE.Text)
    
                    'Если содержание никотина в базовой жидкости меньше необходимого или общий объем меньше 0 - на выход
                    If dblNICinBASE1 < dblNICinNEED Or dblVOLinNEED <= 0 Then GoTo ErrInInput_Alg1
    
                    'Рассчитываем количество базовой жидкости исходя из необходимой концентрации никотина
                    If dblNICinNEED <= 0 Then
                        dblBASE1toOUTml = 0
                        dblPGinADDml = 0
                        dblVGinADDml = 0
                        dblADinADDml = 0
                    Else
                        dblBASE1toOUTml = CDbl((dblNICinNEED / dblNICinBASE1) * dblVOLinNEED)
                        dblPGinADDml = dblBASE1toOUTml * dblPGinBASE1 / 100
                        dblVGinADDml = dblBASE1toOUTml * dblVGinBASE1 / 100
                        dblADinADDml = dblBASE1toOUTml * dblADinBASE1 / 100
                    End If
    
                    'Расчитываем количество пропиленгликоля
                    If dblPGinNEED > 0 Then
                        dblPGtoOUTml = CDbl(dblPGinNEED * dblVOLinNEED / 100) - dblPGinADDml
                        If dblPGtoOUTml < 0 Then
                            dblPGtoOUTml = 0
                        Else
                            dblPGinADDml = dblPGinADDml + dblPGtoOUTml
                        End If
                    End If
    
                    'Расчитываем количество глицерина
                    If dblVGinNEED > 0 Then
                        dblVGtoOUTml = CDbl(dblVGinNEED * dblVOLinNEED / 100) - dblVGinADDml
                        If dblVGtoOUTml < 0 Then
                            dblVGtoOUTml = 0
                        Else
                            dblVGinADDml = dblVGinADDml + dblVGtoOUTml
                        End If
                    End If
    
                    'Расчитываем количество дистиллированной воды
                    If dblADinNEED > 0 Then
                        dblADtoOUTml = CDbl(dblADinNEED * dblVOLinNEED / 100) - dblADinADDml
                        If dblADtoOUTml < 0 Then
                            dblADtoOUTml = 0
                        Else
                            dblADinADDml = dblADinADDml + dblADtoOUTml
                        End If
                    End If
    
                    'Расчитываем количество ароматизатора
                    If dblARinNEED > 0 Then
                        dblARtoOUTml = CDbl(dblARinNEED * dblVOLinNEED / 100)
                        dblARinADDml = dblARtoOUTml
                    End If
    
                    'Выравниваем получившееся количество мл. с необходимым
                    dblDIFFml = dblPGinADDml + dblVGinADDml + dblADinADDml + dblARinADDml - dblVOLinNEED
                    If dblDIFFml > 0 Then
                        If dblVGtoOUTml > dblDIFFml Then
                            dblVGtoOUTml = dblVGtoOUTml - dblDIFFml
                            dblVGinADDml = dblVGinADDml - dblDIFFml
                        ElseIf dblPGtoOUTml > dblDIFFml Then
                            dblPGtoOUTml = dblPGtoOUTml - dblDIFFml
                            dblPGinADDml = dblPGinADDml - dblDIFFml
                        End If
                    ElseIf dblDIFFml < 0 Then
                        If dblVGinNEED > 0 Then
                            dblVGtoOUTml = dblVGtoOUTml + dblDIFFml
                            dblVGinADDml = dblVGinADDml + dblDIFFml
                        ElseIf dblPGinNEED > 0 Then
                            dblPGtoOUTml = dblPGtoOUTml + dblDIFFml
                            dblPGinADDml = dblPGinADDml + dblDIFFml
                        End If
                    End If
    
                    dblVOLinOUT = dblPGinADDml + dblVGinADDml + dblADinADDml + dblARinADDml
                    dblNICinOUT = dblNICinBASE1 * dblBASE1toOUTml / dblVOLinOUT
    
                    dblPGinOUT = (dblPGinADDml / dblVOLinOUT) * 100
                    dblVGinOUT = (dblVGinADDml / dblVOLinOUT) * 100
                    dblADinOUT = (dblADinADDml / dblVOLinOUT) * 100
                    dblARinOUT = (dblARinADDml / dblVOLinOUT) * 100
    
                    'Пересчитываем миллилитры в капли
                    If dblDROPSinML1 <= 0 Then
                        GoTo ErrInInput_Alg1
                    Else
                        dblBASE1toOUTdr = Int(dblDROPSinML1 * dblBASE1toOUTml)
                        dblPGtoOUTdr = Int(dblDROPSinML1 * dblPGtoOUTml)
                        dblVGtoOUTdr = Int(dblDROPSinML1 * dblVGtoOUTml)
                        dblADtoOUTdr = Int(dblDROPSinML1 * dblADtoOUTml)
                        dblARtoOUTdr = Int(dblDROPSinML1 * dblARtoOUTml)
                    End If
    
                    dblALG1_BASE_RUB = dblBASE1toOUTml * IIf(dblALG1_BASE_VOL = 0, 0, dblALG1_BASE_PRICE / dblALG1_BASE_VOL)
                    dblALG1_PG_RUB = dblPGtoOUTml * IIf(dblALG1_PG_VOL = 0, 0, dblALG1_PG_PRICE / dblALG1_PG_VOL)
                    dblALG1_VG_RUB = dblVGtoOUTml * IIf(dblALG1_VG_VOL = 0, 0, dblALG1_VG_PRICE / dblALG1_VG_VOL)
                    dblALG1_AD_RUB = dblADtoOUTml * IIf(dblALG1_AD_VOL = 0, 0, dblALG1_AD_PRICE / dblALG1_AD_VOL)
                    dblALG1_AR_RUB = dblARtoOUTml * IIf(dblALG1_AR_VOL = 0, 0, dblALG1_AR_PRICE / dblALG1_AR_VOL)
    
                    dblALG1_TOTAL_ML = dblBASE1toOUTml + dblPGtoOUTml + dblVGtoOUTml + dblADtoOUTml + dblARtoOUTml
                    dblALG1_TOTAL_DR = dblBASE1toOUTdr + dblPGtoOUTdr + dblVGtoOUTdr + dblADtoOUTdr + dblARtoOUTdr
                    dblALG1_TOTAL_RUB = dblALG1_BASE_RUB + dblALG1_PG_RUB + dblALG1_VG_RUB + dblALG1_AD_RUB + dblALG1_AR_RUB
    
                    'Заполняем поля вывода
                    ctlALG1_BASEtoOUTml.Text = Format(dblBASE1toOUTml, "# ##0.00")
                    ctlALG1_PGtoOUTml.Text = Format(dblPGtoOUTml, "# ##0.00")
                    ctlALG1_VGtoOUTml.Text = Format(dblVGtoOUTml, "# ##0.00")
                    ctlALG1_ADtoOUTml.Text = Format(dblADtoOUTml, "# ##0.00")
                    ctlALG1_ARtoOUTml.Text = Format(dblARtoOUTml, "# ##0.00")
                    ctlALG1_BASEtoOUTdr.Text = dblBASE1toOUTdr
                    ctlALG1_PGtoOUTdr.Text = dblPGtoOUTdr
                    ctlALG1_VGtoOUTdr.Text = dblVGtoOUTdr
                    ctlALG1_ADtoOUTdr.Text = dblADtoOUTdr
                    ctlALG1_ARtoOUTdr.Text = dblARtoOUTdr
                    ctlVOLinOUT.Text = Format(dblVOLinOUT, "# ##0.00")
                    ctlNICinOUT.Text = Format(dblNICinOUT, "# ##0.00")
                    ctlPGinOUT.Text = Format(dblPGinOUT, "# ##0.00")
                    ctlVGinOUT.Text = Format(dblVGinOUT, "# ##0.00")
                    ctlADinOUT.Text = Format(dblADinOUT, "# ##0.00")
                    ctlARinOUT.Text = Format(dblARinOUT, "# ##0.00")
    
                    ctlALG1_BASE_RUB.Text = Format(dblALG1_BASE_RUB, "# ##0.00")
                    ctlALG1_PG_RUB.Text = Format(dblALG1_PG_RUB, "# ##0.00")
                    ctlALG1_VG_RUB.Text = Format(dblALG1_VG_RUB, "# ##0.00")
                    ctlALG1_AD_RUB.Text = Format(dblALG1_AD_RUB, "# ##0.00")
                    ctlALG1_AR_RUB.Text = Format(dblALG1_AR_RUB, "# ##0.00")
                    ctlALG1_TOTAL_ML.Text = Format(dblALG1_TOTAL_ML, "# ##0.00")
                    ctlALG1_TOTAL_DR.Text = dblALG1_TOTAL_DR
                    ctlALG1_TOTAL_RUB.Text = Format(dblALG1_TOTAL_RUB, "# ##0.00")
    
                    'Отрисовываем прямоугольники
    
                    dblWidthDelta = 1
                    dblHeightDelta = 1
    
                    ctlRECT_BASE1.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_BASE1.Left = ctlGLASS.Left + dblWidthDelta
                    If dblBASE1toOUTml = 0 Then
                        ctlRECT_BASE1.Height = 0
                    Else
                        ctlRECT_BASE1.Height = ctlGLASS.Height * (dblBASE1toOUTml / dblVOLinOUT) - dblWidthDelta
                    End If
                    ctlRECT_BASE1.Top = ctlGLASS.Top + ctlGLASS.Height - ctlRECT_BASE1.Height - dblWidthDelta
    
                    ctlRECT_BASE2.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_BASE2.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_BASE2.Height = 0
                    ctlRECT_BASE2.Top = ctlGLASS.Top + ctlGLASS.Height - ctlRECT_BASE2.Height - dblWidthDelta
    
                    ctlRECT_PG.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_PG.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_PG.Height = ctlGLASS.Height * (dblPGtoOUTml / dblVOLinOUT)
                    ctlRECT_PG.Top = ctlRECT_BASE1.Top - ctlRECT_PG.Height
    
                    ctlRECT_VG.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_VG.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_VG.Height = ctlGLASS.Height * (dblVGtoOUTml / dblVOLinOUT)
                    ctlRECT_VG.Top = ctlRECT_PG.Top - ctlRECT_VG.Height
    
                    ctlRECT_AD.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_AD.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_AD.Height = ctlGLASS.Height * (dblADtoOUTml / dblVOLinOUT)
                    ctlRECT_AD.Top = ctlRECT_VG.Top - ctlRECT_AD.Height
    
                    ctlRECT_AR.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_AR.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_AR.Height = ctlGLASS.Height * (dblARtoOUTml / dblVOLinOUT)
                    ctlRECT_AR.Top = ctlRECT_AD.Top - ctlRECT_AR.Height
    
                    Exit Sub
    
    ErrInInput_Alg1:
                    'Заполняем поля вывода "---"
                    ctlALG1_BASEtoOUTml.Text = "---"
                    ctlALG1_PGtoOUTml.Text = "---"
                    ctlALG1_VGtoOUTml.Text = "---"
                    ctlALG1_ADtoOUTml.Text = "---"
                    ctlALG1_ARtoOUTml.Text = "---"
                    ctlALG1_BASEtoOUTdr.Text = "---"
                    ctlALG1_PGtoOUTdr.Text = "---"
                    ctlALG1_VGtoOUTdr.Text = "---"
                    ctlALG1_ADtoOUTdr.Text = "---"
                    ctlALG1_ARtoOUTdr.Text = "---"
                    ctlVOLinOUT.Text = "---"
                    ctlNICinOUT.Text = "---"
                    ctlPGinOUT.Text = "---"
                    ctlVGinOUT.Text = "---"
                    ctlADinOUT.Text = "---"
                    ctlARinOUT.Text = "---"
                    ctlALG1_BASE_RUB.Text = "---"
                    ctlALG1_PG_RUB.Text = "---"
                    ctlALG1_VG_RUB.Text = "---"
                    ctlALG1_AD_RUB.Text = "---"
                    ctlALG1_AR_RUB.Text = "---"
                    ctlALG1_TOTAL_ML.Text = "---"
                    ctlALG1_TOTAL_DR.Text = "---"
                    ctlALG1_TOTAL_RUB.Text = "---"
    
                    Exit Sub
    
                Case 1
    
                    'Если один из введенных параметров не цифровой - на выход
                    If (Not IsNumeric(ctlALG2_NICinBASE1.Text)) Or (Not IsNumeric(ctlALG2_PGinBASE1.Text)) Or (Not IsNumeric(ctlALG2_VGinBASE1.Text)) Or (Not IsNumeric(ctlALG2_ADinBASE1.Text)) _
                         Or (Not IsNumeric(ctlALG2_NICinBASE2.Text)) Or (Not IsNumeric(ctlALG2_PGinBASE2.Text)) Or (Not IsNumeric(ctlALG2_VGinBASE2.Text)) Or (Not IsNumeric(ctlALG2_ADinBASE2.Text)) _
                         Or (Not IsNumeric(ctlALG2_NICinNEED.Text)) _
                         Or (Not IsNumeric(ctlALG2_ARinNEED.Text)) _
                         Or (Not IsNumeric(ctlALG2_VOLinNEED.Text)) Then
                        GoTo ErrInInput_Alg2
                    End If
    
                    Call InitValues()
    
                    'Присваиваем переменным входные значения
                    dblNICinBASE1 = CDbl(ctlALG2_NICinBASE1.Text)
                    dblPGinBASE1 = CDbl(ctlALG2_PGinBASE1.Text)
                    dblVGinBASE1 = CDbl(ctlALG2_VGinBASE1.Text)
                    dblADinBASE1 = CDbl(ctlALG2_ADinBASE1.Text)
                    dblNICinBASE2 = CDbl(ctlALG2_NICinBASE2.Text)
                    dblPGinBASE2 = CDbl(ctlALG2_PGinBASE2.Text)
                    dblVGinBASE2 = CDbl(ctlALG2_VGinBASE2.Text)
                    dblADinBASE2 = CDbl(ctlALG2_ADinBASE2.Text)
                    dblDROPSinML2 = CDbl(ctlALG2_DROPSinML.Text)
                    dblNICinNEED = CDbl(ctlALG2_NICinNEED.Text)
                    dblARinNEED = CDbl(ctlALG2_ARinNEED.Text)
                    dblVOLinNEED = CDbl(ctlALG2_VOLinNEED.Text)
                    dblALG2_BASE1_VOL = CDbl(ctlALG2_BASE1_VOL.Text)
                    dblALG2_BASE2_VOL = CDbl(ctlALG2_BASE2_VOL.Text)
                    dblALG2_AR_VOL = CDbl(ctlALG2_AR_VOL.Text)
                    dblALG2_BASE1_PRICE = CDbl(ctlALG2_BASE1_PRICE.Text)
                    dblALG2_BASE2_PRICE = CDbl(ctlALG2_BASE2_PRICE.Text)
                    dblALG2_AR_PRICE = CDbl(ctlALG2_AR_PRICE.Text)
    
    
                    'Если содержание никотина в базовой жидкости меньше необходимого или общий объем меньше 0 - на выход
                    If dblVOLinNEED <= 0 Or (dblNICinBASE1 = dblNICinBASE2) Or _
                        (dblNICinBASE1 > dblNICinBASE2 And (dblNICinNEED > dblNICinBASE1 Or dblNICinNEED < dblNICinBASE2)) Or _
                        (dblNICinBASE2 > dblNICinBASE1 And (dblNICinNEED > dblNICinBASE2 Or dblNICinNEED < dblNICinBASE1)) Or _
                        (dblNICinNEED = dblNICinBASE1) Or (dblNICinNEED = dblNICinBASE2) Then GoTo ErrInInput_Alg2
    
                    'Расчитываем количество ароматизатора
                    If dblARinNEED > 0 Then
                        dblARtoOUTml = CDbl(dblARinNEED * dblVOLinNEED / 100)
                        dblARinADDml = dblARtoOUTml
                    End If
    
                    'Определяем доли базовых жидкостей
    
                    dblNICinNEED = dblNICinNEED * dblVOLinNEED / (dblVOLinNEED - dblARtoOUTml)
    
                    dblPartBase1InOUT = 1
                    dblPartBase2InOUT = (dblNICinBASE1 - dblNICinNEED) / (dblNICinNEED - dblNICinBASE2)
    
                    dblBASE1toOUTml = dblPartBase1InOUT * (dblVOLinNEED - dblARtoOUTml) / (dblPartBase1InOUT + dblPartBase2InOUT)
                    dblBASE2toOUTml = dblPartBase2InOUT * (dblVOLinNEED - dblARtoOUTml) / (dblPartBase1InOUT + dblPartBase2InOUT)
    
                    dblPGinADDml = dblBASE1toOUTml * dblPGinBASE1 / 100 + dblBASE2toOUTml * dblPGinBASE2 / 100
                    dblVGinADDml = dblBASE1toOUTml * dblVGinBASE1 / 100 + dblBASE2toOUTml * dblVGinBASE2 / 100
                    dblADinADDml = dblBASE1toOUTml * dblADinBASE1 / 100 + dblBASE2toOUTml * dblADinBASE2 / 100
    
                    dblVOLinOUT = dblPGinADDml + dblVGinADDml + dblADinADDml + dblARinADDml
                    dblNICinOUT = (dblNICinBASE1 * dblBASE1toOUTml + dblNICinBASE2 * dblBASE2toOUTml) / dblVOLinOUT
    
                    dblPGinOUT = (dblPGinADDml / dblVOLinOUT) * 100
                    dblVGinOUT = (dblVGinADDml / dblVOLinOUT) * 100
                    dblADinOUT = (dblADinADDml / dblVOLinOUT) * 100
                    dblARinOUT = (dblARinADDml / dblVOLinOUT) * 100
    
                    'Пересчитываем миллилитры в капли
                    If dblDROPSinML2 <= 0 Then
                        GoTo ErrInInput_Alg2
                    Else
                        dblBASE1toOUTdr = Int(dblDROPSinML2 * dblBASE1toOUTml)
                        dblBASE2toOUTdr = Int(dblDROPSinML2 * dblBASE2toOUTml)
                        dblARtoOUTdr = Int(dblDROPSinML2 * dblARtoOUTml)
                    End If
    
                    dblALG2_BASE1_RUB = dblBASE1toOUTml * IIf(dblALG2_BASE1_VOL = 0, 0, dblALG2_BASE1_PRICE / dblALG2_BASE1_VOL)
                    dblALG2_BASE2_RUB = dblBASE2toOUTml * IIf(dblALG2_BASE2_VOL = 0, 0, dblALG2_BASE2_PRICE / dblALG2_BASE2_VOL)
                    dblALG2_AR_RUB = dblARtoOUTml * IIf(dblALG2_AR_VOL = 0, 0, dblALG2_AR_PRICE / dblALG2_AR_VOL)
    
                    dblALG2_TOTAL_ML = dblBASE1toOUTml + dblBASE2toOUTml + dblARtoOUTml
                    dblALG2_TOTAL_DR = dblBASE1toOUTdr + dblBASE2toOUTdr + dblARtoOUTdr
                    dblALG2_TOTAL_RUB = dblALG2_BASE1_RUB + dblALG2_BASE2_RUB + dblALG2_AR_RUB
    
    
                    'Заполняем поля вывода
                    ctlALG2_BASE1toOUTml.Text = Format(dblBASE1toOUTml, "# ##0.00")
                    ctlALG2_BASE2toOUTml.Text = Format(dblBASE2toOUTml, "# ##0.00")
                    ctlALG2_ARtoOUTml.Text = Format(dblARtoOUTml, "# ##0.00")
                    ctlALG2_BASE1toOUTdr.Text = dblBASE1toOUTdr
                    ctlALG2_BASE2toOUTdr.Text = dblBASE2toOUTdr
                    ctlALG2_ARtoOUTdr.Text = dblARtoOUTdr
                    ctlVOLinOUT.Text = Format(dblVOLinOUT, "# ##0.00")
                    ctlNICinOUT.Text = Format(dblNICinOUT, "# ##0.00")
                    ctlPGinOUT.Text = Format(dblPGinOUT, "# ##0.00")
                    ctlVGinOUT.Text = Format(dblVGinOUT, "# ##0.00")
                    ctlADinOUT.Text = Format(dblADinOUT, "# ##0.00")
                    ctlARinOUT.Text = Format(dblARinOUT, "# ##0.00")
    
                    ctlALG2_BASE1_RUB.Text = Format(dblALG2_BASE1_RUB, "# ##0.00")
                    ctlALG2_BASE2_RUB.Text = Format(dblALG2_BASE2_RUB, "# ##0.00")
                    ctlALG2_AR_RUB.Text = Format(dblALG2_AR_RUB, "# ##0.00")
                    ctlALG2_TOTAL_ML.Text = Format(dblALG2_TOTAL_ML, "# ##0.00")
                    ctlALG2_TOTAL_DR.Text = dblALG2_TOTAL_DR
                    ctlALG2_TOTAL_RUB.Text = Format(dblALG2_TOTAL_RUB, "# ##0.00")
    
                    'Отрисовываем прямоугольники
    
                    dblWidthDelta = 1
                    dblHeightDelta = 1
    
                    ctlRECT_BASE1.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_BASE1.Left = ctlGLASS.Left + dblWidthDelta
                    If dblBASE1toOUTml = 0 Then
                        ctlRECT_BASE1.Height = 0
                    Else
                        ctlRECT_BASE1.Height = ctlGLASS.Height * (dblBASE1toOUTml / dblVOLinOUT) - dblWidthDelta
                    End If
                    ctlRECT_BASE1.Top = ctlGLASS.Top + ctlGLASS.Height - ctlRECT_BASE1.Height - dblWidthDelta
    
                    ctlRECT_BASE2.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_BASE2.Left = ctlGLASS.Left + dblWidthDelta
                    If dblBASE2toOUTml = 0 Then
                        ctlRECT_BASE2.Height = 0
                    Else
                        ctlRECT_BASE2.Height = ctlGLASS.Height * (dblBASE2toOUTml / dblVOLinOUT)
                    End If
                    ctlRECT_BASE2.Top = ctlRECT_BASE1.Top - ctlRECT_BASE2.Height
    
                    ctlRECT_PG.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_PG.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_PG.Height = 0
                    ctlRECT_PG.Top = ctlRECT_BASE2.Top - ctlRECT_PG.Height
    
                    ctlRECT_VG.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_VG.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_VG.Height = 0
                    ctlRECT_VG.Top = ctlRECT_PG.Top - ctlRECT_VG.Height
    
                    ctlRECT_AD.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_AD.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_AD.Height = 0
                    ctlRECT_AD.Top = ctlRECT_VG.Top - ctlRECT_AD.Height
    
                    ctlRECT_AR.Width = ctlGLASS.Width - 2 * dblWidthDelta
                    ctlRECT_AR.Left = ctlGLASS.Left + dblWidthDelta
                    ctlRECT_AR.Height = ctlGLASS.Height * (dblARtoOUTml / dblVOLinOUT)
                    ctlRECT_AR.Top = ctlRECT_AD.Top - ctlRECT_AR.Height
    
                    Exit Sub
    
    ErrInInput_Alg2:
                    'Заполняем поля вывода "---"
                    ctlALG2_BASE1toOUTml.Text = "---"
                    ctlALG2_BASE2toOUTml.Text = "---"
                    ctlALG2_ARtoOUTml.Text = "---"
                    ctlALG2_BASE1toOUTdr.Text = "---"
                    ctlALG2_BASE2toOUTdr.Text = "---"
                    ctlALG2_ARtoOUTdr.Text = "---"
                    ctlVOLinOUT.Text = "---"
                    ctlNICinOUT.Text = "---"
                    ctlPGinOUT.Text = "---"
                    ctlVGinOUT.Text = "---"
                    ctlADinOUT.Text = "---"
                    ctlARinOUT.Text = "---"
                    ctlALG2_BASE1_RUB.Text = "---"
                    ctlALG2_BASE2_RUB.Text = "---"
                    ctlALG2_AR_RUB.Text = "---"
                    ctlALG2_TOTAL_ML.Text = "---"
                    ctlALG2_TOTAL_DR.Text = "---"
                    ctlALG2_TOTAL_RUB.Text = "---"
    
                    Exit Sub
    
    
            End Select
    
        End Sub
    Магазин SvoёMesto

  16. #36
    Гуру Аватар для svoemesto
    Репутация: 1765
    Регистрация: 30.10.2010
    Пол:
    Адрес: Москва
    Сообщений: 9,758
    Третья часть:

    Код:
        Private Sub InitValues()
    
            Select Case ctlPagesAlgoritm.SelectedIndex
                Case 0
                    ctlPageAdd1.Visible = True
                    ctlPageAdd2.Visible = False
                Case 1
                    ctlPageAdd2.Visible = True
                    ctlPageAdd1.Visible = False
            End Select
    
            If Not IsNumeric(ctlALG1_NICinBASE.Text) Then ctlALG1_NICinBASE.Text = 36
            If Not IsNumeric(ctlALG1_PGinBASE.Text) Then ctlALG1_PGinBASE.Text = 55
            If Not IsNumeric(ctlALG1_VGinBASE.Text) Then ctlALG1_VGinBASE.Text = 35
            If Not IsNumeric(ctlALG1_ADinBASE.Text) Then ctlALG1_ADinBASE.Text = 10
            If Not IsNumeric(ctlALG1_DROPSinML.Text) Then ctlALG1_DROPSinML.Text = 33
            If Not IsNumeric(ctlALG1_NICinNEED.Text) Then ctlALG1_NICinNEED.Text = 18
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then ctlALG1_ARinNEED.Text = 5
            If Not IsNumeric(ctlALG1_VOLinNEED.Text) Then ctlALG1_VOLinNEED.Text = 10
            If Not IsNumeric(ctlALG1_DAYS.Text) Then ctlALG1_DAYS.Text = 5
            If Not IsNumeric(ctlALG1_MLinDAY.Text) Then ctlALG1_MLinDAY.Text = 2
            If Not IsNumeric(ctlALG1_BASE_VOL.Text) Then ctlALG1_BASE_VOL.Text = 100
            If Not IsNumeric(ctlALG1_BASE_PRICE.Text) Then ctlALG1_BASE_PRICE.Text = 830
            If Not IsNumeric(ctlALG1_PG_VOL.Text) Then ctlALG1_PG_VOL.Text = 100
            If Not IsNumeric(ctlALG1_PG_PRICE.Text) Then ctlALG1_PG_PRICE.Text = 60
            If Not IsNumeric(ctlALG1_VG_VOL.Text) Then ctlALG1_VG_VOL.Text = 100
            If Not IsNumeric(ctlALG1_VG_PRICE.Text) Then ctlALG1_VG_PRICE.Text = 60
            If Not IsNumeric(ctlALG1_AD_VOL.Text) Then ctlALG1_AD_VOL.Text = 1000
            If Not IsNumeric(ctlALG1_AD_PRICE.Text) Then ctlALG1_AD_PRICE.Text = 25
            If Not IsNumeric(ctlALG1_AR_VOL.Text) Then ctlALG1_AR_VOL.Text = 4
            If Not IsNumeric(ctlALG1_AR_PRICE.Text) Then ctlALG1_AR_PRICE.Text = 50
    
            If Not IsNumeric(ctlALG2_NICinBASE1.Text) Then ctlALG2_NICinBASE1.Text = 36
            If Not IsNumeric(ctlALG2_PGinBASE1.Text) Then ctlALG2_PGinBASE1.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE1.Text) Then ctlALG2_VGinBASE1.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE1.Text) Then ctlALG2_ADinBASE1.Text = 10
            If Not IsNumeric(ctlALG2_NICinBASE2.Text) Then ctlALG2_NICinBASE2.Text = 0
            If Not IsNumeric(ctlALG2_PGinBASE2.Text) Then ctlALG2_PGinBASE2.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE2.Text) Then ctlALG2_VGinBASE2.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE2.Text) Then ctlALG2_ADinBASE2.Text = 10
            If Not IsNumeric(ctlALG2_DROPSinML.Text) Then ctlALG2_DROPSinML.Text = 33
            If Not IsNumeric(ctlALG2_NICinNEED.Text) Then ctlALG2_NICinNEED.Text = 18
            If Not IsNumeric(ctlALG2_ARinNEED.Text) Then ctlALG2_ARinNEED.Text = 5
            If Not IsNumeric(ctlALG2_VOLinNEED.Text) Then ctlALG2_VOLinNEED.Text = 10
            If Not IsNumeric(ctlALG2_BASE1_VOL.Text) Then ctlALG2_BASE1_VOL.Text = 100
            If Not IsNumeric(ctlALG2_BASE1_PRICE.Text) Then ctlALG2_BASE1_PRICE.Text = 830
            If Not IsNumeric(ctlALG2_BASE2_VOL.Text) Then ctlALG2_BASE2_VOL.Text = 100
            If Not IsNumeric(ctlALG2_BASE2_PRICE.Text) Then ctlALG2_BASE2_PRICE.Text = 60
            If Not IsNumeric(ctlALG2_AR_VOL.Text) Then ctlALG2_AR_VOL.Text = 4
            If Not IsNumeric(ctlALG2_AR_PRICE.Text) Then ctlALG2_AR_PRICE.Text = 50
    
            If blTypeChangeManual = True Then
    
    
    
                If ctlALG1_PGinBASE.Text = 55 And ctlALG1_VGinBASE.Text = 35 And ctlALG1_ADinBASE.Text = 10 Then
                    ctlALG1_RB_Traditional.Checked = True
                    ctlALG1_PGinBASE.Enabled = False
                    ctlALG1_VGinBASE.Enabled = False
                    ctlALG1_ADinBASE.Enabled = False
                ElseIf ctlALG1_PGinBASE.Text = 95 And ctlALG1_VGinBASE.Text = 0 And ctlALG1_ADinBASE.Text = 5 Then
                    ctlALG1_RB_IceBlade.Checked = True
                    ctlALG1_PGinBASE.Enabled = False
                    ctlALG1_VGinBASE.Enabled = False
                    ctlALG1_ADinBASE.Enabled = False
                ElseIf ctlALG1_PGinBASE.Text = 0 And ctlALG1_VGinBASE.Text = 80 And ctlALG1_ADinBASE.Text = 20 Then
                    ctlALG1_RB_Velvet.Checked = True
                    ctlALG1_PGinBASE.Enabled = False
                    ctlALG1_VGinBASE.Enabled = False
                    ctlALG1_ADinBASE.Enabled = False
                Else
                    ctlALG1_RB_Other.Checked = True
                    ctlALG1_PGinBASE.Enabled = True
                    ctlALG1_VGinBASE.Enabled = True
                    ctlALG1_ADinBASE.Enabled = True
                End If
    
                If ctlALG2_PGinBASE1.Text = 55 And ctlALG2_VGinBASE1.Text = 35 And ctlALG2_ADinBASE1.Text = 10 Then
                    ctlALG2_RB_Traditional1.Checked = True
                    ctlALG2_PGinBASE1.Enabled = False
                    ctlALG2_VGinBASE1.Enabled = False
                    ctlALG2_ADinBASE1.Enabled = False
                ElseIf ctlALG2_PGinBASE1.Text = 95 And ctlALG2_VGinBASE1.Text = 0 And ctlALG2_ADinBASE1.Text = 5 Then
                    ctlALG2_RB_IceBlade1.Checked = True
                    ctlALG2_PGinBASE1.Enabled = False
                    ctlALG2_VGinBASE1.Enabled = False
                    ctlALG2_ADinBASE1.Enabled = False
                ElseIf ctlALG2_PGinBASE1.Text = 0 And ctlALG2_VGinBASE1.Text = 80 And ctlALG2_ADinBASE1.Text = 20 Then
                    ctlALG2_RB_Velvet1.Checked = True
                    ctlALG2_PGinBASE1.Enabled = False
                    ctlALG2_VGinBASE1.Enabled = False
                    ctlALG2_ADinBASE1.Enabled = False
                Else
                    ctlALG2_RB_Other1.Checked = True
                    ctlALG2_PGinBASE1.Enabled = True
                    ctlALG2_VGinBASE1.Enabled = True
                    ctlALG2_ADinBASE1.Enabled = True
                End If
    
                If ctlALG2_PGinBASE2.Text = 55 And ctlALG2_VGinBASE2.Text = 35 And ctlALG2_ADinBASE2.Text = 10 Then
                    ctlALG2_RB_Traditional2.Checked = True
                    ctlALG2_PGinBASE2.Enabled = False
                    ctlALG2_VGinBASE2.Enabled = False
                    ctlALG2_ADinBASE2.Enabled = False
                ElseIf ctlALG2_PGinBASE2.Text = 95 And ctlALG2_VGinBASE2.Text = 0 And ctlALG2_ADinBASE2.Text = 5 Then
                    ctlALG2_RB_IceBlade2.Checked = True
                    ctlALG2_PGinBASE2.Enabled = False
                    ctlALG2_VGinBASE2.Enabled = False
                    ctlALG2_ADinBASE2.Enabled = False
                ElseIf ctlALG2_PGinBASE2.Text = 0 And ctlALG2_VGinBASE2.Text = 80 And ctlALG2_ADinBASE2.Text = 20 Then
                    ctlALG2_RB_Velvet2.Checked = True
                    ctlALG2_PGinBASE2.Enabled = False
                    ctlALG2_VGinBASE2.Enabled = False
                    ctlALG2_ADinBASE2.Enabled = False
                Else
                    ctlALG2_RB_Other2.Checked = True
                    ctlALG2_PGinBASE2.Enabled = True
                    ctlALG2_VGinBASE2.Enabled = True
                    ctlALG2_ADinBASE2.Enabled = True
                End If
            End If
    
    
        End Sub
    
        Private Sub ctlALG1_AD_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_AD_PRICE.Leave
            If Not IsNumeric(ctlALG1_AD_PRICE.Text) Then ctlALG1_AD_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG1_AD_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_AD_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_AD_PRICE.Text = Replace(ctlALG1_AD_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_AD_PRICE.Text) Then Exit Sub ' ctlALG1_AD_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_AD_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_AD_VOL.Leave
            If Not IsNumeric(ctlALG1_AD_VOL.Text) Then ctlALG1_AD_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG1_AD_VOL_TextChanged(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_AD_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_AD_VOL.Text = Replace(ctlALG1_AD_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG1_AD_VOL.Text) Then Exit Sub ' ctlALG1_AD_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_ADinBASE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_ADinBASE.Leave
            If Not IsNumeric(ctlALG1_PGinBASE.Text) Then ctlALG1_PGinBASE.Text = 55
            If Not IsNumeric(ctlALG1_VGinBASE.Text) Then ctlALG1_VGinBASE.Text = 35
            If Not IsNumeric(ctlALG1_ADinBASE.Text) Then ctlALG1_ADinBASE.Text = 10
        End Sub
    
    
        Private Sub ctlALG1_ADinBASE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_ADinBASE.TextChanged
            Dim dblVOL As Double
            If blTypeChangeManual = False Then Exit Sub
            If blLoadINI = True Then Exit Sub
            ctlALG1_ADinBASE.Text = Replace(ctlALG1_ADinBASE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PGinBASE.Text) Then Exit Sub ' ctlALG1_PGinBASE.Text = 55
            If Not IsNumeric(ctlALG1_VGinBASE.Text) Then Exit Sub ' ctlALG1_VGinBASE.Text = 35
            If Not IsNumeric(ctlALG1_ADinBASE.Text) Then Exit Sub ' ctlALG1_ADinBASE.Text = 10
            dblVOL = CDbl(ctlALG1_PGinBASE.Text) + CDbl(ctlALG1_VGinBASE.Text) + CDbl(ctlALG1_ADinBASE.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG1_VGinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_VGinBASE.Text = CDbl(ctlALG1_VGinBASE.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_PGinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_PGinBASE.Text = CDbl(ctlALG1_PGinBASE.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_ADinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_ADinBASE.Text = CDbl(ctlALG1_ADinBASE.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG1_VGinBASE.Text = CDbl(ctlALG1_VGinBASE.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_ADinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_ADinNEED.Leave
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then ctlALG1_ARinNEED.Text = 5
        End Sub
    
        Private Sub ctlALG1_ADinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_ADinNEED.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            ctlALG1_ADinNEED.Text = Replace(ctlALG1_ADinNEED.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then Exit Sub ' ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then Exit Sub ' ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then Exit Sub ' ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then Exit Sub ' ctlALG1_ARinNEED.Text = 5
            dblVOL = CDbl(ctlALG1_PGinNEED.Text) +  CDbl(ctlALG1_VGinNEED.Text) + CDbl(ctlALG1_ADinNEED.Text) +  CDbl(ctlALG1_ARinNEED.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG1_VGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_VGinNEED.Text = CDbl(ctlALG1_VGinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_PGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_PGinNEED.Text = CDbl(ctlALG1_PGinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_ADinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_ADinNEED.Text = CDbl(ctlALG1_ADinNEED.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG1_VGinNEED.Text = CDbl(ctlALG1_VGinNEED.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_AR_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_AR_PRICE.Leave
            If Not IsNumeric(ctlALG1_AR_PRICE.Text) Then ctlALG1_AR_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG1_AR_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_AR_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_AR_PRICE.Text = Replace(ctlALG1_AR_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_AR_PRICE.Text) Then Exit Sub ' ctlALG1_AR_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_AR_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_AR_VOL.Leave
            If Not IsNumeric(ctlALG1_AR_VOL.Text) Then ctlALG1_AR_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG1_AR_VOL_TextChanged(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_AR_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_AR_VOL.Text = Replace(ctlALG1_AR_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG1_AR_VOL.Text) Then Exit Sub ' ctlALG1_AR_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_ARinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_ARinNEED.Leave
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then ctlALG1_ARinNEED.Text = 5
        End Sub
    
        Private Sub ctlALG1_ARinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_ARinNEED.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            ctlALG1_ARinNEED.Text = Replace(ctlALG1_ARinNEED.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then Exit Sub ' ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then Exit Sub ' ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then Exit Sub ' ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then Exit Sub ' ctlALG1_ARinNEED.Text = 5
            dblVOL = CDbl(ctlALG1_PGinNEED.Text) +  CDbl(ctlALG1_VGinNEED.Text) + CDbl(ctlALG1_ADinNEED.Text) +  CDbl(ctlALG1_ARinNEED.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG1_VGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_VGinNEED.Text = CDbl(ctlALG1_VGinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_PGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_PGinNEED.Text = CDbl(ctlALG1_PGinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_ADinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_ADinNEED.Text = CDbl(ctlALG1_ADinNEED.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG1_VGinNEED.Text = CDbl(ctlALG1_VGinNEED.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_BASE_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_BASE_PRICE.Leave
            If Not IsNumeric(ctlALG1_BASE_PRICE.Text) Then ctlALG1_BASE_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG1_BASE_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_BASE_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_BASE_PRICE.Text = Replace(ctlALG1_BASE_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_BASE_PRICE.Text) Then Exit Sub ' ctlALG1_BASE_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_BASE_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_BASE_VOL.Leave
            If Not IsNumeric(ctlALG1_BASE_VOL.Text) Then ctlALG1_BASE_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG1_BASE_VOL_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_BASE_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_BASE_VOL.Text = Replace(ctlALG1_BASE_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG1_BASE_VOL.Text) Then Exit Sub ' ctlALG1_BASE_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_DAYS_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_DAYS.Leave
            If Not IsNumeric(ctlALG1_DAYS.Text) Then ctlALG1_DAYS.Text = 5
            If Not IsNumeric(ctlALG1_MLinDAY.Text) Then ctlALG1_MLinDAY.Text = 2
        End Sub
    
        Private Sub ctlALG1_DAYS_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_DAYS.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_DAYS.Text = Replace(ctlALG1_DAYS.Text, ".", ",")
            If Not IsNumeric(ctlALG1_DAYS.Text) Then Exit Sub ' ctlALG1_DAYS.Text = 5
            If Not IsNumeric(ctlALG1_MLinDAY.Text) Then Exit Sub ' ctlALG1_MLinDAY.Text = 2
            ctlALG1_VOLinNEED.Text = CDbl(ctlALG1_DAYS.Text) * CDbl(ctlALG1_MLinDAY.Text)
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_DROPSinML_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_DROPSinML.Leave
            If Not IsNumeric(ctlALG1_DROPSinML.Text) Then ctlALG1_DROPSinML.Text = 33
        End Sub
    
        Private Sub ctlALG1_DROPSinML_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_DROPSinML.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG1_DROPSinML.Text) Then Exit Sub ' ctlALG1_DROPSinML.Text = 33
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_MLinDAY_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_MLinDAY.Leave
            If Not IsNumeric(ctlALG1_MLinDAY.Text) Then ctlALG1_MLinDAY.Text = 2
            If Not IsNumeric(ctlALG1_VOLinNEED.Text) Then ctlALG1_VOLinNEED.Text = 10
        End Sub
    
        Private Sub ctlALG1_MLinDAY_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_MLinDAY.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_MLinDAY.Text = Replace(ctlALG1_MLinDAY.Text, ".", ",")
            If Not IsNumeric(ctlALG1_MLinDAY.Text) Then Exit Sub ' ctlALG1_MLinDAY.Text = 2
            If Not IsNumeric(ctlALG1_VOLinNEED.Text) Then Exit Sub ' ctlALG1_VOLinNEED.Text = 10
            If CDbl(ctlALG1_MLinDAY.Text) <= 0 Then ctlALG1_MLinDAY.Text = 1
            ctlALG1_DAYS.Text = CDbl(ctlALG1_VOLinNEED.Text) / CDbl(ctlALG1_MLinDAY.Text)
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_NICinBASE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_NICinBASE.Leave
            If Not IsNumeric(ctlALG1_NICinBASE.Text) Then ctlALG1_NICinBASE.Text = 36
        End Sub
    
        Private Sub ctlALG1_NICinBASE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_NICinBASE.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG1_NICinBASE.Text) Then Exit Sub ' ctlALG1_NICinBASE.Text = 36
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_NICinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_NICinNEED.Leave
            If Not IsNumeric(ctlALG1_NICinNEED.Text) Then ctlALG1_NICinNEED.Text = 18
        End Sub
    
        Private Sub ctlALG1_NICinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_NICinNEED.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG1_NICinNEED.Text) Then Exit Sub ' ctlALG1_NICinNEED.Text = 18
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_PG_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_PG_PRICE.Leave
            If Not IsNumeric(ctlALG1_PG_PRICE.Text) Then ctlALG1_PG_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG1_PG_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_PG_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_PG_PRICE.Text = Replace(ctlALG1_PG_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PG_PRICE.Text) Then Exit Sub ' ctlALG1_PG_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_PG_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_PG_VOL.Leave
            If Not IsNumeric(ctlALG1_PG_VOL.Text) Then ctlALG1_PG_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG1_PG_VOL_TextChanged(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_PG_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_PG_VOL.Text = Replace(ctlALG1_PG_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PG_VOL.Text) Then Exit Sub ' ctlALG1_PG_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_VG_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_VG_PRICE.Leave
            If Not IsNumeric(ctlALG1_VG_PRICE.Text) Then ctlALG1_VG_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG1_VG_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_VG_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_VG_PRICE.Text = Replace(ctlALG1_VG_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_VG_PRICE.Text) Then Exit Sub ' ctlALG1_VG_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_VG_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_VG_VOL.Leave
            If Not IsNumeric(ctlALG1_VG_VOL.Text) Then ctlALG1_VG_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG1_VG_VOL_TextChanged(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_VG_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_VG_VOL.Text = Replace(ctlALG1_VG_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG1_VG_VOL.Text) Then Exit Sub ' ctlALG1_VG_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_ADinBASE1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE1.Leave
            If Not IsNumeric(ctlALG2_PGinBASE1.Text) Then ctlALG2_PGinBASE1.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE1.Text) Then ctlALG2_VGinBASE1.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE1.Text) Then ctlALG2_ADinBASE1.Text = 10
        End Sub
    
        Private Sub ctlALG2_ADinBASE1_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE1.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG2_ADinBASE1.Text = Replace(ctlALG2_ADinBASE1.Text, ".", ",")
            If Not IsNumeric(ctlALG2_PGinBASE1.Text) Then Exit Sub ' ctlALG2_PGinBASE1.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE1.Text) Then Exit Sub ' ctlALG2_VGinBASE1.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE1.Text) Then Exit Sub ' ctlALG2_ADinBASE1.Text = 10
            dblVOL = CDbl(ctlALG2_PGinBASE1.Text) + CDbl(ctlALG2_VGinBASE1.Text) + CDbl(ctlALG2_ADinBASE1.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG2_VGinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_VGinBASE1.Text = CDbl(ctlALG2_VGinBASE1.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_PGinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_PGinBASE1.Text = CDbl(ctlALG2_PGinBASE1.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_ADinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_ADinBASE1.Text = CDbl(ctlALG2_ADinBASE1.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG2_VGinBASE1.Text = CDbl(ctlALG2_VGinBASE1.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_ADinBASE2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE2.Leave
            If Not IsNumeric(ctlALG2_PGinBASE2.Text) Then ctlALG2_PGinBASE2.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE2.Text) Then ctlALG2_VGinBASE2.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE2.Text) Then ctlALG2_ADinBASE2.Text = 10
        End Sub
    
        Private Sub ctlALG2_ADinBASE2_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE2.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG2_ADinBASE2.Text = Replace(ctlALG2_ADinBASE2.Text, ".", ",")
            If Not IsNumeric(ctlALG2_PGinBASE2.Text) Then Exit Sub ' ctlALG2_PGinBASE2.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE2.Text) Then Exit Sub ' ctlALG2_VGinBASE2.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE2.Text) Then Exit Sub ' ctlALG2_ADinBASE2.Text = 10
            dblVOL = CDbl(ctlALG2_PGinBASE2.Text) + CDbl(ctlALG2_VGinBASE2.Text) + CDbl(ctlALG2_ADinBASE2.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG2_VGinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_VGinBASE2.Text = CDbl(ctlALG2_VGinBASE2.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_PGinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_PGinBASE2.Text = CDbl(ctlALG2_PGinBASE2.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_ADinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_ADinBASE2.Text = CDbl(ctlALG2_ADinBASE2.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG2_VGinBASE2.Text = CDbl(ctlALG2_VGinBASE2.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_AR_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_AR_PRICE.Leave
            If Not IsNumeric(ctlALG2_AR_PRICE.Text) Then ctlALG2_AR_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG2_AR_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_AR_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG2_AR_PRICE.Text = Replace(ctlALG2_AR_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG2_AR_PRICE.Text) Then Exit Sub ' ctlALG2_AR_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_AR_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_AR_VOL.Leave
            If Not IsNumeric(ctlALG2_AR_VOL.Text) Then ctlALG2_AR_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG2_AR_VOL_TextChanged(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG2_AR_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG2_AR_VOL.Text = Replace(ctlALG2_AR_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG2_AR_VOL.Text) Then Exit Sub ' ctlALG2_AR_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_ARinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_ARinNEED.Leave
            If Not IsNumeric(ctlALG2_ARinNEED.Text) Then ctlALG2_ARinNEED.Text = 5
        End Sub
    
        Private Sub ctlALG2_ARinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_ARinNEED.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG2_ARinNEED.Text = Replace(ctlALG2_ARinNEED.Text, ".", ",")
            If Not IsNumeric(ctlALG2_ARinNEED.Text) Then Exit Sub ' ctlALG2_ARinNEED.Text = 5
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_BASE1_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_BASE1_PRICE.Leave
            If Not IsNumeric(ctlALG2_BASE1_PRICE.Text) Then ctlALG2_BASE1_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG2_BASE1_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_BASE1_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG2_BASE1_PRICE.Text = Replace(ctlALG2_BASE1_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG2_BASE1_PRICE.Text) Then Exit Sub ' ctlALG2_BASE1_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_BASE1_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_BASE1_VOL.Leave
            If Not IsNumeric(ctlALG2_BASE1_VOL.Text) Then ctlALG2_BASE1_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG2_BASE1_VOL_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_BASE1_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG2_BASE1_VOL.Text = Replace(ctlALG2_BASE1_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG2_BASE1_VOL.Text) Then Exit Sub ' ctlALG2_BASE1_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_BASE2_PRICE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_BASE2_PRICE.Leave
            If Not IsNumeric(ctlALG2_BASE2_PRICE.Text) Then ctlALG2_BASE2_PRICE.Text = 0
        End Sub
    
        Private Sub ctlALG2_BASE2_PRICE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_BASE2_PRICE.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG2_BASE2_PRICE.Text = Replace(ctlALG2_BASE2_PRICE.Text, ".", ",")
            If Not IsNumeric(ctlALG2_BASE2_PRICE.Text) Then Exit Sub ' ctlALG2_BASE2_PRICE.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_BASE2_VOL_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_BASE2_VOL.Leave
            If Not IsNumeric(ctlALG2_BASE2_VOL.Text) Then ctlALG2_BASE2_VOL.Text = 1
        End Sub
    
        Private Sub ctlALG2_BASE2_VOL_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_BASE2_VOL.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG2_BASE2_VOL.Text = Replace(ctlALG2_BASE2_VOL.Text, ".", ",")
            If Not IsNumeric(ctlALG2_BASE2_VOL.Text) Then Exit Sub ' ctlALG2_BASE2_VOL.Text = 1
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_DROPSinML_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_DROPSinML.Leave
            If Not IsNumeric(ctlALG2_DROPSinML.Text) Then ctlALG2_DROPSinML.Text = 33
        End Sub
    
        Private Sub ctlALG2_DROPSinML_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_DROPSinML.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG2_DROPSinML.Text) Then Exit Sub ' ctlALG2_DROPSinML.Text = 33
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_NICinBASE1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE1.Leave
            If Not IsNumeric(ctlALG2_NICinBASE1.Text) Then ctlALG2_NICinBASE1.Text = 36
        End Sub
    
        Private Sub ctlALG2_NICinBASE1_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE1.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG2_NICinBASE1.Text) Then Exit Sub ' ctlALG2_NICinBASE1.Text = 36
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_NICinBASE2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE2.Leave
            If Not IsNumeric(ctlALG2_NICinBASE2.Text) Then ctlALG2_NICinBASE2.Text = 0
        End Sub
    
        Private Sub ctlALG2_NICinBASE2_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE2.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG2_NICinBASE2.Text) Then Exit Sub ' ctlALG2_NICinBASE2.Text = 0
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_NICinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_NICinNEED.Leave
            If Not IsNumeric(ctlALG2_NICinNEED.Text) Then ctlALG2_NICinNEED.Text = 18
        End Sub
    
        Private Sub ctlALG2_NICinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinNEED.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG2_NICinNEED.Text) Then Exit Sub ' ctlALG2_NICinNEED.Text = 18
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_PGinBASE1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE1.Leave
            If Not IsNumeric(ctlALG2_PGinBASE1.Text) Then ctlALG2_PGinBASE1.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE1.Text) Then ctlALG2_VGinBASE1.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE1.Text) Then ctlALG2_ADinBASE1.Text = 10
        End Sub
    
        Private Sub ctlALG2_PGinBASE1_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE1.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG2_PGinBASE1.Text = Replace(ctlALG2_PGinBASE1.Text, ".", ",")
            If Not IsNumeric(ctlALG2_PGinBASE1.Text) Then Exit Sub ' ctlALG2_PGinBASE1.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE1.Text) Then Exit Sub ' ctlALG2_VGinBASE1.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE1.Text) Then Exit Sub ' ctlALG2_ADinBASE1.Text = 10
            dblVOL = CDbl(ctlALG2_PGinBASE1.Text) + CDbl(ctlALG2_VGinBASE1.Text) + CDbl(ctlALG2_ADinBASE1.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG2_VGinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_VGinBASE1.Text = CDbl(ctlALG2_VGinBASE1.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_ADinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_ADinBASE1.Text = CDbl(ctlALG2_ADinBASE1.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_PGinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_PGinBASE1.Text = CDbl(ctlALG2_PGinBASE1.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG2_VGinBASE1.Text = CDbl(ctlALG2_VGinBASE1.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_PGinBASE2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE2.Leave
            If Not IsNumeric(ctlALG2_PGinBASE2.Text) Then ctlALG2_PGinBASE2.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE2.Text) Then ctlALG2_VGinBASE2.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE2.Text) Then ctlALG2_ADinBASE2.Text = 10
        End Sub
    
        Private Sub ctlALG2_PGinBASE2_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE2.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG2_PGinBASE2.Text = Replace(ctlALG2_PGinBASE2.Text, ".", ",")
            If Not IsNumeric(ctlALG2_PGinBASE2.Text) Then Exit Sub ' ctlALG2_PGinBASE2.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE2.Text) Then Exit Sub ' ctlALG2_VGinBASE2.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE2.Text) Then Exit Sub ' ctlALG2_ADinBASE2.Text = 10
            dblVOL = CDbl(ctlALG2_PGinBASE2.Text) + CDbl(ctlALG2_VGinBASE2.Text) + CDbl(ctlALG2_ADinBASE2.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG2_VGinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_VGinBASE2.Text = CDbl(ctlALG2_VGinBASE2.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_ADinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_ADinBASE2.Text = CDbl(ctlALG2_ADinBASE2.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_PGinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_PGinBASE2.Text = CDbl(ctlALG2_PGinBASE2.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG2_VGinBASE2.Text = CDbl(ctlALG2_VGinBASE2.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_RB_IceBlade1_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG2_RB_IceBlade1.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_IceBlade1.Checked = True Then
                ctlALG2_PGinBASE1.Text = 95
                ctlALG2_VGinBASE1.Text = 0
                ctlALG2_ADinBASE1.Text = 5
                ctlALG2_PGinBASE1.Enabled = False
                ctlALG2_VGinBASE1.Enabled = False
                ctlALG2_ADinBASE1.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
    
        End Sub
    
        Private Sub ctlALG2_RB_IceBlade2_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG2_RB_IceBlade2.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_IceBlade2.Checked = True Then
                ctlALG2_PGinBASE2.Text = 95
                ctlALG2_VGinBASE2.Text = 0
                ctlALG2_ADinBASE2.Text = 5
                ctlALG2_PGinBASE2.Enabled = False
                ctlALG2_VGinBASE2.Enabled = False
                ctlALG2_ADinBASE2.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG2_RB_Other1_CheckedChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_RB_Other1.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_Other1.Checked = True Then
                ctlALG2_PGinBASE1.Enabled = True
                ctlALG2_VGinBASE1.Enabled = True
                ctlALG2_ADinBASE1.Enabled = True
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG2_RB_Other2_CheckedChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_RB_Other2.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_Other2.Checked = True Then
                ctlALG2_PGinBASE2.Enabled = True
                ctlALG2_VGinBASE2.Enabled = True
                ctlALG2_ADinBASE2.Enabled = True
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG2_RB_Traditional1_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG2_RB_Traditional1.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_Traditional1.Checked = True Then
                ctlALG2_PGinBASE1.Text = 55
                ctlALG2_VGinBASE1.Text = 35
                ctlALG2_ADinBASE1.Text = 10
                ctlALG2_PGinBASE1.Enabled = False
                ctlALG2_VGinBASE1.Enabled = False
                ctlALG2_ADinBASE1.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG2_RB_Traditional2_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG2_RB_Traditional2.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_Traditional2.Checked = True Then
                ctlALG2_PGinBASE2.Text = 55
                ctlALG2_VGinBASE2.Text = 35
                ctlALG2_ADinBASE2.Text = 10
                ctlALG2_PGinBASE2.Enabled = False
                ctlALG2_VGinBASE2.Enabled = False
                ctlALG2_ADinBASE2.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG2_RB_Velvet1_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG2_RB_Velvet1.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_Velvet1.Checked = True Then
                ctlALG2_PGinBASE1.Text = 0
                ctlALG2_VGinBASE1.Text = 80
                ctlALG2_ADinBASE1.Text = 20
                ctlALG2_PGinBASE1.Enabled = False
                ctlALG2_VGinBASE1.Enabled = False
                ctlALG2_ADinBASE1.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG2_RB_Velvet2_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG2_RB_Velvet2.CheckedChanged
            blTypeChangeManual = False
            If ctlALG2_RB_Velvet2.Checked = True Then
                ctlALG2_PGinBASE2.Text = 0
                ctlALG2_VGinBASE2.Text = 80
                ctlALG2_ADinBASE2.Text = 20
                ctlALG2_PGinBASE2.Enabled = False
                ctlALG2_VGinBASE2.Enabled = False
                ctlALG2_ADinBASE2.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG2_VGinBASE1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE1.Leave
            If Not IsNumeric(ctlALG2_PGinBASE1.Text) Then ctlALG2_PGinBASE1.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE1.Text) Then ctlALG2_VGinBASE1.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE1.Text) Then ctlALG2_ADinBASE1.Text = 10
        End Sub
    
        Private Sub ctlALG2_VGinBASE1_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE1.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG2_VGinBASE1.Text = Replace(ctlALG2_VGinBASE1.Text, ".", ",")
            If Not IsNumeric(ctlALG2_PGinBASE1.Text) Then Exit Sub ' ctlALG2_PGinBASE1.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE1.Text) Then Exit Sub ' ctlALG2_VGinBASE1.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE1.Text) Then Exit Sub ' ctlALG2_ADinBASE1.Text = 10
            dblVOL = CDbl(ctlALG2_PGinBASE1.Text) + CDbl(ctlALG2_VGinBASE1.Text) + CDbl(ctlALG2_ADinBASE1.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG2_PGinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_PGinBASE1.Text = CDbl(ctlALG2_PGinBASE1.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_ADinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_ADinBASE1.Text = CDbl(ctlALG2_ADinBASE1.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_VGinBASE1.Text) >= (dblVOL - 100) Then
                    ctlALG2_VGinBASE1.Text = CDbl(ctlALG2_VGinBASE1.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG2_PGinBASE1.Text = CDbl(ctlALG2_PGinBASE1.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_VGinBASE2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE2.Leave
            If Not IsNumeric(ctlALG2_PGinBASE2.Text) Then ctlALG2_PGinBASE2.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE2.Text) Then ctlALG2_VGinBASE2.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE2.Text) Then ctlALG2_ADinBASE2.Text = 10
        End Sub
    
        Private Sub ctlALG2_VGinBASE2_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE2.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG2_VGinBASE2.Text = Replace(ctlALG2_VGinBASE2.Text, ".", ",")
            If Not IsNumeric(ctlALG2_PGinBASE2.Text) Then Exit Sub ' ctlALG2_PGinBASE2.Text = 55
            If Not IsNumeric(ctlALG2_VGinBASE2.Text) Then Exit Sub ' ctlALG2_VGinBASE2.Text = 35
            If Not IsNumeric(ctlALG2_ADinBASE2.Text) Then Exit Sub ' ctlALG2_ADinBASE2.Text = 10
            dblVOL = CDbl(ctlALG2_PGinBASE2.Text) + CDbl(ctlALG2_VGinBASE2.Text) + CDbl(ctlALG2_ADinBASE2.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG2_PGinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_PGinBASE2.Text = CDbl(ctlALG2_PGinBASE2.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_ADinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_ADinBASE2.Text = CDbl(ctlALG2_ADinBASE2.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG2_VGinBASE2.Text) >= (dblVOL - 100) Then
                    ctlALG2_VGinBASE2.Text = CDbl(ctlALG2_VGinBASE2.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG2_PGinBASE2.Text = CDbl(ctlALG2_PGinBASE2.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG2_VOLinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG2_VOLinNEED.Leave
            If Not IsNumeric(ctlALG2_VOLinNEED.Text) Then ctlALG2_VOLinNEED.Text = 10
        End Sub
    
        Private Sub ctlALG2_VOLinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VOLinNEED.TextChanged
            If blLoadINI = True Then Exit Sub
            If Not IsNumeric(ctlALG2_VOLinNEED.Text) Then Exit Sub ' ctlALG2_VOLinNEED.Text = 10
            Call CalcMe()
        End Sub
    
        Private Sub ctlPagesAlgoritm_SelectedIndexChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlPagesAlgoritm.SelectedIndexChanged
            If blLoadINI = True Then Exit Sub
            Select Case ctlPagesAlgoritm.SelectedIndex
                Case 0
                    ctlPageAdd1.Visible = True
                    ctlPageAdd2.Visible = False
                Case 1
                    ctlPageAdd2.Visible = True
                    ctlPageAdd1.Visible = False
            End Select
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_PGinBASE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_PGinBASE.Leave
            If Not IsNumeric(ctlALG1_PGinBASE.Text) Then ctlALG1_PGinBASE.Text = 55
            If Not IsNumeric(ctlALG1_VGinBASE.Text) Then ctlALG1_VGinBASE.Text = 35
            If Not IsNumeric(ctlALG1_ADinBASE.Text) Then ctlALG1_ADinBASE.Text = 10
        End Sub
    
        Private Sub ctlALG1_PGinBASE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_PGinBASE.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG1_PGinBASE.Text = Replace(ctlALG1_PGinBASE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PGinBASE.Text) Then Exit Sub ' ctlALG1_PGinBASE.Text = 55
            If Not IsNumeric(ctlALG1_VGinBASE.Text) Then Exit Sub ' ctlALG1_VGinBASE.Text = 35
            If Not IsNumeric(ctlALG1_ADinBASE.Text) Then Exit Sub ' ctlALG1_ADinBASE.Text = 10
            dblVOL = CDbl(ctlALG1_PGinBASE.Text) + CDbl(ctlALG1_VGinBASE.Text) + CDbl(ctlALG1_ADinBASE.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG1_VGinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_VGinBASE.Text = CDbl(ctlALG1_VGinBASE.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_ADinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_ADinBASE.Text = CDbl(ctlALG1_ADinBASE.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_PGinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_PGinBASE.Text = CDbl(ctlALG1_PGinBASE.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG1_VGinBASE.Text = CDbl(ctlALG1_VGinBASE.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_PGinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_PGinNEED.Leave
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then ctlALG1_ARinNEED.Text = 5
        End Sub
    
        Private Sub ctlALG1_PGinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_PGinNEED.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            ctlALG1_PGinNEED.Text = Replace(ctlALG1_PGinNEED.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then Exit Sub ' ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then Exit Sub ' ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then Exit Sub ' ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then Exit Sub ' ctlALG1_ARinNEED.Text = 5
    
            If CDbl(ctlALG1_PGinNEED.Text) < 0 Then ctlALG1_PGinNEED.Text = 0
            If CDbl(ctlALG1_PGinNEED.Text) > 100 Then ctlALG1_PGinNEED.Text = 100
    
            dblVOL = CDbl(ctlALG1_PGinNEED.Text) +  CDbl(ctlALG1_VGinNEED.Text) + CDbl(ctlALG1_ADinNEED.Text) +  CDbl(ctlALG1_ARinNEED.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG1_VGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_VGinNEED.Text = CDbl(ctlALG1_VGinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_ADinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_ADinNEED.Text = CDbl(ctlALG1_ADinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_PGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_PGinNEED.Text = CDbl(ctlALG1_PGinNEED.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG1_VGinNEED.Text = CDbl(ctlALG1_VGinNEED.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_RB_IceBlade_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG1_RB_IceBlade.CheckedChanged
            blTypeChangeManual = False
            If ctlALG1_RB_IceBlade.Checked = True Then
                ctlALG1_PGinBASE.Text = 95
                ctlALG1_VGinBASE.Text = 0
                ctlALG1_ADinBASE.Text = 5
                ctlALG1_PGinBASE.Enabled = False
                ctlALG1_VGinBASE.Enabled = False
                ctlALG1_ADinBASE.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG1_RB_Other_CheckedChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_RB_Other.CheckedChanged
            blTypeChangeManual = False
            If ctlALG1_RB_Other.Checked = True Then
                ctlALG1_PGinBASE.Enabled = True
                ctlALG1_VGinBASE.Enabled = True
                ctlALG1_ADinBASE.Enabled = True
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG1_RB_Traditional_CheckedChanged(ByVal sender As  Object, ByVal e As System.EventArgs) Handles  ctlALG1_RB_Traditional.CheckedChanged
            blTypeChangeManual = False
            If ctlALG1_RB_Traditional.Checked = True Then
                ctlALG1_PGinBASE.Text = 55
                ctlALG1_VGinBASE.Text = 35
                ctlALG1_ADinBASE.Text = 10
                ctlALG1_PGinBASE.Enabled = False
                ctlALG1_VGinBASE.Enabled = False
                ctlALG1_ADinBASE.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG1_RB_Velvet_CheckedChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_RB_Velvet.CheckedChanged
            blTypeChangeManual = False
            If ctlALG1_RB_Velvet.Checked = True Then
                ctlALG1_PGinBASE.Text = 0
                ctlALG1_VGinBASE.Text = 80
                ctlALG1_ADinBASE.Text = 20
                ctlALG1_PGinBASE.Enabled = False
                ctlALG1_VGinBASE.Enabled = False
                ctlALG1_ADinBASE.Enabled = False
            End If
            Call CalcMe()
            blTypeChangeManual = True
        End Sub
    
        Private Sub ctlALG1_VGinBASE_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_VGinBASE.Leave
            If Not IsNumeric(ctlALG1_PGinBASE.Text) Then ctlALG1_PGinBASE.Text = 55
            If Not IsNumeric(ctlALG1_VGinBASE.Text) Then ctlALG1_VGinBASE.Text = 35
            If Not IsNumeric(ctlALG1_ADinBASE.Text) Then ctlALG1_ADinBASE.Text = 10
        End Sub
    
        Private Sub ctlALG1_VGinBASE_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_VGinBASE.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            If blTypeChangeManual = False Then Exit Sub
            ctlALG1_VGinBASE.Text = Replace(ctlALG1_VGinBASE.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PGinBASE.Text) Then Exit Sub ' ctlALG1_PGinBASE.Text = 55
            If Not IsNumeric(ctlALG1_VGinBASE.Text) Then Exit Sub ' ctlALG1_VGinBASE.Text = 35
            If Not IsNumeric(ctlALG1_ADinBASE.Text) Then Exit Sub ' ctlALG1_ADinBASE.Text = 10
            dblVOL = CDbl(ctlALG1_PGinBASE.Text) + CDbl(ctlALG1_VGinBASE.Text) + CDbl(ctlALG1_ADinBASE.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG1_PGinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_PGinBASE.Text = CDbl(ctlALG1_PGinBASE.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_ADinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_ADinBASE.Text = CDbl(ctlALG1_ADinBASE.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_VGinBASE.Text) >= (dblVOL - 100) Then
                    ctlALG1_VGinBASE.Text = CDbl(ctlALG1_VGinBASE.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG1_PGinBASE.Text = CDbl(ctlALG1_PGinBASE.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_VGinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_VGinNEED.Leave
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then ctlALG1_ARinNEED.Text = 5
        End Sub
    
        Private Sub ctlALG1_VGinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_VGinNEED.TextChanged
            Dim dblVOL As Double
            If blLoadINI = True Then Exit Sub
            ctlALG1_VGinNEED.Text = Replace(ctlALG1_VGinNEED.Text, ".", ",")
            If Not IsNumeric(ctlALG1_PGinNEED.Text) Then Exit Sub ' ctlALG1_PGinNEED.Text = 65
            If Not IsNumeric(ctlALG1_VGinNEED.Text) Then Exit Sub ' ctlALG1_VGinNEED.Text = 30
            If Not IsNumeric(ctlALG1_ADinNEED.Text) Then Exit Sub ' ctlALG1_ADinNEED.Text = 0
            If Not IsNumeric(ctlALG1_ARinNEED.Text) Then Exit Sub ' ctlALG1_ARinNEED.Text = 5
            dblVOL = CDbl(ctlALG1_PGinNEED.Text) +  CDbl(ctlALG1_VGinNEED.Text) + CDbl(ctlALG1_ADinNEED.Text) +  CDbl(ctlALG1_ARinNEED.Text)
            If dblVOL > 100 Then
                If CDbl(ctlALG1_PGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_PGinNEED.Text = CDbl(ctlALG1_PGinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_ADinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_ADinNEED.Text = CDbl(ctlALG1_ADinNEED.Text) - (dblVOL - 100)
                ElseIf CDbl(ctlALG1_VGinNEED.Text) >= (dblVOL - 100) Then
                    ctlALG1_VGinNEED.Text = CDbl(ctlALG1_VGinNEED.Text) - (dblVOL - 100)
                End If
            ElseIf dblVOL < 100 Then
                ctlALG1_PGinNEED.Text = CDbl(ctlALG1_PGinNEED.Text) + (100 - dblVOL)
            End If
            Call CalcMe()
        End Sub
    
        Private Sub ctlALG1_VOLinNEED_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_VOLinNEED.Leave
            If Not IsNumeric(ctlALG1_VOLinNEED.Text) Then ctlALG1_VOLinNEED.Text = 10
            If Not IsNumeric(ctlALG1_MLinDAY.Text) Then ctlALG1_MLinDAY.Text = 2
        End Sub
    
        Private Sub ctlALG1_VOLinNEED_TextChanged(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_VOLinNEED.TextChanged
            If blLoadINI = True Then Exit Sub
            ctlALG1_VOLinNEED.Text = Replace(ctlALG1_VOLinNEED.Text, ".", ",")
            If Not IsNumeric(ctlALG1_VOLinNEED.Text) Then Exit Sub 'ctlALG1_VOLinNEED.Text = 10
            If Not IsNumeric(ctlALG1_MLinDAY.Text) Then Exit Sub ' ctlALG1_MLinDAY.Text = 2
            If CDbl(ctlALG1_MLinDAY.Text) <= 0 Then ctlALG1_MLinDAY.Text = 1
            ctlALG1_DAYS.Text = CDbl(ctlALG1_VOLinNEED.Text) / CDbl(ctlALG1_MLinDAY.Text)
            Call CalcMe()
        End Sub
    
        Private Sub frmCalc_FormClosing(ByVal sender As Object, ByVal e As  System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            INI_SaveToFile()
        End Sub
    
        Private Sub frmCalc_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            blTypeChangeManual = True
            Call INI_LoadFromFile()
            'blTypeChangeManual = True
            Call InitValues()
            Call CalcMe()
        End Sub
    
        Private Sub ctlLink_ToThread_LinkClicked(ByVal sender As  System.Object, ByVal e As  System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles  ctlLink_ToThread.LinkClicked
            System.Diagnostics.Process.Start("http://www.ecigtalk.ru/forum/f23/t3197.html")
        End Sub
    
        Private Sub ctlLOGO_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlLOGO.DoubleClick
            System.Diagnostics.Process.Start("http://www.ecigtalk.ru")
        End Sub
    
        Private Sub ctlLink_eCig_LinkClicked(ByVal sender As System.Object,  ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles  ctlLink_eCig.LinkClicked
            System.Diagnostics.Process.Start("http://www.ecigtalk.ru")
        End Sub
    
        Private Sub ctlLink_Svoemesto_LinkClicked(ByVal sender As  System.Object, ByVal e As  System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles  ctlLink_Svoemesto.LinkClicked
            System.Diagnostics.Process.Start("http://www.ecigtalk.ru/members/u2124.html")
        End Sub
    
        Private Sub Language_RUS()
    
            ctlPageAlgoritm1.Text = "Базовая жидкость + PG/VG/AD"
            ctlPageAlgoritm2.Text = "Две базовые жидкости"
            ctlALG1_GrpBase.Text = "Состав базовой жидкости (PG/VG/AD)"
            ctlALG1_RB_Traditional.Text = "Traditional (55/35/10)"
            ctlALG1_RB_IceBlade.Text = "Ice Blade (95/0/5)"
            ctlALG1_RB_Velvet.Text = "Velvet Cloud (0/80/20)"
            ctlALG1_RB_Other.Text = "Другой"
            lblALG1_PGinBASE.Text = "PG"
            lblALG1_PGinBASE_suff.Text = "%"
            lblALG1_VGinBASE.Text = "VG"
            lblALG1_VGinBASE_suff.Text = "%"
            lblALG1_ADinBASE.Text = "AD"
            lblALG1_ADinBASE_suff.Text = "%"
            lblALG1_NICinBASE.Text = "Содержание никотина в базовой жидкости:"
            lblALG1_NICinBASE_suff.Text = "мг./мл."
            ctlALG1_Price.Text = "Цена ингредиентов"
            lblALG1_BASE_VOL.Text = "Цена базовой жидкости за"
            lblALG1_BASE_VOL_suff.Text = "мл. ="
            lblALG1_PG_VOL.Text = "Цена пропиленгликоля (PG) за"
            lblALG1_PG_VOL_suff.Text = "мл. ="
            lblALG1_VG_VOL.Text = "Цена пищ. глицерина (VG) за"
            lblALG1_VG_VOL_suff.Text = "мл. ="
            lblALG1_AD_VOL.Text = "Цена дистилл-ой воды (AD) за"
            lblALG1_AD_VOL_suff.Text = "мл. ="
            lblALG1_AR_VOL.Text = "Цена ароматизатора за"
            lblALG1_AR_VOL_suff.Text = "мл. ="
            lblALG1_DROPSinML.Text = "Количество капель в одном мл.:"
            ctlALG1_NEED.Text = "Хотим получить:"
            lblALG1_NICinNEED.Text = "Желаемое содержание никотина на выходе:"
            lblALG1_NICinNEED_suff.Text = "мг./мл."
            lblALG1_PGinNEED.Text = "Процент пропиленгликоля (PG):"
            lblALG1_PGinNEED_suff.Text = "%"
            lblALG1_VGinNEED.Text = "Процент пищевого глицерина (VG):"
            lblALG1_VGinNEED_suff.Text = "%"
            lblALG1_ADinNEED.Text = "Процент дистиллированной воды (AD):"
            lblALG1_ADinNEED_suff.Text = "%"
            lblALG1_ARinNEED.Text = "Процент ароматизаторов:"
            lblALG1_ARinNEED_suff.Text = "%"
            lblALG1_VOLinNEED.Text = "Требуемый объем жидкости на выходе:"
            lblALG1_VOLinNEED_suff.Text = "мл."
            lblALG1_MLinDAY.Text = "Средний расход жидкости в сутки:"
            lblALG1_MLinDAY_suff.Text = "мл./ сут."
            lblALG1_DAYS.Text = "Смешать запас жидкости на:"
            lblALG1_DAYS_suff.Text = "сут."
            ctlALG2_GrpBase1.Text = "Состав базовой жидкости №1 (PG/VG/AD)"
            ctlALG2_RB_Traditional1.Text = "Traditional (55/35/10)"
            ctlALG2_RB_IceBlade1.Text = "Ice Blade (95/0/5)"
            ctlALG2_RB_Velvet1.Text = "Velvet Cloud (0/80/20)"
            ctlALG2_RB_Other1.Text = "Другой"
            lblALG2_PGinBASE1.Text = "PG"
            lblALG2_PGinBASE1_suff.Text = "%"
            lblALG2_VGinBASE1.Text = "VG"
            lblALG2_VGinBASE1_suff.Text = "%"
            lblALG2_ADinBASE1.Text = "AD"
            lblALG2_ADinBASE1_suff.Text = "%"
            lblALG2_NICinBASE1.Text = "Содержание никотина в базовой жидкости:"
            lblALG2_NICinBASE1_suff.Text = "мг./мл."
            ctlALG2_GrpBase2.Text = "Состав базовой жидкости №2 (PG/VG/AD)"
            ctlALG2_RB_Traditional2.Text = "Traditional (55/35/10)"
            ctlALG2_RB_IceBlade2.Text = "Ice Blade (95/0/5)"
            ctlALG2_RB_Velvet2.Text = "Velvet Cloud (0/80/20)"
            ctlALG2_RB_Other2.Text = "Другой"
            lblALG2_PGinBASE2.Text = "PG"
            lblALG2_PGinBASE2_suff.Text = "%"
            lblALG2_VGinBASE2.Text = "VG"
            lblALG2_VGinBASE2_suff.Text = "%"
            lblALG2_ADinBASE2.Text = "AD"
            lblALG2_ADinBASE2_suff.Text = "%"
            lblALG2_NICinBASE2.Text = "Содержание никотина в базовой жидкости:"
            lblALG2_NICinBASE2_suff.Text = "мг./мл."
            ctlALG2_Price.Text = "Цена ингредиентов"
            lblALG2_BASE1_VOL.Text = "Цена базовой жидкости №1 за"
            lblALG2_BASE1_VOL_suff.Text = "мл. ="
            lblALG2_BASE2_VOL.Text = "Цена базовой жидкости №2 за"
            lblALG2_BASE2_VOL_suff.Text = "мл. ="
            lblALG2_AR_VOL.Text = "Цена ароматизатора за"
            lblALG2_AR_VOL_suff.Text = "мл. ="
            lblALG2_DROPSinML.Text = "Количество капель в одном мл.:"
            ctlALG2_NEED.Text = "Хотим получить:"
            lblALG2_NICinNEED.Text = "Желаемое содержание никотина на выходе:"
            lblALG2_NICinNEED_suff.Text = "мг./мл."
            lblALG2_ARinNEED.Text = "Процент ароматизаторов:"
            lblALG2_ARinNEED_suff.Text = "%"
            lblALG2_VOLinNEED.Text = "Требуемый объем жидкости на выходе:"
            lblALG2_VOLinNEED_suff.Text = "мл."
            ctlPageAdd1.Text = "Необходимо добавить:"
            lblALG1_BASEtoOUTml.Text = "Базовой жидкости:"
            lblALG1_BASEtoOUTml_suff.Text = "мл. ="
            lblALG1_BASEtoOUTdr.Text = "кап. ="
            lblALG1_PGtoOUTml.Text = "Пропиленгликоля (PG):"
            lblALG1_PGtoOUTml_suff.Text = "мл. ="
            lblALG1_PGtoOUTdr.Text = "кап. ="
            lblALG1_VGtoOUTml.Text = "Пищ. глицерина (VG):"
            lblALG1_VGtoOUTml_suff.Text = "мл. ="
            lblALG1_VGtoOUTdr.Text = "кап. ="
            lblALG1_ADtoOUTml.Text = "Дистилл-ой воды (AD):"
            lblALG1_ADtoOUTml_suff.Text = "мл. ="
            lblALG1_ADtoOUTdr.Text = "кап. ="
            lblALG1_ARtoOUTml.Text = "Ароматизаторов:"
            lblALG1_ARtoOUTml_suff.Text = "мл. ="
            lblALG1_ARtoOUTdr.Text = "кап. ="
            lblALG1_TOTAL_ML.Text = "ИТОГО:"
            lblALG1_TOTAL_ML_suff.Text = "мл. ="
            lblALG1_TOTAL_DR.Text = "кап. ="
            ctlPageAdd2.Text = "Необходимо добавить:"
            lblALG2_BASE1toOUTml.Text = "Базовой жидкости №1:"
            lblALG2_BASE1toOUTml_suff.Text = "мл. ="
            lblALG2_BASE1toOUTdr.Text = "кап. ="
            lblALG2_BASE2toOUTml.Text = "Базовой жидкости №2:"
            lblALG2_BASE2toOUTml_suff.Text = "мл. ="
            lblALG2_BASE2toOUTdr.Text = "кап. ="
            lblALG2_ARtoOUTml.Text = "Ароматизаторов:"
            lblALG2_ARtoOUTml_suff.Text = "мл. ="
            lblALG2_ARtoOUTdr.Text = "кап. ="
            lblALG2_TOTAL_ML.Text = "ИТОГО:"
            lblALG2_TOTAL_ML_suff.Text = "мл. ="
            lblALG2_TOTAL_DR.Text = "кап. ="
            ctlResult.Text = "В результате:"
            lblVOLinOUT.Text = "Объем жидкости на выходе:"
            lblVOLinOUT_suff.Text = "мл."
            lblNICinOUT.Text = "Содержание никотина на выходе:"
            lblNICinOUT_suff.Text = "мг./мл."
            lblPGinOUT.Text = "Процент пропиленгликоля (PG):"
            lblPGinOUT_suff.Text = "%"
            lblVGinOUT.Text = "Процент пищевого глицерина (VG):"
            lblVGinOUT_suff.Text = "%"
            lblADinOUT.Text = "Процент дистиллированной воды (AD):"
            lblADinOUT_suff.Text = "%"
            lblARinOUT.Text = "Процент ароматизаторов:"
            lblARinOUT_suff.Text = "%"
            lblLanguage.Text = "Язык интерфейса:"
            lblCurrency.Text = "Валюта:"
    
        End Sub
    
        Private Sub Language_ENG()
    
            ctlPageAlgoritm1.Text = "Base liquid + PG/VG/AD"
            ctlPageAlgoritm2.Text = "Two base liquids"
            ctlALG1_GrpBase.Text = "Structure of base liquid (PG/VG/AD)"
            ctlALG1_RB_Traditional.Text = "Traditional (55/35/10)"
            ctlALG1_RB_IceBlade.Text = "Ice Blade (95/0/5)"
            ctlALG1_RB_Velvet.Text = "Velvet Cloud (0/80/20)"
            ctlALG1_RB_Other.Text = "Other"
            lblALG1_PGinBASE.Text = "PG"
            lblALG1_PGinBASE_suff.Text = "%"
            lblALG1_VGinBASE.Text = "VG"
            lblALG1_VGinBASE_suff.Text = "%"
            lblALG1_ADinBASE.Text = "AD"
            lblALG1_ADinBASE_suff.Text = "%"
            lblALG1_NICinBASE.Text = "Nicotine in base liquid:"
            lblALG1_NICinBASE_suff.Text = "mg./ml."
            ctlALG1_Price.Text = "Price"
            lblALG1_BASE_VOL.Text = "Price of base liquid for"
            lblALG1_BASE_VOL_suff.Text = "мл. ="
            lblALG1_PG_VOL.Text = "Price of propylene glicol (PG) for"
            lblALG1_PG_VOL_suff.Text = "ml. ="
            lblALG1_VG_VOL.Text = "Price of glycerine (VG) for"
            lblALG1_VG_VOL_suff.Text = "ml. ="
            lblALG1_AD_VOL.Text = "Price of distill water (AD) for"
            lblALG1_AD_VOL_suff.Text = "ml. ="
            lblALG1_AR_VOL.Text = "Price of aroma for"
            lblALG1_AR_VOL_suff.Text = "ml. ="
            lblALG1_DROPSinML.Text = "Drops in one ml.:"
            ctlALG1_NEED.Text = "Wish to receive:"
            lblALG1_NICinNEED.Text = "Desirable maintenance of nicotine on an out:"
            lblALG1_NICinNEED_suff.Text = "mg./ml."
            lblALG1_PGinNEED.Text = "Percent of propylene glicol (PG):"
            lblALG1_PGinNEED_suff.Text = "%"
            lblALG1_VGinNEED.Text = "Percent of glycerine (VG):"
            lblALG1_VGinNEED_suff.Text = "%"
            lblALG1_ADinNEED.Text = "Percent of distill water (AD):"
            lblALG1_ADinNEED_suff.Text = "%"
            lblALG1_ARinNEED.Text = "Percent of aroma:"
            lblALG1_ARinNEED_suff.Text = "%"
            lblALG1_VOLinNEED.Text = "Demanded volume of a liquid on an out:"
            lblALG1_VOLinNEED_suff.Text = "ml."
            lblALG1_MLinDAY.Text = "Average expense of liquid in day:"
            lblALG1_MLinDAY_suff.Text = "ml./ day"
            lblALG1_DAYS.Text = "Mix a liquid stock for:"
            lblALG1_DAYS_suff.Text = "day"
            ctlALG2_GrpBase1.Text = "Structure of base liquid #1 (PG/VG/AD)"
            ctlALG2_RB_Traditional1.Text = "Traditional (55/35/10)"
            ctlALG2_RB_IceBlade1.Text = "Ice Blade (95/0/5)"
            ctlALG2_RB_Velvet1.Text = "Velvet Cloud (0/80/20)"
            ctlALG2_RB_Other1.Text = "Other"
            lblALG2_PGinBASE1.Text = "PG"
            lblALG2_PGinBASE1_suff.Text = "%"
            lblALG2_VGinBASE1.Text = "VG"
            lblALG2_VGinBASE1_suff.Text = "%"
            lblALG2_ADinBASE1.Text = "AD"
            lblALG2_ADinBASE1_suff.Text = "%"
            lblALG2_NICinBASE1.Text = "Nicotine in base liquid:"
            lblALG2_NICinBASE1_suff.Text = "mg./ml."
            ctlALG2_GrpBase2.Text = "Structure of base liquid #2 (PG/VG/AD)"
            ctlALG2_RB_Traditional2.Text = "Traditional (55/35/10)"
            ctlALG2_RB_IceBlade2.Text = "Ice Blade (95/0/5)"
            ctlALG2_RB_Velvet2.Text = "Velvet Cloud (0/80/20)"
            ctlALG2_RB_Other2.Text = "Other"
            lblALG2_PGinBASE2.Text = "PG"
            lblALG2_PGinBASE2_suff.Text = "%"
            lblALG2_VGinBASE2.Text = "VG"
            lblALG2_VGinBASE2_suff.Text = "%"
            lblALG2_ADinBASE2.Text = "AD"
            lblALG2_ADinBASE2_suff.Text = "%"
            lblALG2_NICinBASE2.Text = "Nicotine in base liquid:"
            lblALG2_NICinBASE2_suff.Text = "mg./ml."
            ctlALG2_Price.Text = "Price"
            lblALG2_BASE1_VOL.Text = "Price of base liquid #1 for"
            lblALG2_BASE1_VOL_suff.Text = "ml. ="
            lblALG2_BASE2_VOL.Text = "Price of base liquid #2 for"
            lblALG2_BASE2_VOL_suff.Text = "ml. ="
            lblALG2_AR_VOL.Text = "Price of aroma for"
            lblALG2_AR_VOL_suff.Text = "ml. ="
            lblALG2_DROPSinML.Text = "Drops in one ml.:"
            ctlALG2_NEED.Text = "Wish to receive:"
            lblALG2_NICinNEED.Text = "Desirable maintenance of nicotine on an out:"
            lblALG2_NICinNEED_suff.Text = "mg./ml."
            lblALG2_ARinNEED.Text = "Percent of aroma:"
            lblALG2_ARinNEED_suff.Text = "%"
            lblALG2_VOLinNEED.Text = "Demanded volume of a liquid on an out:"
            lblALG2_VOLinNEED_suff.Text = "ml."
            ctlPageAdd1.Text = "Necessary to add:"
            lblALG1_BASEtoOUTml.Text = "Base liquid:"
            lblALG1_BASEtoOUTml_suff.Text = "ml. ="
            lblALG1_BASEtoOUTdr.Text = "dr. ="
            lblALG1_PGtoOUTml.Text = "Propylene glicol (PG):"
            lblALG1_PGtoOUTml_suff.Text = "ml. ="
            lblALG1_PGtoOUTdr.Text = "dr. ="
            lblALG1_VGtoOUTml.Text = "Glycerine (VG):"
            lblALG1_VGtoOUTml_suff.Text = "ml. ="
            lblALG1_VGtoOUTdr.Text = "dr. ="
            lblALG1_ADtoOUTml.Text = "Distill water (AD):"
            lblALG1_ADtoOUTml_suff.Text = "ml. ="
            lblALG1_ADtoOUTdr.Text = "dr. ="
            lblALG1_ARtoOUTml.Text = "Aroma:"
            lblALG1_ARtoOUTml_suff.Text = "ml. ="
            lblALG1_ARtoOUTdr.Text = "dr. ="
            lblALG1_TOTAL_ML.Text = "TOTAL:"
            lblALG1_TOTAL_ML_suff.Text = "ml. ="
            lblALG1_TOTAL_DR.Text = "dr. ="
            ctlPageAdd2.Text = "Necessary to add:"
            lblALG2_BASE1toOUTml.Text = "Base liquid #1:"
            lblALG2_BASE1toOUTml_suff.Text = "ml. ="
            lblALG2_BASE1toOUTdr.Text = "dr. ="
            lblALG2_BASE2toOUTml.Text = "Base liquid #2:"
            lblALG2_BASE2toOUTml_suff.Text = "ml. ="
            lblALG2_BASE2toOUTdr.Text = "dr. ="
            lblALG2_ARtoOUTml.Text = "Aroma:"
            lblALG2_ARtoOUTml_suff.Text = "ml. ="
            lblALG2_ARtoOUTdr.Text = "dr. ="
            lblALG2_TOTAL_ML.Text = "TOTAL:"
            lblALG2_TOTAL_ML_suff.Text = "ml. ="
            lblALG2_TOTAL_DR.Text = "dr. ="
            ctlResult.Text = "In result:"
            lblVOLinOUT.Text = "Volume of liquid in out:"
            lblVOLinOUT_suff.Text = "ml."
            lblNICinOUT.Text = "Nicotine in out:"
            lblNICinOUT_suff.Text = "mg./ml."
            lblPGinOUT.Text = "Percent of propylene glicol (PG):"
            lblPGinOUT_suff.Text = "%"
            lblVGinOUT.Text = "Percent of glycerine (VG):"
            lblVGinOUT_suff.Text = "%"
            lblADinOUT.Text = "Percent of distill water (AD):"
            lblADinOUT_suff.Text = "%"
            lblARinOUT.Text = "Percent of aroma:"
            lblARinOUT_suff.Text = "%"
            lblLanguage.Text = "Language:"
            lblCurrency.Text = "Currency:"
    
        End Sub
    
    
        Private Sub Currency_RUB()
    
            lblALG1_BASE_PRICE.Text = "руб."
            lblALG1_PG_PRICE.Text = "руб."
            lblALG1_VG_PRICE.Text = "руб."
            lblALG1_AD_PRICE.Text = "руб."
            lblALG1_AR_PRICE.Text = "руб."
            lblALG2_BASE1_PRICE.Text = "руб."
            lblALG2_BASE2_PRICE.Text = "руб."
            lblALG2_AR_PRICE.Text = "руб."
            lblALG1_BASE_RUB.Text = "руб."
            lblALG1_PG_RUB.Text = "руб."
            lblALG1_VG_RUB.Text = "руб."
            lblALG1_AD_RUB.Text = "руб."
            lblALG1_AR_RUB.Text = "руб."
            lblALG1_TOTAL_RUB.Text = "руб."
            lblALG2_BASE1_RUB.Text = "руб."
            lblALG2_BASE2_RUB.Text = "руб."
            lblALG2_AR_RUB.Text = "руб."
            lblALG2_TOTAL_RUB.Text = "руб."
    
        End Sub
    
        Private Sub Currency_USD()
    
            lblALG1_BASE_PRICE.Text = "$"
            lblALG1_PG_PRICE.Text = "$"
            lblALG1_VG_PRICE.Text = "$"
            lblALG1_AD_PRICE.Text = "$"
            lblALG1_AR_PRICE.Text = "$"
            lblALG2_BASE1_PRICE.Text = "$"
            lblALG2_BASE2_PRICE.Text = "$"
            lblALG2_AR_PRICE.Text = "$"
            lblALG1_BASE_RUB.Text = "$"
            lblALG1_PG_RUB.Text = "$"
            lblALG1_VG_RUB.Text = "$"
            lblALG1_AD_RUB.Text = "$"
            lblALG1_AR_RUB.Text = "$"
            lblALG1_TOTAL_RUB.Text = "$"
            lblALG2_BASE1_RUB.Text = "$"
            lblALG2_BASE2_RUB.Text = "$"
            lblALG2_AR_RUB.Text = "$"
            lblALG2_TOTAL_RUB.Text = "$"
    
        End Sub
    
        Private Sub Currency_EUR()
    
            lblALG1_BASE_PRICE.Text = "€"
            lblALG1_PG_PRICE.Text = "€"
            lblALG1_VG_PRICE.Text = "€"
            lblALG1_AD_PRICE.Text = "€"
            lblALG1_AR_PRICE.Text = "€"
            lblALG2_BASE1_PRICE.Text = "€"
            lblALG2_BASE2_PRICE.Text = "€"
            lblALG2_AR_PRICE.Text = "€"
            lblALG1_BASE_RUB.Text = "€"
            lblALG1_PG_RUB.Text = "€"
            lblALG1_VG_RUB.Text = "€"
            lblALG1_AD_RUB.Text = "€"
            lblALG1_AR_RUB.Text = "€"
            lblALG1_TOTAL_RUB.Text = "€"
            lblALG2_BASE1_RUB.Text = "€"
            lblALG2_BASE2_RUB.Text = "€"
            lblALG2_AR_RUB.Text = "€"
            lblALG2_TOTAL_RUB.Text = "€"
    
        End Sub
    
        Private Sub ctlLanguage_SelectedIndexChanged(ByVal sender As  System.Object, ByVal e As System.EventArgs) Handles  ctlLanguage.SelectedIndexChanged
            If ctlLanguage.Text = "English" Then
                Call Language_ENG()
            Else
                ctlLanguage.Text = "Русский"
                Call Language_RUS()
            End If
        End Sub
    
        Private Sub ctlCurrency_SelectedIndexChanged(ByVal sender As  System.Object, ByVal e As System.EventArgs) Handles  ctlCurrency.SelectedIndexChanged
            If ctlCurrency.Text = "USD" Then
                Call Currency_USD()
            ElseIf ctlCurrency.Text = "EURO" Then
                Call Currency_EUR()
            Else
                ctlCurrency.Text = "Руб."
                Call Currency_RUB()
            End If
        End Sub
    
        Public Function SortList(ByVal strList As String, ByVal strDec As String) As String
            Dim lngCount As Integer, i As Integer
            Dim strWord As String
            Dim arr() As Double
            Dim bl As Boolean
            Dim dbl As Double
    
            If Mid(strList, Len(strList), Len(strDec)) <> strDec Then strList = strList & strDec
    
            lngCount = StrUtils_GetCountSubStrings(strList, strDec, 1)
            ReDim arr(lngCount + 1)
            For i = 1 To lngCount
                strWord = StrUtils_GetWordDec(strList, i, strDec)
                arr(i) = CDbl(strWord)
            Next i
    
            bl = True
            Do Until Not bl
                bl = False
                For i = 1 To lngCount - 1
                    If arr(i) > arr(i + 1) Then
                        dbl = arr(i + 1)
                        arr(i + 1) = arr(i)
                        arr(i) = dbl
                        bl = True
                    End If
                Next i
            Loop
    
            strWord = ""
            For i = 1 To lngCount
                strWord = strWord & arr(i) & strDec
            Next i
            If strWord <> "" Then
                strWord = Mid(strWord, 1, Len(strWord) - Len(strDec))
            End If
    
            SortList = strWord
    
        End Function
    
        Private Sub AddToList(ByRef ctl As Object)
            Dim bl As Boolean, strListItems As String
            bl = False
            strListItems = ""
            For i = 0 To ctl.Items.Count - 1
                strListItems = strListItems & ctl.Items(i).ToString & ";"
                If ctl.Items(i).ToString = ctl.Text Then
                    bl = True
                End If
            Next i
            If bl = False Then
                strListItems = strListItems & ctl.Text
                strListItems = SortList(strListItems, ";")
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctl.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctl.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
        End Sub
    
        Private Sub DelFromList(ByRef ctl As Object)
            Dim bl As Boolean, strListItems As String
            bl = False
            strListItems = ""
            For i = 0 To ctl.Items.Count - 1
                If ctl.Items(i).ToString = ctl.Text Then
                    bl = True
                Else
                    strListItems = strListItems & ctl.Items(i).ToString & ";"
                End If
            Next i
            If bl = True Then
                If Len(strListItems) <> 0 Then strListItems = Mid(strListItems, 1, Len(strListItems) - 1)
                strListItems = SortList(strListItems, ";")
                If Mid(strListItems, Len(strListItems) - 1, 1) <> ";" Then strListItems = strListItems & ";"
                ctl.Items.Clear()
                For i = 1 To StrUtils_GetCountSubStrings(strListItems, ";", 1)
                    ctl.Items.Add(StrUtils_GetWordDec(strListItems, i, ";"))
                Next
            End If
        End Sub
    
        Private Sub ctlSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ctlSave.Click
            Dim strFileName As String, strFilePath As String, strAppExtPath As String, strFileNameAndPath As String
    
            strAppExtPath = Application.ExecutablePath
            strFilePath = GetFromString_FileFolder(strAppExtPath)
            strFileName = Mid(GetFromString_FileName(strAppExtPath), 1,  Len(GetFromString_FileName(strAppExtPath)) -  Len(GetFromString_FileExt(strAppExtPath)) - 1) & ".ini"
            strFileNameAndPath = strFilePath & "\" & strFileName
    
            Dim strFileName2Save As String
            Dim ctlSaveFileDialog As New SaveFileDialog()
            ctlSaveFileDialog.Filter = "eJMC templates (*.eJMC)|*.eJMC"
            ctlSaveFileDialog.FilterIndex = 1
            ctlSaveFileDialog.RestoreDirectory = True
            If ctlSaveFileDialog.ShowDialog() = DialogResult.OK Then
                strFileName2Save = ctlSaveFileDialog.FileName
                Call INI_SaveToFile()
                FileSystem.FileCopy(strFileName, strFileName2Save)
            End If
    
        End Sub
    
        Private Sub ctlLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ctlLoad.Click
            Dim strFileName As String, strFilePath As String, strAppExtPath As String, strFileNameAndPath As String
    
            strAppExtPath = Application.ExecutablePath
            strFilePath = GetFromString_FileFolder(strAppExtPath)
            strFileName = Mid(GetFromString_FileName(strAppExtPath), 1,  Len(GetFromString_FileName(strAppExtPath)) -  Len(GetFromString_FileExt(strAppExtPath)) - 1) & ".ini"
            strFileNameAndPath = strFilePath & "\" & strFileName
    
            Dim strFileName2Load As String
            Dim ctlOpenFileDialog As New OpenFileDialog()
            ctlOpenFileDialog.Filter = "eJMC templates (*.eJMC)|*.eJMC"
            ctlOpenFileDialog.FilterIndex = 1
            ctlOpenFileDialog.RestoreDirectory = True
            If ctlOpenFileDialog.ShowDialog() = DialogResult.OK Then
                strFileName2Load = ctlOpenFileDialog.FileName
                FileSystem.FileCopy(strFileName2Load, strFileName)
                Call INI_LoadFromFile()
            End If
    
        End Sub
    
        Private Sub ctlALG1_NICinBASE_add_Click(ByVal sender As  System.Object, ByVal e As System.EventArgs) Handles  ctlALG1_NICinBASE_add.Click
            Call AddToList(ctlALG1_NICinBASE)
        End Sub
    
        Private Sub ctlALG1_NICinBASE_del_Click(ByVal sender As  System.Object, ByVal e As System.EventArgs) Handles  ctlALG1_NICinBASE_del.Click
            Call DelFromList(ctlALG1_NICinBASE)
        End Sub
    
        Private Sub ctlALG1_ADinBASE_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_ADinBASE_add.Click
            Call AddToList(ctlALG1_ADinBASE)
        End Sub
    
        Private Sub ctlALG1_ADinBASE_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_ADinBASE_del.Click
            Call DelFromList(ctlALG1_ADinBASE)
        End Sub
    
        Private Sub ctlALG1_ADinNEED_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_ADinNEED_add.Click
            Call AddToList(ctlALG1_ADinNEED)
        End Sub
    
        Private Sub ctlALG1_ADinNEED_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_ADinNEED_del.Click
            Call DelFromList(ctlALG1_ADinNEED)
        End Sub
    
        Private Sub ctlALG1_ARinNEED_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_ARinNEED_add.Click
            Call AddToList(ctlALG1_ARinNEED)
        End Sub
    
        Private Sub ctlALG1_ARinNEED_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_ARinNEED_del.Click
            Call DelFromList(ctlALG1_ARinNEED)
        End Sub
    
        Private Sub ctlALG1_DAYS_add_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_DAYS_add.Click
            Call AddToList(ctlALG1_DAYS)
        End Sub
    
        Private Sub ctlALG1_DAYS_del_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_DAYS_del.Click
            Call DelFromList(ctlALG1_DAYS)
        End Sub
    
        Private Sub ctlALG1_DROPSinML_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_DROPSinML_add.Click
            Call AddToList(ctlALG1_DROPSinML)
        End Sub
    
        Private Sub ctlALG1_DROPSinML_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_DROPSinML_del.Click
            Call DelFromList(ctlALG1_DROPSinML)
        End Sub
    
        Private Sub ctlALG1_MLinDAY_add_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_MLinDAY_add.Click
            Call AddToList(ctlALG1_MLinDAY)
        End Sub
    
        Private Sub ctlALG1_MLinDAY_del_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ctlALG1_MLinDAY_del.Click
            Call DelFromList(ctlALG1_MLinDAY)
        End Sub
    
        Private Sub ctlALG1_NICinNEED_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_NICinNEED_add.Click
            Call AddToList(ctlALG1_NICinNEED)
        End Sub
    
        Private Sub ctlALG1_NICinNEED_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_NICinNEED_del.Click
            Call DelFromList(ctlALG1_NICinNEED)
        End Sub
    
        Private Sub ctlALG1_PGinBASE_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_PGinBASE_add.Click
            Call AddToList(ctlALG1_PGinBASE)
        End Sub
    
        Private Sub ctlALG1_PGinBASE_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_PGinBASE_del.Click
            Call DelFromList(ctlALG1_PGinBASE)
        End Sub
    
        Private Sub ctlALG1_PGinNEED_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_PGinNEED_add.Click
            Call AddToList(ctlALG1_PGinNEED)
        End Sub
    
        Private Sub ctlALG1_PGinNEED_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_PGinNEED_del.Click
            Call DelFromList(ctlALG1_PGinNEED)
        End Sub
    
        Private Sub ctlALG1_VGinBASE_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_VGinBASE_add.Click
            Call AddToList(ctlALG1_VGinBASE)
        End Sub
    
        Private Sub ctlALG1_VGinBASE_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_VGinBASE_del.Click
            Call DelFromList(ctlALG1_VGinBASE)
        End Sub
    
        Private Sub ctlALG1_VGinNEED_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_VGinNEED_add.Click
            Call AddToList(ctlALG1_VGinNEED)
        End Sub
    
        Private Sub ctlALG1_VGinNEED_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG1_VGinNEED_del.Click
            Call DelFromList(ctlALG1_VGinNEED)
        End Sub
    
        Private Sub ctlALG1_VOLinNEED_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_VOLinNEED_add.Click
            Call AddToList(ctlALG1_VOLinNEED)
        End Sub
    
        Private Sub ctlALG1_VOLinNEED_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG1_VOLinNEED_del.Click
            Call DelFromList(ctlALG1_VOLinNEED)
        End Sub
    
        Private Sub ctlALG2_ADinBASE1_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE1_add.Click
            Call AddToList(ctlALG2_ADinBASE1)
        End Sub
    
        Private Sub ctlALG2_ADinBASE1_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE1_del.Click
            Call DelFromList(ctlALG2_ADinBASE1)
        End Sub
    
        Private Sub ctlALG2_ADinBASE2_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE2_add.Click
            Call AddToList(ctlALG2_ADinBASE2)
        End Sub
    
        Private Sub ctlALG2_ADinBASE2_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_ADinBASE2_del.Click
            Call DelFromList(ctlALG2_ADinBASE2)
        End Sub
    
        Private Sub ctlALG2_ARinNEED_add_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG2_ARinNEED_add.Click
            Call AddToList(ctlALG2_ARinNEED)
        End Sub
    
        Private Sub ctlALG2_ARinNEED_del_Click(ByVal sender As Object, ByVal  e As System.EventArgs) Handles ctlALG2_ARinNEED_del.Click
            Call DelFromList(ctlALG2_ARinNEED)
        End Sub
    
        Private Sub ctlALG2_NICinBASE1_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE1_add.Click
            Call AddToList(ctlALG2_NICinBASE1)
        End Sub
    
        Private Sub ctlALG2_NICinBASE1_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE1_del.Click
            Call DelFromList(ctlALG2_NICinBASE1)
        End Sub
    
        Private Sub ctlALG2_NICinBASE2_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE2_add.Click
            Call AddToList(ctlALG2_NICinBASE2)
        End Sub
    
        Private Sub ctlALG2_NICinBASE2_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinBASE2_del.Click
            Call DelFromList(ctlALG2_NICinBASE2)
        End Sub
    
        Private Sub ctlALG2_NICinNEED_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinNEED_add.Click
            Call AddToList(ctlALG2_NICinNEED)
        End Sub
    
        Private Sub ctlALG2_NICinNEED_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_NICinNEED_del.Click
            Call DelFromList(ctlALG2_NICinNEED)
        End Sub
    
        Private Sub ctlALG2_PGinBASE1_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE1_add.Click
            Call AddToList(ctlALG2_PGinBASE1)
        End Sub
    
        Private Sub ctlALG2_PGinBASE1_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE1_del.Click
            Call DelFromList(ctlALG2_PGinBASE1)
        End Sub
    
        Private Sub ctlALG2_PGinBASE2_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE2_add.Click
            Call AddToList(ctlALG2_PGinBASE2)
        End Sub
    
        Private Sub ctlALG2_PGinBASE2_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_PGinBASE2_del.Click
            Call DelFromList(ctlALG2_PGinBASE2)
        End Sub
    
        Private Sub ctlALG2_VGinBASE1_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE1_add.Click
            Call AddToList(ctlALG2_VGinBASE1)
        End Sub
    
        Private Sub ctlALG2_VGinBASE1_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE1_del.Click
            Call DelFromList(ctlALG2_VGinBASE1)
        End Sub
    
        Private Sub ctlALG2_VGinBASE2_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE2_add.Click
            Call AddToList(ctlALG2_VGinBASE2)
        End Sub
    
        Private Sub ctlALG2_VGinBASE2_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VGinBASE2_del.Click
            Call DelFromList(ctlALG2_VGinBASE2)
        End Sub
    
        Private Sub ctlALG2_VOLinNEED_add_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VOLinNEED_add.Click
            Call AddToList(ctlALG2_VOLinNEED)
        End Sub
    
        Private Sub ctlALG2_VOLinNEED_del_Click(ByVal sender As Object,  ByVal e As System.EventArgs) Handles ctlALG2_VOLinNEED_del.Click
            Call DelFromList(ctlALG2_VOLinNEED)
        End Sub
    Магазин SvoёMesto

  17. #37
    Гуру Аватар для Superglucker
    Репутация: 594
    Регистрация: 28.02.2011
    Пол:
    Адрес: Moscow - фигоскоу ;)
    Сообщений: 3,440

  18. #38
    Пользователь
    Репутация: 54
    Регистрация: 13.07.2011
    Пол:
    Адрес: Екатеринбург
    Сообщений: 450
    С П А С И Б О !

  19. #39
    Новичок
    Репутация: 11
    Регистрация: 13.05.2011
    Пол:
    Адрес: Кисловодск
    Сообщений: 35
    Спасибо. Работает отлично.

  20. #40
    Гуру Аватар для Superglucker
    Репутация: 594
    Регистрация: 28.02.2011
    Пол:
    Адрес: Moscow - фигоскоу ;)
    Сообщений: 3,440



Страница 2 из 8 ПерваяПервая 123456 ... ПоследняяПоследняя

Похожие темы

  1. написал на VB eJuiceMixtureCalculator
    от svoemesto в разделе Жидкости
    Ответов: 585
    Последнее сообщение: 26.07.2023, 20:32
  2. Ответов: 70
    Последнее сообщение: 14.01.2015, 21:32
  3. Ответов: 21
    Последнее сообщение: 27.06.2011, 05:35
  4. eGo. Для вас - снова, для меня - впервой. :-)
    от Romulus в разделе Советы новичкам
    Ответов: 31
    Последнее сообщение: 27.01.2011, 15:51

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  

Условия предоставления информации | Отказ от ответственности

© eCigTalk.org 2021