Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.00/1: Рейтинг темы: голосов - 1, средняя оценка - 4.00
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23

Twin Basic

27.10.2024, 20:05. Показов 29297. Ответов 330
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Несмотря на то, что проект Twin Basic по словам авторов в заключительной стадии "бета", скачал и попробовал.
Непривычный интерфейс.
Открыл проект, созданный в IDE Visual Basic 6.0, скомпилировал и 32 и 64 разрядные версии. По объёму результирующего кода получилось больше. Может быть нет оптимизации кода.
Кто-нибудь из форумчан может что-то сказать об этой IDE ?
3
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2024, 20:05
Ответы с готовыми решениями:

Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net

Вычисление значений функции двух переменных в Visual Basic - Visual Basic
Помогите пожалуйста! В среде VB написать программу вычисления значений функции двух переменных. Ориентировочный вид окна программы и...

Visual Basic 6 и Visual Basic .NET - в чем различия?
Visual Basic и Visual studio это не одно и тоже? если нет то в чём разница, по мимо оформления?

330
dive
 Аватар для I can
4969 / 4664 / 847
Регистрация: 13.04.2015
Сообщений: 9,867
30.10.2024, 15:54
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от HackerVlad Посмотреть сообщение
буквенные работает
А зачем ты строку передаёшь, если нужно число?
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.10.2024, 17:11
Если я передаю String но с числом 101 то vb6 врёт что ресурс 101 не найден

Добавлено через 31 секунду
Я тут посмотрел что Argus19 передаёт Integer и у него работает

Добавлено через 21 секунду
передавать Variant тоже не помогает

Добавлено через 53 секунды
Цитата Сообщение от I can Посмотреть сообщение
А зачем ты строку передаёшь, если нужно число?
А вдруг будет буквенное название? Функция же заранее этого не знает.

Добавлено через 1 минуту
Получается что это косяк майкрософта в функции LoadResData что оно нормально определить число не может в строковой форме

Добавлено через 10 минут
Вообще если честно, первый раз вижу, чтобы VB6 не преобразовывало автоматически строку в число.

Добавлено через 25 минут
На ум приходит только регулярка для проверки является ли строка числом:

Visual Basic
1
2
3
Private Function StringIsDigits(ByVal s As String) As Boolean
    StringIsDigits = Len(s) And (s Like String(Len(s), "#"))
End Function
Добавлено через 27 минут
Всё, исправил я свою ошибку, теперь будет выглядеть так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim WaveData() As Byte
 
Private Function StringIsDigits(ByVal s As String) As Boolean
    StringIsDigits = Len(s) And (s Like String(Len(s), "#"))
End Function
 
' Проигрывание WAV-файла из ресурсов с помощью VB6
Public Function LoadResWaveVB(ByVal id As Variant, Optional section As String = "WAVE") As Boolean
    Dim RetValue As Long
    Dim setID As Long
    
    If StringIsDigits(id) = True Then
        setID = id
        WaveData() = LoadResData(setID, section)
    Else
        WaveData() = LoadResData(id, section)
    End If
    
    RetValue = sndPlaySound(WaveData(0), SND_ASYNC Or SND_MEMORY)
    
    If RetValue <> 0 Then
        LoadResWaveVB = True
    End If
End Function
Добавлено через 9 минут
Выложил в готовых решениях новый вариант модуля (который уже теперь поддерживает числовые значения)
Готовые решения и полезные коды на Visual Basic 6.0
0
dive
 Аватар для I can
4969 / 4664 / 847
Регистрация: 13.04.2015
Сообщений: 9,867
30.10.2024, 17:13
Цитата Сообщение от HackerVlad Посмотреть сообщение
Функция же заранее этого не знает.
Скорее всего там под капотом перегруженная сишная функция, поэтому возможно передавать и строку и число, но это разные вещи.
1
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.10.2024, 17:13
По сути надо только это, если стандартными средствами VB:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Explicit
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
 
' Константы
Private Const SND_ASYNC = &H1
Private Const SND_MEMORY = &H4
 
Dim WaveData() As Byte
 
Private Function StringIsDigits(ByVal s As String) As Boolean
    StringIsDigits = Len(s) And (s Like String(Len(s), "#"))
End Function
 
' Проигрывание WAV-файла из ресурсов с помощью VB6
Public Function LoadResWaveVB(ByVal id As Variant, Optional section As String = "WAVE") As Boolean
    Dim RetValue As Long
    Dim setID As Long
    
    If StringIsDigits(id) = True Then
        setID = id
        WaveData() = LoadResData(setID, section)
    Else
        WaveData() = LoadResData(id, section)
    End If
    
    RetValue = sndPlaySound(WaveData(0), SND_ASYNC Or SND_MEMORY)
    
    If RetValue <> 0 Then
        LoadResWaveVB = True
    End If
End Function
 
' Освободить память
Public Sub ClearArrayWave()
    Erase WaveData
End Sub
0
dive
 Аватар для I can
4969 / 4664 / 847
Регистрация: 13.04.2015
Сообщений: 9,867
30.10.2024, 17:14
У Анатолия надо спросить, он в курсе этих дел обычно.
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.10.2024, 17:16
I can, да какая разница уже что там эти майкры напортачили и почему строка в число автоматически не преобразуется, пришлось вручную преобразовывать и проверять регуляркой число или не число
0
dive
 Аватар для I can
4969 / 4664 / 847
Регистрация: 13.04.2015
Сообщений: 9,867
30.10.2024, 17:20
Цитата Сообщение от HackerVlad Посмотреть сообщение
проверять регуляркой числ
А isNumeric чем не нравится?

Добавлено через 1 минуту
Цитата Сообщение от HackerVlad Посмотреть сообщение
s Like String(Len(s), "#")
Кстати, это не регулярка
1
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.10.2024, 17:25
Цитата Сообщение от I can Посмотреть сообщение
Кстати, это не регулярка
Да я знаю, в VB6 нет регулярки встроенной вообще) это я так просто назвал по приколу лайк этот)

Добавлено через 44 секунды
А про isNumeric я почему-то забыл, если честно
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,745
Записей в блоге: 14
01.11.2024, 10:46
I can, HackerVlad, вы TwinBasic обсуждаете или VB6?
0
1392 / 849 / 92
Регистрация: 08.02.2017
Сообщений: 3,626
Записей в блоге: 2
01.11.2024, 12:08
Просматриваю список возможностей TB из интересного и того что понял.
Поддержка As Any при объявлении
Type Inference

Variables can now be declared As Any and their type will be inferred, similar to C++'s auto.
Dim x As Any = 5&' would result in x being a Long`.

This is only for the Dim statement; arguments cannot be As Any except in API declarations.
Visual Basic
1
2
3
4
5
6
7
8
Type Foo
   bar As Long
End Type
Public Declare PtrSafe Function MyFunc Lib "MyDLL" (pFoo As Foo) As Long
 
Private Sub CallMyFunc()
    Dim ret As Long = MyFunc(vbNullPtr)
End Sub
Новые операторы += -= /= *= ^= &= <<= >>=
Thread safety/multithreading support
While there's no native language syntax yet (planned), you can call CreateThread directly with no hacks. Previously, VBx and other BASIC languages typically required elaborate workarounds to be able to use CreateThread for anything but some specialized, extremely simple things. In twinBASIC, you can call it and all other threading APIs without any special steps, other than of course the careful management of doing threading at a low level like this.
AddressOf для членов класса
Visual Basic
1
2
Dim foo1 As New CFoo
Dim lpfn As LongPtr = AddressOf foo1.bar
Ну и т.д. )

Добавлено через 5 минут
Еще вот понравилось
The DeclareWide keyword, in place of Declare, disables ANSI<->Unicode conversion for API calls. This applies both directly to arguments, and to String arguments inside a UDT. For example, the following are equivalent in functionality:

Visual Basic
1
2
Public Declare PtrSafe Sub FooW Lib "some.dll" (ByVal bar As LongPtr)
Public DeclareWide PtrSafe Sub Foo Lib "some.dll" Alias "FooW" (ByVal bar As String)
CDecl support

The cdecl calling convention is supported both for API declares and methods in your code. This includes DLL exports in standard DLLs. Examples:

Visual Basic
1
Private DeclareWide PtrSafe Function _wtoi64 CDecl Lib "msvcrt" (ByVal psz As String) As LongLong
Добавлено через 5 минут
Ваиативные аргументы {ByRef | ByVal}, As Any
Вообще че ни смотришь, все прикольное

Добавлено через 4 минуты
Очень много новых возможностей, но в то же время наверное и повышается порог понимания и читаемости кода.

Добавлено через 3 минуты
Хотя с другой стороны если сравнить какой-нибудь код "классического" VB с обилием GetMem, PutMem и т.д. в ТВ наоброт это может интерпретироваться в какой-то более понятный вид..
1
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
01.11.2024, 12:40  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
Очень много новых возможностей
Не добавились ли инициализация массивов при объявлении?
В VB6 их очень нудно заполнять.
0
1392 / 849 / 92
Регистрация: 08.02.2017
Сообщений: 3,626
Записей в блоге: 2
01.11.2024, 12:53
Цитата Сообщение от Argus19 Посмотреть сообщение
Не добавились ли инициализация массивов при объявлении?
Ваше сообщение слишком короткое. Оно должно быть не менее 3 символов.
Inline variable initialization

You can now set initial values for variables inline, without needing a line-continuation character.

Visual Basic
1
2
3
4
5
6
7
Examples
 
Dim i As Long = 1
 
Dim foo As Boolean = bar()
 
Dim arr As Variant = Array(1, 2, 3)
Добавлено через 4 минуты
Вот более полная демонтрация возможностей массивов
Кликните здесь для просмотра всего текста
Destructuring assignment support for arrays

This feature allows you to assign the contents of an array to multiple variables in a single line:

Visual Basic
1
2
3
4
5
6
7
    Dim a As Long, b As Long, c As Long
    Dim d(2) As Long
    d(0) = 1
    d(1) = 2
    d(2) = 3
    Array(a, b, c) = d
    Debug.Print a, b, c
This would print 1 2 3. You could also assign multiple variables at once like this and get the same result:

Visual Basic
1
2
3
    Dim a As Long, b As Long, c As Long
    Array(a, b, c) = Array(1, 2, 3)
    Debug.Print a, b, c
You can now also do assignments like this:

Visual Basic
1
2
3
4
        Dim a As Long = 9
        Dim b As Long = 7
        Dim c() As Long = Array(a, b)
        Debug.Print c(1), UBound(c)
Which prints 7 1.


Добавлено через 4 минуты
В общем, у слова Array значительно расширились функции
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
01.11.2024, 12:55  [ТС]
Симпатично.
Осталось разобраться с редактором ресурсов и как вставить иконку проекта. В VB 6 можно поставить иконку из формы. В TB не сообразил. Пытался импортировать, ругается.
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
01.11.2024, 15:48
Цитата Сообщение от Catstail Посмотреть сообщение
вы TwinBasic обсуждаете или VB6?
резонное замечание конечно и то и то обсуждаем, а в TwinBasic есть регулярки? вполне может быть...

Добавлено через 7 минут
в TwinBasic много чего нового появилось конечно, но большие EXE меня отталкивают
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
02.11.2024, 11:12  [ТС]
Не поленился и сделал FAQ с сайта tB в двух форматах:
Вложения
Тип файла: doc Что такое twinBASIC.doc (485.0 Кб, 25 просмотров)
Тип файла: docx Что такое twinBASIC.docx (439.1 Кб, 22 просмотров)
2
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
05.11.2024, 09:03  [ТС]
Написал автору tB по поводу редактора ресурсов. Вот что он ответил:
"Это не запланировано для выпуска v1. Это может быть добавлено когда-нибудь в цикле выпуска v1.xx."
На ждать.
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.11.2024, 15:29
Цитата Сообщение от Argus19 Посмотреть сообщение
Написал автору tB по поводу редактора ресурсов. Вот что он ответил
Так ресурсы нельзя подключать вообще что ли в Twin Basic????
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
05.11.2024, 19:29  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
Так ресурсы нельзя подключать вообще что ли в Twin Basic????
Можно.
У меня не устанавливается WebView Control.
Наваял по-быстрому программку. Завтра попробую на работе.
Не могу найти редактор ресурсов от VS 2003-2005. Говорят он вкуснее, чем встроенный в VB.
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.11.2024, 23:55
Argus19, чем тебя не устраивает обычный ResourceHacker?

Добавлено через 4 часа 20 минут
Это программа такая для просмотра и создания ресурсов ну, так зачем тогда встроенный в VB6 редактор ресурсов
0
 Аватар для Argus19
1433 / 450 / 78
Регистрация: 24.09.2017
Сообщений: 2,533
Записей в блоге: 23
06.11.2024, 06:09  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
чем тебя не устраивает обычный ResourceHacker?
Дело привычки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.11.2024, 06:09
Помогаю со студенческими работами здесь

Отличия версий Visual Basic 6.0 от Visual Basic 6.5?
У меня 3 вопроса: 1.Чем отличается версия Visual Basic 6.0 от Visual Basic 6.5? 2.Можно ли запустить проект созданный раннее в Visual...

что лучше MSI R6870 Twin Frozr II или MSI N570GTX Twin Frozr II/OC, 1.3Гб?
выбор между PCI-E 2.1 MSI R6870 Twin Frozr II, 1Гб, GDDR5, Ret и PCI-E 2.0 MSI N570GTX Twin Frozr II/OC, 1.3Гб, GDDR5, OC, Ret ...

не могу настроить twin frozr 3
подскажите!я в железе не очень!купил видюху twin frozr 3,говорят видушка достаточно мощная захотел протестить на игре кризис 2 на полных...

MSI N560GTX-Ti Twin Frozr II/OC
Столкнулся с такой проблемой, в игре начали появляться непонятные полосы, расплываться объекты (см. скриншоты), пока заметил такую проблему...

MSI GTX480 twin frozr
Всем привет, такая проблема- как обычно видеокарта не дает компу стартануть и бросает его в ребут по циклу, разобрал карту нашел скол на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru