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

Twin Basic

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

Студворк — интернет-сервис помощи студентам
Несмотря на то, что проект 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 и Visual studio это не одно и тоже? если нет то в чём разница, по мимо оформления?

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

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

335
jump
 Аватар для I can
5006 / 4788 / 852
Регистрация: 13.04.2015
Сообщений: 10,034
30.10.2024, 15:54
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от HackerVlad Посмотреть сообщение
буквенные работает
А зачем ты строку передаёшь, если нужно число?
0
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
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
jump
 Аватар для I can
5006 / 4788 / 852
Регистрация: 13.04.2015
Сообщений: 10,034
30.10.2024, 17:13
Цитата Сообщение от HackerVlad Посмотреть сообщение
Функция же заранее этого не знает.
Скорее всего там под капотом перегруженная сишная функция, поэтому возможно передавать и строку и число, но это разные вещи.
1
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
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
jump
 Аватар для I can
5006 / 4788 / 852
Регистрация: 13.04.2015
Сообщений: 10,034
30.10.2024, 17:14
У Анатолия надо спросить, он в курсе этих дел обычно.
0
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
30.10.2024, 17:16
I can, да какая разница уже что там эти майкры напортачили и почему строка в число автоматически не преобразуется, пришлось вручную преобразовывать и проверять регуляркой число или не число
0
jump
 Аватар для I can
5006 / 4788 / 852
Регистрация: 13.04.2015
Сообщений: 10,034
30.10.2024, 17:20
Цитата Сообщение от HackerVlad Посмотреть сообщение
проверять регуляркой числ
А isNumeric чем не нравится?

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

Добавлено через 44 секунды
А про isNumeric я почему-то забыл, если честно
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
01.11.2024, 10:46
I can, HackerVlad, вы TwinBasic обсуждаете или VB6?
0
1409 / 868 / 93
Регистрация: 08.02.2017
Сообщений: 3,710
Записей в блоге: 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
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
01.11.2024, 12:40  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
Очень много новых возможностей
Не добавились ли инициализация массивов при объявлении?
В VB6 их очень нудно заполнять.
0
1409 / 868 / 93
Регистрация: 08.02.2017
Сообщений: 3,710
Записей в блоге: 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
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
01.11.2024, 12:55  [ТС]
Симпатично.
Осталось разобраться с редактором ресурсов и как вставить иконку проекта. В VB 6 можно поставить иконку из формы. В TB не сообразил. Пытался импортировать, ругается.
0
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
01.11.2024, 15:48
Цитата Сообщение от Catstail Посмотреть сообщение
вы TwinBasic обсуждаете или VB6?
резонное замечание конечно и то и то обсуждаем, а в TwinBasic есть регулярки? вполне может быть...

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

Добавлено через 4 часа 20 минут
Это программа такая для просмотра и создания ресурсов ну, так зачем тогда встроенный в VB6 редактор ресурсов
0
 Аватар для Argus19
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 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 - Visual Basic
Помогите пожалуйста! В среде VB написать программу вычисления значений функции двух переменных....

Скачать Visual Basic 6.0
Киньте ссылочку,плз,откуда можна скачать сабж!

[Visual Basic]операторы циклов, помогите с прогой:)
Нада в VB сбацать прогу, используя операторы циклов: Дана произвольной длины последовательность...

Помогите написать программу на Visual Basic!
Люди, срочно нужна ваша помощь!!! Никак не могу написать программу на Visual Basic, по причине...

Диалекты Basic
Пожалуйста, подскажите, какие бывают диалекты Basic'а, какие их основные особенности и с какого из...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru