С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 20

Как достать текст из динамически созданного текстбокса

06.09.2019, 14:16. Показов 3034. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые посетители форума. не так давно стал писать на VB.NET и сталкнулся с рядом проблем. Помогите пожалуйста!
В коде создаю GroupBox, в нем создаю textBox и label. Подразумевается около 10 таких groupbox'ов в каждом часть текста, написанного или вставленного пользователем. GroupBox нужен только для визализации размеров рабочей зоны, в Label нужно бы писать порядок-номер поля(об этом чуть ниже)


1. не получается изъять текст из текстового поля. Кликаю по полю, получаю Имя . а обратиться не нему не могу, вылезает ошибка: System.NullReferenceException: "В экземпляре объекта не задана ссылка на объект

2. Порядок поля(Groupbox'ов): Я сделал что группы можно перетаскивать мышкой, это нужно чтобы можно было менять текст местами. Но не могу понять как отследить какой GroupBox выше, а какой ниже, того которые перемещается... Это скорее всего из-за того что не могу определить индекс активного объекта, чтобы через For определять координаты и менять в переменной порядок полей...

3. Как получить текст из всех созданных TextBox'ов! Это наверное самое главное, все облазил, находил только примеры с созданными в редакторе объектами..

4. Подскажите как у Label поменять размер шрифта?

создаю объекты так:
Кликните здесь для просмотра всего текста

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 Dim gp As GroupBox
 
    Dim h As Integer
 
    Dim posX As Integer = 2
    Dim posY As Integer
 
 
 
    Dim posX_tx As Integer = 10
    Dim posY_tx As Integer = 15
 
    Dim posx_dWidth As Integer = 20
    Dim startPos As Integer = 50
 
    Dim gp_count As Integer = 0
 
    Dim y_Old As Integer
 
    Dim gp_active As Object
    Dim gp_active_ID As Integer
    Dim gp_active_Type As String
    Dim gp_active_Text As TextBox
 
 
 
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
        For Each C As Control In Me.Controls
            AddHandler C.MouseMove, AddressOf Control1_MouseMove
        Next
 
    End Sub
 
 
 
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Static Ind As Integer 'Статическая переменная-счетчик
 
        'Создаю GroupBox
        gp = New GroupBox With {.Height = 100, .Width = Me.Width - 300, .Left = posX, .Top = startPos + h + (5 * (Ind + 2)), .Name = "gp_" & Ind, .Text = .Name, .TabIndex = Ind + 100}
        AddHandler gp.MouseMove, AddressOf Control1_MouseMove
        Me.Controls.Add(gp)  'Добавляем на форму
        gp.BringToFront()  'На передний план
 
        '  создаем внутри GroupBox'a объекты текстовое поле, и задаем параметры
        gp.Controls.Add(New TextBox With {.Multiline = True, .Height = gp.Height - (posY_tx + 5), .Width = gp.Width - (posx_dWidth + (posX_tx \ 2) + 30),
                        .Left = posX_tx, .Top = posY_tx, .Name = "tx_" & Ind, .Text = .Name, .BorderStyle = BorderStyle.None, .TabIndex = Ind + 200})
        '  создаем внутри GroupBox'a объекты Label, и задаем параметры
        gp.Controls.Add(New Label With {.AutoSize = True, .Top = 2, .Width = 20, .Height = gp.Height, .Left = gp.Width - (.Width + 15), .Text = "|||", .Name = "lbl_" & Ind})
        '     Назначаю свойства тексту
        AddHandler Me.gp.Controls("tx_" & Ind).MouseClick, AddressOf Control1_MouseClick
        '
        h += gp.Height 'прибавляю размер отступа
 
        Ind += 1 'Увеличиваем счетчик на единицу
        gp_count = Ind  'крличество созданных объектов'
    End Sub
 
    Private Sub Control1_MouseMove(sender As Object, e As MouseEventArgs)
        '   Перемещаем объекты
        Dim cont As Control = CType(sender, Control) : Label1.Text = TypeName(cont) & "/ " & cont.Name & "/ " & cont.TabIndex & "/ " ' & cont.BindingContext & "/ " & cont.Name
        '
        gp_active_Type = TypeName(cont)
        gp_active = cont.Name
        '  получаем Индекс текстового поля (он при создании больше индекса GroupBox'a на 100)
        Dim id1 As Integer
        id1 = cont.TabIndex + 100
        '
        If TypeName(cont) = "GroupBox" Then
            gp_active_ID = id1     '     активный индекс
            Label3.Text = "tx_" & id1 '   активный текстбокс
        End If
        '
        y_Old = cont.Top     'запоминаем координату группы
        ' Перемещаем
        If Control.MouseButtons = Windows.Forms.MouseButtons.Left And TypeName(cont) = "GroupBox" Then
            'CType(sender, GroupBox).Left = Control.MousePosition.X - Me.Left - CType(sender, GroupBox).Width
            CType(sender, GroupBox).Top = Control.MousePosition.Y - Me.Top - CType(sender, GroupBox).Height
            CType(sender, GroupBox).BringToFront()
        End If
    End Sub
 
 
 
'Вот тут наинается АД... уже всяко пробовал, не выходит(((  
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim cont As Control = CType(sender, Control) : Label1.Text = TypeName(cont) & "/ " & cont.Name
        TextBox1.Text = CType(Me.gp.Controls("tx_" & gp_active_ID), TextBox).Text
    End Sub
Миниатюры
Как достать текст из динамически созданного текстбокса  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.09.2019, 14:16
Ответы с готовыми решениями:

Достать массив из динамически созданного адаптера)
Есть EditText, кнопка и ListView, по нажатию кнопки в список добавляется элемент с названием из EditText'a и вызывается рекурсивная...

Текст из динамически созданного Edit-а
Привет, Создаю Edit-ы и кнопку: case WM_CREATE: HWND Edit; for (int...

Изменить текст label, созданного динамически
Не понимаю как изменить , к примеру текст label1.. Я создал динамично label1 : Label label1 = new Label(); // Создание текста...

11
Лень — мое второе и
 Аватар для Orlangur
3226 / 2414 / 687
Регистрация: 28.11.2014
Сообщений: 3,600
Записей в блоге: 3
06.09.2019, 16:08
Лучший ответ Сообщение было отмечено rlirpoxb как решение

Решение

rlirpoxb,
1) например так
VB.NET
1
TextBox1.Text = CType(Me.Controls("gp_" & gp_active_ID).Controls("tx_" & gp_active_ID), TextBox).Text
или
VB.NET
1
TextBox1.Text = Me.Controls.Find("tx_" & gp_active_ID, True)(0).Text
3) Если из всех текстбоксов в групбоксах на форме, то так
VB.NET
1
2
3
4
5
6
  For Each GB As GroupBox In Me.Controls.OfType(Of GroupBox)()
            ListBox1.Items.Add(GB.Name)
            For Each TB As TextBox In GB.Controls.OfType(Of TextBox)()
                ListBox1.Items.Add("---" & TB.Text)
            Next
        Next
4)
VB.NET
1
Label1.Font = New Font("Arial", 15)
1
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 20
06.09.2019, 16:15  [ТС]
Спастибо Вам огромное!!
Осталось разобраться со вторым пунктом)) но думаю за пару вечеров я его победю)
0
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,726
Записей в блоге: 1
06.09.2019, 16:24
Лучший ответ Сообщение было отмечено rlirpoxb как решение

Решение

Смотрите, у Вас переменная gp хранит ссылку только на последний созданный GroupBox, поэтому что либо "изъять" у Вас получится только из этого контрола, а Вы пытаетесь в строке 89 оперировать им как TextBox-ом. И то это если эта переменная более нигде не переназначается. Вам надо перебирая все контролы формы найти нужный, либо объявить коллекцию GroupBox-ов и работать с ней, либо получать ссылку на контрол другим способом.
Кроме того в строке 88, а конкретнее здесь Dim cont As Control = CType(sender, Control), Вы получите ссылку на кнопку Button4. Там же переменная Label1 не содержит объекта.
Рекомендация: не пишите листинг нескольких директив VB в одну строку, хорошим тоном считается размещать их построчно.
Создайте коллекцию GroupBox-ов
VB.NET
1
Dim GrBoxCollect As List(Of GroupBox)
и манипулируйте GroupBox-ами из этой коллекции (добавляйте, меняйте их свойства и т.п.).

Добавлено через 2 минуты

Не по теме:

много букав писал и запоздал с ответом

2
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 20
06.09.2019, 16:55  [ТС]
Спасибо и Вам за разъяснения, я научусь, писать правильно)))
0
Лень — мое второе и
 Аватар для Orlangur
3226 / 2414 / 687
Регистрация: 28.11.2014
Сообщений: 3,600
Записей в блоге: 3
06.09.2019, 17:18
rlirpoxb, на счет второго пункта, описано не очень понятно, какая именно задача стоит
0
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 20
06.09.2019, 17:59  [ТС]
На подобии как перемещение музыкальных треков в вк. https://dropmefiles.com/pTTAZ

С самого начала "Блоки" стоят в порядке gb_1, gb_2, gb_3, gb_4... Пользователь их перемещает, вверх и вниз. порядок изменяется скажем на gb_3, gb_2, gb_1, gb_4...
И передать текст из TextBox те которые tx_1,tx_2,tx_3... мне нужно в новом порядке тоесть tx_3,tx_2,tx_1,...

Я пока сейчас в поисках решения этой задачи, по идее, нужно создать массив и при создании GroupBox'ов нужно записывать их НОМЕРА в массив.
а при перемещении Блоков, перебирать порядок и записывать в массив новые данные. и нумирацию этого порядка отображать в Label каждого GroupBox'a (типа того что ниже).

Но я пока не могу узнать как определить какой GroupBox находиться выше или ниже остальных... (
Миниатюры
Как достать текст из динамически созданного текстбокса  
0
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 20
06.09.2019, 19:48  [ТС]
В общем ищу как сделать эффект как в вк, перемещения и прилипания блоков на новое место, и смещение всех остальных блоков..

Добавлено через 1 час 44 минуты
Что то я не то делаю?.. Пытаюсь выставить Индекс (порядок) блоков, цикл по координатам Y. При создании запомнил координату по Y у последнего GroupBox она равна y_Max

gp_index - просто индекс от 0, после выхода из цикла становиться равен 0


по моей идее, цикл перебирает от нуля до конечной top и находит GroupBox и присваивает ему индекс от 0 до количества блоков... ОЙ я поннял, нужно определить какой GroupBox он нашел в этих координатах!)) А как это сделать? Помогите!
Visual Basic
1
2
3
4
5
6
7
 
For i = 0 To y_Max
                If i = CType(Me.Controls("gp_" & gp_index), GroupBox).Top Then
                    CType(Me.Controls("gp_" & gp_index).Controls("lbl_" & gp_index), Label).Text = "/" & gp_index
                    gp_index += 1
                End If
            Next
0
Лень — мое второе и
 Аватар для Orlangur
3226 / 2414 / 687
Регистрация: 28.11.2014
Сообщений: 3,600
Записей в блоге: 3
06.09.2019, 20:49
rlirpoxb, особо не разбирался в коде, но набросал такую штуку, тут при нажатии на Button6 вы получите в listbox список всех groupbox на форме, отсортированных по координате Y в формате "Имя - координата Y", возможно, это то, что нужно
Вложения
Тип файла: zip Groupbox_Move.zip (14.2 Кб, 5 просмотров)
1
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,726
Записей в блоге: 1
07.09.2019, 00:23
Попробуй реализовать примерно такое. Напиши процедуру, которая будет перемещать GroupBox на указанное расстояние.
Например такую Sub MoveGrBox(Byval MovedGroupBox As GroupBox, Byval distance As Integer), где MovedGroupBox - перемещаемый гр.бокс, а distance - величина смещения. Затем в событии перемещения GroupBox-а мышкой (твой Control1_MouseMove) определяй наехал ли ты на другой GroupBox используя GetChildAtPoint метод. Если наехал, то автоматом получишь GroupBox, который передашь методу смешения MoveGrBox и величину смещения равную размеру того GroupBox-а, который ты тащишь мышкой.
В методе смещения MoveGrBox можно реализовать эффект скольжения GroupBox-а для красявости
Остаётся только решить задачку с направлением смещения в плюс или минус.

Добавлено через 2 часа 49 минут
На скоряк накидал.
Тренировался на панелях, ты переделай для GroupBox.

Кликните здесь для просмотра всего текста
VB.NET
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
Public Class Form1
    Dim pt As Point
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        For Each C As Control In Me.Controls
            If TypeName(C) = "Panel" Then
                AddHandler C.MouseMove, AddressOf Control_MouseMove
                AddHandler C.MouseDown, AddressOf Control_MouseDown
            End If
        Next
    End Sub
 
    Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        pt = New Point(e.X, e.Y) 'запоминает положение курсора относительно формы
    End Sub
 
    Sub MoveControl(ByVal MovedControl As Control, ByVal distance As Integer)
        'перемещает контрол только по вертикали !!!
        MovedControl.Location = New Point(MovedControl.Location.X, MovedControl.Location.Y + distance)
        'здесь можно добавить эффект скольжения или иные обработки
    End Sub
 
    Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
        If e.Button = Windows.Forms.MouseButtons.Left Then 'Проверяем, нажата ли левая кнопка мыши 
            ' Перемещаем
            Dim cont As Control = CType(sender, Control) 'таскаемый контрол
            cont.Location = New Point(cont.Location.X, cont.Location.Y + e.Y - pt.Y) 'Меняем координаты контрола в зависимости от положения курсора с учетом переменной pt
            Dim ptc As Point = New Point(cont.Location.X + e.X, cont.Location.Y + e.Y) 'новая координата мыши относительно формы
            ' ищем контролы под курсором мыши
            ' для ускорения можно перебирать только контролы в определённом контейнере или коллекции
            For Each backContr As Control In Me.Controls
                If backContr.Bounds.Contains(ptc) Then 
                    If backContr.Handle <> cont.Handle Then 'исключаем таскаемый контрол
                        If cont.Top < backContr.Top Then
                            'въезжаем сверху
                            MoveControl(backContr, -cont.Height)
                        Else
                            'възжаем снизу
                            MoveControl(backContr, cont.Height)
                        End If
                    End If
                End If
            Next
        End If
    End Sub
 
End Class
1
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,726
Записей в блоге: 1
07.09.2019, 09:47
Чуть улучшил с эффектом скольжения.
На форме должен быть Timer1

Кликните здесь для просмотра всего текста
VB.NET
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Public Class Form1
    Dim pt As Point
    Dim slidingStep As Integer = 4 'шаг скольжения
    Dim moveDistance As Integer
    Dim slidingControl As Control 'контрол для таймера
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        For Each C As Control In Me.Controls
            If TypeName(C) = "Panel" Then
                AddHandler C.MouseMove, AddressOf Control_MouseMove
                AddHandler C.MouseDown, AddressOf Control_MouseDown
            End If
        Next
        Timer1.Enabled = False
        Timer1.Interval = 100
    End Sub
 
    Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        pt = e.Location 'запоминает положение курсора относительно формы
    End Sub
 
    Sub MoveControl(ByVal MovedControl As Control, ByVal distance As Integer)
        If slidingControl Is Nothing Then
            slidingControl = MovedControl 'запоминаем контрол для скольжения
            moveDistance = distance
            Timer1.Enabled = True
        End If
        'здесь можно добавить иные обработки
    End Sub
 
    Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
        If e.Button = Windows.Forms.MouseButtons.Left Then 'Проверяем, нажата ли левая кнопка мыши 
            ' Перемещаем
            Dim cont As Control = CType(sender, Control) 'таскаемый контрол
            cont.Location = New Point(cont.Location.X, cont.Location.Y + e.Y - pt.Y) 'Меняем координаты контрола в зависимости от положения курсора с учетом переменной pt
            Dim ptc As Point = New Point(cont.Location.X + e.X, cont.Location.Y + e.Y) 'новая координата мыши относительно формы
            ' ищем контролы под курсором мыши
            ' для ускорения можно перебирать только контролы в определённом контейнере или коллекции
            For Each backContr As Control In Me.Controls
                If backContr.Bounds.Contains(ptc) Then 
                    If backContr.Handle <> cont.Handle Then 'исключаем таскаемый контрол
                        If cont.Top < backContr.Top Then
                            'въезжаем сверху
                            MoveControl(backContr, -cont.Height)
                        Else
                            'възжаем снизу
                            MoveControl(backContr, cont.Height)
                        End If
                    End If
                End If
            Next
        End If
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
        If moveDistance = 0 Then
            Timer1.Stop()
            slidingControl = Nothing
        Else
            If Math.Abs(moveDistance) > slidingStep Then
                If moveDistance > 0 Then
                    slidingControl.Top = slidingControl.Top + slidingStep
                    moveDistance -= slidingStep
                Else
                    slidingControl.Top = slidingControl.Top - slidingStep
                    moveDistance += slidingStep
                End If
            Else
                slidingControl.Top = slidingControl.Top + moveDistance
                moveDistance = 0
            End If
        End If
    End Sub
 
End Class
1
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 20
09.09.2019, 08:59  [ТС]
Ребята! Спастбо Вам большущее!
Посмотрите как здорово выглядит! https://dropmefiles.com/Xv0sa
Пока без скольжения сделал, т.к по моей вине, с применением скольжения, цифры перестают работать, и планки скользят на разную длинну, гдето я накосячил, и нужно поправить и привязать блоки к жестким координатам по вертикали, чуть по позже выложу результат))
А на отдельноф форме с таймером, группы бегают очень класно! Спасибо еще раз за плавное смещение!)) буду делать дальше!))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2019, 08:59
Помогаю со студенческими работами здесь

Считать текст из динамически созданного TextBox
Добрый день! Создал динамически несколько TextBox, как мне теперь можно считать то, что ввел пользователь?

Возвратить текст динамически созданного контрола
Доброго всем дня. Подскажите как вытащить .text из програмно созданного контрола. Где только не рыл, чего только не пробовал ) Это кусок...

Получить текст из динамически созданного TextBox
Доброго дня форумчане! Не могу получить введенный текст в динамически созданного TextBox //Textbox TextBox anserw...

Получить текст из динамически созданного TextBox
Здравствуйте, столкнулся с одной проблемой, которую не получается решить самостоятельно. Я программно (просто мне придется часто менять...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru