Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/92: Рейтинг темы: голосов - 92, средняя оценка - 4.72
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19

Как получить название ключа в коллекции

14.02.2014, 19:59. Показов 18612. Ответов 65
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю свой класс
который бы, имитировал класс Scripting.Dictionary
остановился на функции возврата списка имен ключей
где я тут чего не доглядел, где что упустил ?


Модуль класса
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Option Explicit
 
Private CL As Collection
Function Keys()
'Вот тут я остановился
'    Dim f&, v, v1
'    ReDim v(CL.Count - 1)
'    For Each v1 In CL
'        v(f) = CL(f + 1)
'        f = f + 1
'    Next
End Function
 
Public Sub Add(Key$, Item)
    CL.Add Item, Key
End Sub
 
Function Exists(Key) As Boolean
    On Error Resume Next
    Call CL.Item(Key)
    If Err.Number Then Else Exists = True
End Function
 
Function Items() As Variant()
    Dim f&, v, v1
    ReDim v(CL.Count - 1)
    For Each v1 In CL
        v(f) = v1
        f = f + 1
    Next
End Function
 
Private Sub Class_Initialize()
    Set CL = New Collection
End Sub
 
Private Sub Class_Terminate()
    Set CL = Nothing
End Sub
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2014, 19:59
Ответы с готовыми решениями:

Как изменить имя ключа в коллекции?
Есть коллекция Dictionary<String, Process> PrcDic; (Process - самодельный класс). А как изменить значение одного из ключей...

Как узнать название лейбла элемента коллекции по номеру
Добрый день. Есть задача: После считывания меню создается коллекция вида: collection_menu.Add parameters, Name_Fuction ...

Использование коллекции с идентификатором ключа в виде пользовательского типа
Здравствуйте уважаемые форумчане. Очень неудобно обращаться к вам с такой просьбой, но на данный момент у меня нет другого выхода. Учу...

65
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
14.02.2014, 20:13  [ТС]
Целиком группа файлов
для отладки и просмотра как и что работает
Вложения
Тип файла: rar Группа.rar (2.5 Кб, 16 просмотров)
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
14.02.2014, 20:56  [ТС]
...
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
14.02.2014, 21:06
Лучший ответ Сообщение было отмечено Антихакер32 как решение

Решение

Можно параллельно вести вторую коллекцию, у которой Item=Key. Keys брать из нее, как Items из основной.
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
15.02.2014, 05:26  [ТС]
Хорошая идея спасибо !

Функционал какой мне нужно остаётся тем-же
По умолчанию класс возвращает вариант Item

Вызов из отделного проекта:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
 
Private Sub Form_Activate()
    Dim d As New DIC, v, v1, d1
    Cls
    Set d1 = CreateObject("Scripting.Dictionary"): d1.CompareMode = 1
    d.Add "Ключ 1", "Пример первой записи"
    d.Add "Ключ 2", "Пример второй записи"
    d1.Add "Ключ", "Пример для сравнения"
    '------------------
    Print d("КлЮч 1"), "DIC"
    Print d("кЛюч 2"), "DIC"
    Print d1("КлюЧ"), "Scripting.Dictionary"
    Print "'---------------------------------"
    v = d.Items  'DIC
    v1 = d1.Items 'Scripting.Dictionary
    '---------------------------------
End Sub
Класс:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Option Explicit
'
'   Класс Dictionary (© FelixMacintosh)
'
Private c1 As Collection, c2 As Collection
 
Public Property Get Item(ByVal Key As String) As Variant
    Item = c1(Key)
End Property
 
Public Function Keys()
    Dim f&, v
    ReDim v(c1.Count - 1)
    For f = 0 To c1.Count - 1
        v(f) = c2.Item(f + 1)
    Next
    Keys = v
End Function
 
Public Sub Add(Key$, Item)
    c1.Add Item, Key
    c2.Add Key, CStr(c2.Count)
End Sub
 
Function Exists(Key$) As Boolean
    On Error Resume Next
    Call c1.Item(Key)
    If Err.Number Then Else Exists = True
End Function
 
Function Items()
    Dim f&, v
    ReDim v(c1.Count - 1)
    For f = 0 To c1.Count - 1
        v(f) = c1.Item(f + 1)
    Next
    Items = v
End Function
 
Private Sub Class_Initialize()
    Set c1 = New Collection
    Set c2 = New Collection
End Sub
 
Private Sub Class_Terminate()
    Set c1 = Nothing
    Set c2 = Nothing
End Sub
Добавлено через 2 минуты
Кому интересно пользуйтесь
Вложения
Тип файла: rar MyDIC Группа.rar (2.8 Кб, 15 просмотров)
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
15.02.2014, 06:20
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
Кому интересно пользуйтесь
При запуске у меня пишет, что не может создать ссылку на Project2.vbp. Соответственно не работает.
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
15.02.2014, 07:59  [ТС]
Запустить нужно группу
Там возможна ошибка в подключении через References, переподключи ...
Меня вообще второй проект не особо интересует
DIC у меня в группе контролов работает, который я скоро выложу
а Proect2 это только проект для теста, там еще пару мелочей
доработать и буду во всех своих прогах пользовать включая
упаковщики на VB

Добавлено через 2 минуты
потомучто решил не использовать ни чьих библиотек
вобщем скоро выложу весь набор удивлю народ, так-сказать
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
15.02.2014, 12:32
Лучший ответ Сообщение было отмечено Антихакер32 как решение

Решение

Ключи можно получить непосредственно из коллекции
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 GetMem4 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
 
Private Sub Form_Load()
    Dim Col As Collection, i As Long
    
    Set Col = New Collection
    
    Col.Add "ssss", "item1"
    Col.Add "ssss", "item2"
    Col.Add "ssss", "item3"
    Col.Add "ssss", "item4"
    Col.Add "ssss", "item5"
    
    For i = 1 To Col.Count
        Debug.Print ColKey(i, Col)
    Next
End Sub
Private Function ColKey(ByVal Index As Long, Col As Collection) As String
    Dim lpSTR As Long, Ptr As Long, Key As String
    If Col Is Nothing Then Exit Function
    Select Case Index
    Case Is < 1, Is > Col.Count: Exit Function
    Case Else
        Ptr = ObjPtr(Col)
        Do While Index
            GetMem4 ByVal Ptr + 24, Ptr
            Index = Index - 1
        Loop
    End Select
    lpSTR = StrPtr(Key)
    GetMem4 ByVal Ptr + 16, ByVal VarPtr(Key)
    ColKey = Key
    GetMem4 lpSTR, ByVal VarPtr(Key)
End Function
Для безымянных ключей проверять lpStr, если 0, то элемент без ключа.
6
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
15.02.2014, 12:49  [ТС]
Отличное дополнение к моей "коллекции",
заценил ..., спасибо

Добавлено через 1 минуту
Так помоему даже правильнее будет ...
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
15.02.2014, 12:49
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
Отличное дополнение к моей "коллекции"
Это и есть ответ "Как получить название ключа в коллекции", также можно получить индекс по ключу.
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
15.02.2014, 13:05  [ТС]
Ptr + 24... +16
А для чего эти цифры и что они означают (любопытство)

Добавлено через 2 минуты
Цитата Сообщение от The trick Посмотреть сообщение
Это и есть ответ "Как получить название ключа в коллекции", также можно получить индекс по ключу.
где вы были, вчера ....

Добавлено через 7 минут
Цитата Сообщение от The trick Посмотреть сообщение
также можно получить индекс по ключу.
Тоесть эту-же функцию использовать ?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
15.02.2014, 13:57
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
Делаю свой класс
который бы, имитировал класс Scripting.Dictionary
А свойство HashVal будет реализовано?
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
15.02.2014, 14:00
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от FelixMacintosh Посмотреть сообщение
А для чего эти цифры и что они означают (любопытство)
Коллекция хранит данные в двусвязном списке, каждый элемент представляет собой пару значение-ключ, где значение представлено типом Variant. Внутри объекта коллекции по смещению 24 находится указатель на первый элемент списка, по смещению 28 на последний. Каждый элемент по смещению 24 содержит указатель на следующий элемент списка, по смещению 20 на предыдущий. Т.к. данные хранятся в виде пары значение(Variant)-ключ(String(BSTR)), то для того чтобы добраться до значения ключа, нужно прибавить 16 (размер типа Variant). Например если ты хочешь добраться до значения определенного элемента можешь сделать так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Function ColItem(ByVal Index As Long, Col As Collection) As Variant
    Dim Ptr As Long, Key As Variant
    If Col Is Nothing Then Exit Function
    Select Case Index
    Case Is < 1, Is > Col.Count: Exit Function
    Case Else
        Ptr = ObjPtr(Col)
        Do While Index
            GetMem4 ByVal Ptr + 24, Ptr
            Index = Index - 1
        Loop
    End Select
    GetMem8 ByVal Ptr, ByVal VarPtr(Key)             ' Îäíó ïîëîâèíó êîïèðóåì
    GetMem8 ByVal Ptr + 8, ByVal VarPtr(Key) + 8     ' Âòîðóþ ïîëîâèíó êîïèðóåì
    ColItem = Key
End Function
Сейчас посмотрю как организуется поиск по ключу, постараюсь отписать.
5
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
15.02.2014, 15:18  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
А свойство HashVal будет реализовано?
Судя по всему вы говорите об указателе на структуру
мне собственно этот мой класс нужен будет в исключительном случае
чтоб запустить один из EXE-шников без библиотек
в остальных случяях буду по прежнему использовать Scripting.Dictionary
как я уже говорил, весь необходимый функционал меня уже устраивает
The Trick мне даже с горкой добавил
но если Вы чтото умеете и знаете как реализовать отпишите пожалуйста

Добавлено через 50 минут
Тоесть тогда, действительно можно будет говорить о полной имитации
я там в готовых решениях выкладывал, исходник OCX с группой восстребованных
контролов, там я ещё реализовывал по старинке, сейчас делаю по новому
там классы FSO(усовершенствованный) и DIC буквально вшити в проект ActiveX
так вот, этот необходимый компонент и буду использовать
на данном этапе добавляю в DIC прочие предложенные финчи

Добавлено через 22 минуты
Цитата Сообщение от The trick Посмотреть сообщение
Сейчас посмотрю как организуется поиск по ключу, постараюсь отписать.
я знаю, у вас есть спец-набор инструментов для мониторинга
Это будет интересно, жду с нетерпением
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
15.02.2014, 17:42
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Получение элемента коллекции по ключу
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Function ColItem(Key As String, Col As Collection) As Variant
    Dim lpStr As Long, Ptr1 As Long, Ptr2 As Long, sKey As String
 
    GetMem4 ByVal ObjPtr(Col) + 36, Ptr1
    GetMem4 ByVal ObjPtr(Col) + 40, Ptr2
 
    Do Until Ptr1 = Ptr2
        GetMem4 ByVal Ptr1 + 16, lpStr
        Select Case VarBstrCmp(ByVal StrPtr(Key), ByVal lpStr, 1, &H30001)
        Case 0: GetMem4 ByVal Ptr1 + 40, Ptr1
        Case 1
            Ptr2 = VarPtr(ColItem)
            GetMem8 ByVal Ptr1, ByVal Ptr2
            GetMem8 ByVal Ptr1 + 8, ByVal Ptr2 + 8
            Exit Function
        Case Else: GetMem4 ByVal Ptr1 + 36, Ptr1
        End Select
    Loop
    
    MsgBox "Element not found"
End Function
5
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
15.02.2014, 21:25
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
мне собственно этот мой класс нужен будет в исключительном случае
чтоб запустить один из EXE-шников без библиотек
А, вот оно что. Я-то думал, что у Вас академический интерес создать аналог словаря. Но неужели возможна такая ситуация, что в операционной среде, в которой запускается ЕХЕ, написанный на VB, отсутствует библиотека Microsoft Scripting Runtime?
Будете ли Вы реализовывать другие возможности словаря? Я постарался собрать их в этом коде:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ub Main()
Dim x
With CreateObject("scripting.dictionary")
  .Add "key1", "val1"
  Debug.Print TypeName(.Item("key2")) 'создание элемента при чтении с несуществующим ключем
  .Item("key3") = 4                   'создание элемента при записи с несуществующим ключем
  Debug.Print .Count
  For Each x In .Keys
    Debug.Print x, .Item(x)
  Next
  .Item("key2") = "val2"              'изменение значения существующей записи
  .Key("key1") = "newKey"             'изменение ключа существующей записи
  For Each x In .Keys
    Debug.Print x, .Item(x)
  Next
  .RemoveAll                          'есть в словаре, нет в коллекции
  Debug.Print .Count
  Debug.Print .HashVal("myString")    'скрытое свойство для внутреннего использования,
                                      'практичеcкого значения, видимо, не имеет
  Debug.Print .Count
End With
End Sub
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
15.02.2014, 22:20  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
.RemoveAll * * * * * * * * * * * * *'есть в словаре, нет в коллекции
я у себя в классе так сделал:
Visual Basic
1
2
3
4
Public Sub RemoveAll()
    Class_Terminate
    Class_Initialize
End Sub
тоесть, уничтожается, затем заново инициализируется
коллекция, это уже я позже дописал, теперь когда The Trick выложил
полезные функции буду делать с одной коллекцией, а не с двумя

Цитата Сообщение от Казанский Посмотреть сообщение
.HashVal("myString") * *'скрытое свойство для внутреннего использования,
* * * * * * * * * * * * * * * * * * *'практичеcкого значения, видимо, не имеет
я действительно даже и не представлял, для чего это спасибо что обратили внимание

Добавлено через 8 минут
Цитата Сообщение от Казанский Посмотреть сообщение
Но неужели возможна такая ситуация, что в операционной среде, в которой запускается ЕХЕ, написанный на VB, отсутствует библиотека Microsoft Scripting Runtime?
зато не нужно будет её подключать, а класс с исходником можно всегда в свой проект прикрутить

А главное можно усовершенствовать !
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
16.02.2014, 00:45
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от Казанский Посмотреть сообщение
А свойство HashVal будет реализовано?
HashVal в моей версии scrrun.dll реализована вот так
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
Option Explicit
 
Private Declare Function GetMem4 Lib "msvbvm60" (Src As Any, Dst As Any) As Long
 
Private Sub Form_Load()
    Dim Z As Dictionary, q1 As Long, q2 As Long
    
    Set Z = New Dictionary
    
    q1 = Z.HashVal("Verify string")
    q2 = HashVal("Verify string")
End Sub
 
Private Function HashVal(S As String) As Long
    Dim i As Long, ch As Currency, res As Long, cres As Currency
    
    ' Извращения с Currency, т.к. в VB нет UINT32 и циклической арифметики
    For i = 0 To Len(S) - 1
        ch = AscW(Mid$(S, i + 1, 1)) / 10000
        cres = CCur(res) / 10000 * 17 + ch
        GetMem4 cres, res
    Next
    cres = 0: GetMem4 res, cres
    ch = cres * 10000
    HashVal = (ch - (Int(ch / 1201) * 1201))
End Function
4
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
16.02.2014, 00:52  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
А свойство HashVal будет реализовано?
Цитата Сообщение от The trick Посмотреть сообщение
реализована вот так
А вот и ответ для Алексея, что подтверждает высказавание
одного из модераторов что для VB и пользователя The Trick (Анатолия) нет ничего невозможного !
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
16.02.2014, 00:52
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
А главное можно усовершенствовать
Для начала получить бы тот же функционал
Коллекция всегда сравнивает ключи в текстовом режиме, т.е. ключи "абв" и "АБВ" для нее одинаковы.
Словарь может использовать 3 вида сравнения (свойство CompareMode), причем по умолчанию установлено BinaryCompare, т.е. ключи "абв" и "АБВ" для него различны.
Чтобы сымитировать BinaryCompare на коллекции, придется добавлять к ключу некий хеш (а при извлечении ключа отрезать его).
А пока можно добавить свойство CompareMode и заставить пользователя устанавливать его в текстовый режим. Например, так
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
Public Enum dicCompareMethod
  dicTextCompare = vbTextCompare  'единственный вариант, предлагаемый в выпадающем списке
End Enum
 
Private bCompModeSet As Boolean 'флаг "режим сравнения установлен"
 
'...
 
Public Property Get CompareMode() As dicCompareMethod
  CompareMode = dicTextCompare
End Property
 
Public Property Let CompareMode(x As dicCompareMethod)
  If x <> dicTextCompare Then Err.Raise 28002, , "This collection supports only TextCompare mode"
  If c1.Count Then Err.Raise 28003, , "Can't change CompareMode while collection is not empty"
  bCompModeSet = True
End Property
 
'...
 
Public Sub Add(Key$, Item)
  If bCompModeSet Then      'не позволяем добавлять элементы, пока режим сравнения не установлен
    c1.Add Item, Key
'...
  Else: Err.Raise 28001, , "CompareMode is not set"
  End If
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2014, 00:52
Помогаю со студенческими работами здесь

Как получить список вместо коллекции
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Как в Ajax получить значение определенного ключа?
сейчас мне Ajax возвращает результат вот в таком виде {&quot;org&quot;:&quot;IK1&quot;,&quot;con&quot;:null,&quot;reg_date&quot;:&quot;2016-06-10...

Как получить все значения по полю в коллекции?
Например есть коллекция Книги в ней если по индексу обращаться Books.Author то можно взять значения автора каждого, как еще можно через...

Как правильно получить последний элемент коллекции?
Доброго времени суток! Возникла пролема с использованием метода .ElementAt(). Необходимо получить последний элемент коллекции для...

Как получить тип элемента обобщенной коллекции?
Добрый день, господа! Столкнулся с нетривиальной задачей: как получить тип элемента коллекции List&lt;T&gt;, в которой нет значений. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru