Аватар для Argus19
1727 / 471 / 78
Регистрация: 24.09.2017
Сообщений: 2,559
Записей в блоге: 25

Twin Basic

27.10.2024, 20:05. Показов 33639. Ответов 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
5005 / 4769 / 852
Регистрация: 13.04.2015
Сообщений: 10,016
30.10.2024, 15:54
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от HackerVlad Посмотреть сообщение
буквенные работает
А зачем ты строку передаёшь, если нужно число?
0
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
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
5005 / 4769 / 852
Регистрация: 13.04.2015
Сообщений: 10,016
30.10.2024, 17:13
Цитата Сообщение от HackerVlad Посмотреть сообщение
Функция же заранее этого не знает.
Скорее всего там под капотом перегруженная сишная функция, поэтому возможно передавать и строку и число, но это разные вещи.
1
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
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
5005 / 4769 / 852
Регистрация: 13.04.2015
Сообщений: 10,016
30.10.2024, 17:14
У Анатолия надо спросить, он в курсе этих дел обычно.
0
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
30.10.2024, 17:16
I can, да какая разница уже что там эти майкры напортачили и почему строка в число автоматически не преобразуется, пришлось вручную преобразовывать и проверять регуляркой число или не число
0
dive
 Аватар для I can
5005 / 4769 / 852
Регистрация: 13.04.2015
Сообщений: 10,016
30.10.2024, 17:20
Цитата Сообщение от HackerVlad Посмотреть сообщение
проверять регуляркой числ
А isNumeric чем не нравится?

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

Добавлено через 44 секунды
А про isNumeric я почему-то забыл, если честно
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,757
Записей в блоге: 14
01.11.2024, 10:46
I can, HackerVlad, вы TwinBasic обсуждаете или VB6?
0
1407 / 866 / 93
Регистрация: 08.02.2017
Сообщений: 3,699
Записей в блоге: 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
1727 / 471 / 78
Регистрация: 24.09.2017
Сообщений: 2,559
Записей в блоге: 25
01.11.2024, 12:40  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
Очень много новых возможностей
Не добавились ли инициализация массивов при объявлении?
В VB6 их очень нудно заполнять.
0
1407 / 866 / 93
Регистрация: 08.02.2017
Сообщений: 3,699
Записей в блоге: 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
1727 / 471 / 78
Регистрация: 24.09.2017
Сообщений: 2,559
Записей в блоге: 25
01.11.2024, 12:55  [ТС]
Симпатично.
Осталось разобраться с редактором ресурсов и как вставить иконку проекта. В VB 6 можно поставить иконку из формы. В TB не сообразил. Пытался импортировать, ругается.
0
Вернулся
 Аватар для HackerVlad
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
01.11.2024, 15:48
Цитата Сообщение от Catstail Посмотреть сообщение
вы TwinBasic обсуждаете или VB6?
резонное замечание конечно и то и то обсуждаем, а в TwinBasic есть регулярки? вполне может быть...

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

Добавлено через 4 часа 20 минут
Это программа такая для просмотра и создания ресурсов ну, так зачем тогда встроенный в VB6 редактор ресурсов
0
 Аватар для Argus19
1727 / 471 / 78
Регистрация: 24.09.2017
Сообщений: 2,559
Записей в блоге: 25
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 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru