Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426

Ищется контрол Listbox с определёнными свойствами

13.10.2024, 18:49. Показов 871. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужен Listbox чтоб и чекбоксы были и возможность индивидуально менять цвет текста строк или на худой конец цвет строки. Два дня ищу - пока не нашел. Скрол только вертикальный.
Может кто знает?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.10.2024, 18:49
Ответы с готовыми решениями:

Придумать отношение с определенными свойствами
Никак не получается построить на бесконечном множестве отношение, обладающее свойствами антирефлексивности, антисимметричности и...

Генерация бинарной матрицы с определенными свойствами
Мой говнокод по генерированию бинарной матрицы с определенными св-ми(симм-ть антисимм-ть рефлексивность антиреф-ть) не работает.(пытался...

Ищется контрол для работы с директориями
Нужен контрол (как в win explorere) который позволяет рыться в дереве каталогов на дисках, желательно что бы он был очень похож на...

19
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
13.10.2024, 19:13
Добрый совет: сделать свой ActiveX-контрол.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
13.10.2024, 19:22
чем тебе не подходит фишка от The Trick

Добавлено через 1 минуту
зачем свой контрол если лего перерисовать обычный листбокс

Добавлено через 3 минуты
The Trick уже давным-давно это всё сделал

Добавлено через 13 секунд
Зачем снова изобретатть велосипед не пойму
1
1384 / 839 / 91
Регистрация: 08.02.2017
Сообщений: 3,540
Записей в блоге: 1
13.10.2024, 19:35
Можно свой наформошлепить, фрейм, а внутри него листбоксы..
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
13.10.2024, 19:48
Лучше уже взять контрол от Krool
1
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
13.10.2024, 22:21  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
чем тебе не подходит фишка от The Trick
The Trick уже давным-давно это всё сделал
Что ты имеешь ввиду? Он давал мне такой контрол?

Цитата Сообщение от HackerVlad Посмотреть сообщение
зачем свой контрол если лего перерисовать обычный листбокс
Цитата Сообщение от Catstail Посмотреть сообщение
Добрый совет: сделать свой ActiveX-контрол.
Я перечитал по созданию контролов КУЧУ текстов и уроков, КУЧУ! И не по одному разу. Во всяком случае, если я набираю в гугле фразы типа "Как сделать свой ActiveX" и тому подобное, то уже не нахожу ничего, чего бы я уже не читал. Но я по прежнему ничего не понимаю! Ноль понимания! Два три месяца назад я пытался по совету TheTrick-а сделать свой VScroll я потратил на это три недели, но не смог сделать практически ничего! Для моего ума - там не объяснятся ничего, но раз десятки тысяч людей эти тексты понимают, то я делаю вывод что у меня специфическая недоразвитость каких-то областей ума и я поэтому не понимаю заложеную там информацию. Так что создание своего контрола -увы, я пролетаю мимо. Во-всяком случае до тех пор пока не найдется кто-то, кто объяснит понятными мне словами (на что надежды практически нет)

Добавлено через 1 минуту
Цитата Сообщение от HackerVlad Посмотреть сообщение
Лучше уже взять контрол от Krool
А что у Krool-овского листбокса можно закрашивать? Ща взгляну - у меня давно скачано

Добавлено через 25 минут
1. Не нашел у Krool-овского листбокса ничего связанного с цветом
2. Не понял как получать элемент списка? В обычном так:
Visual Basic
1
Text1 = List1.List(N)
а у него ?
Visual Basic
1
Text1 = ListBoxW1.List(?)
Добавлено через 38 минут
Цитата Сообщение от HackerVlad Посмотреть сообщение
чем тебе не подходит фишка от The Trick
зачем свой контрол если лего перерисовать обычный листбокс
The Trick уже давным-давно это всё сделал
А! Понял - ты имеешь ввиду The Trick-овский OwnerDrawListBox (clsTrickListBox)! Буду пытаться разобраться, но сомневаюсь - сложно там для меня, ладно посмотрим...
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.10.2024, 01:56
Цитата Сообщение от giaber Посмотреть сообщение
специфическая недоразвитость каких-то областей ума


умора

Добавлено через 1 минуту
Цитата Сообщение от giaber Посмотреть сообщение
создание своего контрола -увы, я пролетаю мимо
свои контролы создавать не надо, всё уже давно создано и есть в системе, стандартных контролов вполне хватает
я лично сам никогда не создавал свои, просто не вижу в этом необходимости
хоть The Trick и советовал научиться, но я не стал даже пробовать писать свои контролы

Добавлено через 1 минуту
я считаю что в операционной системе Windows и так хватает контролов стандартных, зачем ещё свои писать ...

Добавлено через 1 минуту
Цитата Сообщение от giaber Посмотреть сообщение
А что у Krool-овского листбокса можно закрашивать?
Там есть событие для пользовательской отрисовки листбокса, чтобы не использовать класс от The Trick, можно использовать контрол от Krool будет почти одно и тоже

Добавлено через 2 минуты
Цитата Сообщение от giaber Посмотреть сообщение
А! Понял - ты имеешь ввиду The Trick-овский OwnerDrawListBox (clsTrickListBox)!
Именно, следует понимать что не существует свойства для смены цвета текста строки в листбоксе, всё вам придётся описывать самому программным кодом

Добавлено через 3 минуты
Есть конечно свойство ForeColor но оно сменит цвет всех строк сразу. Если нужны какие-то отдельные то нужно описывать всё самому в своей отрисовке.

Добавлено через 6 минут
Верное направление это рисование в событии
Visual Basic
1
Private Sub ListBoxW1_ItemDraw(ByVal Item As Long, ByVal itemAction As Long, ByVal ItemState As Long, ByVal hDC As Long, ByVal Left As Long, ByVal Top As Long, ByVal Right As Long, ByVal Bottom As Long)
Либо класс от The Trick будет почти одно и тоже
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
14.10.2024, 07:12
Цитата Сообщение от giaber Посмотреть сообщение
Для моего ума - там не объяснятся ничего, но раз десятки тысяч людей эти тексты понимают, то я делаю вывод что у меня специфическая недоразвитость каких-то областей ума и я поэтому не понимаю заложенную там информацию.
- это совершенно нормальная ситуация! Возникает она у всех, абсолютно у всех! (Но не каждый в этом признается...) Нужно продолжать накопление знаний. Когда критический порог будет пройден, Вы мгновенно всё поймете. А сейчас рекомендую начать с создания совсем простых и бесполезных ActiveX-ов. Принцип дидактики: от простого к сложному! Если будут вопросы - задавайте их здесь. Я увижу. Да и другие участники, думаю, помогут.
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.10.2024, 14:03
Цитата Сообщение от Catstail Посмотреть сообщение
ActiveX-ов
Зачем вообще создавать ActiveX? И зависеть от OCX/DLL? Лучше просто обычный User Control CTL/CTX, без всяких там зависимостей будет.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
14.10.2024, 14:07
HackerVlad, и таскать из проекта в проект? А проблем зависимостей не существует с 2005 г...
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.10.2024, 14:17
Цитата Сообщение от Catstail Посмотреть сообщение
и таскать из проекта в проект?
Зато зашивается всё в одно EXE.
А разве вам не придётся "таскать из проекта в проект" ваши OCX/DLL?

Добавлено через 59 секунд
И менять код ваших контролов в OCX будет сложнее. Чем просто открыть в проекте CTL и поменять код. Всё в одном проекте - очень удобно.

Добавлено через 58 секунд
Я всегда был и всегда буду сторонником одного EXE. Даже Крул написав свои контролы по этой же идеологии предоставляет файлы CTL.

Добавлено через 2 минуты
Я лично никогда, например, не стану пользоваться сторонними OCX, по двум причинам, первое - это зависимость, второе - это мало ли что там написано без открытого кода, не посмотрев CTL, вдруг вирус зашит

Добавлено через 55 секунд
Да и кстати Windows помечает DLL такие как Неподписанные и ненадёжные... Самописные... Неизвестный издатель если.

Добавлено через 19 секунд
Одни сплошные минусы короче.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
14.10.2024, 14:42
Цитата Сообщение от HackerVlad Посмотреть сообщение
Одни сплошные минусы короче.
- это ваше мнение. У меня другое. Хороший ActiveX универсален и может использоваться в разных проектах (в т.ч. и моих собственных). И даже в разных средах.

Цитата Сообщение от HackerVlad Посмотреть сообщение
Я лично никогда, например, не стану пользоваться сторонними OCX, по двум причинам, первое - это зависимость, второе - это мало ли что там написано без открытого кода, не посмотрев CTL, вдруг вирус зашит
- во-первых, а случаи были? Во-вторых никто не запрещает публиковать ActveX c исходниками...

Цитата Сообщение от HackerVlad Посмотреть сообщение
Даже Крул
- а кто это?
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.10.2024, 14:49
Цитата Сообщение от Catstail Посмотреть сообщение
а кто это?
Это всем известный Krool с иностранного форума, который прославился тем, что написал все контролы в юникодном формате.
2
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.10.2024, 15:14
Лучший ответ Сообщение было отмечено HackerVlad как решение

Решение

Цитата Сообщение от giaber Посмотреть сообщение
возможность индивидуально менять цвет текста строк
В общем я написал решение для этой темы:

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
Option Explicit
Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function SetDCBrushColor Lib "gdi32" (ByVal hdc As Long, ByVal colorref As Long) As Long
Private Declare Function SetDCPenColor Lib "gdi32" (ByVal hdc As Long, ByVal colorref As Long) As Long
Private Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
Private Declare Function DrawText Lib "user32" Alias "DrawTextW" (ByVal hdc As Long, ByVal lpStr As Long, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
 
Dim WithEvents TrickList As clsTrickListBox
Dim ListItems(3) As String
Dim pen As Long
 
Private Const DC_BRUSH = 18
Private Const DC_PEN = 19
 
Private Type RECT
    Left            As Long
    Top             As Long
    Right           As Long
    Bottom          As Long
End Type
 
Private Sub Form_Load()
    List1.AddItem ""
    List1.AddItem ""
    List1.AddItem ""
    List1.AddItem ""
    
    Set TrickList = New clsTrickListBox
    Set TrickList.ListBox = List1
    'TrickList.ItemHeight = 48
    TrickList.DefaultDraw = False
    
    ListItems(0) = "Первая строка листбокса"
    ListItems(1) = "Вторая строка листбокса"
    ListItems(2) = "Третья строка листбокса"
    ListItems(3) = "Четвёртая строка листбокса"
End Sub
 
Private Sub TrickList_Draw(ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal index As Long, ByVal State As StateEnum)
    Dim oBr As Long
    Dim oPn As Long
    Dim cx  As Long
    Dim cy  As Long
    Dim c1  As Long
    Dim c2  As Long
    Dim rc  As RECT
    Dim txt As String
    
    oBr = SelectObject(hdc, GetStockObject(DC_BRUSH))
    oPn = SelectObject(hdc, GetStockObject(DC_PEN))
    
    If State = ES_NORMAL Then
        SetDCBrushColor hdc, vbWhite
        SetDCPenColor hdc, &HE0E0E0
        Rectangle hdc, x, y, x + width, y + height + 1
        c1 = vbBlack: c2 = &H909090
    ElseIf State = ES_SELECTED Then
        SetDCBrushColor hdc, &HFF8080
        SetDCPenColor hdc, &HFFA050
        Rectangle hdc, x, y, x + width, y + height
        c1 = vbWhite: c2 = &HC0C0C0
    Else
        SetDCBrushColor hdc, &HFFA080
        SelectObject hdc, pen
        Rectangle hdc, x, y, x + width, y + height
        c1 = vbWhite: c2 = &HC0C0C0
    End If
    
    x = x + cx
    SetRect rc, x, y, x + width, y + height
    
    If index = 0 Then c1 = vbBlack
    If index = 1 Then c1 = vbBlue
    If index = 2 Then c1 = vbRed
    If index = 3 Then c1 = vbGreen
    
    SetTextColor hdc, c1
    cy = DrawText(hdc, StrPtr(ListItems(index)), Len(ListItems(index)), rc, 0)
    
    rc.Top = rc.Top + cy
    SetTextColor hdc, c2
        
    SelectObject hdc, oPn
    SelectObject hdc, oBr
End Sub
Миниатюры
Ищется контрол Listbox с определёнными свойствами  
Вложения
Тип файла: zip ListBoxColorful.zip (16.2 Кб, 7 просмотров)
3
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
14.10.2024, 20:10  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
В общем я написал решение для этой темы:
Спасибо большое за удобный для меня, ламера, код, но всё-таки главная проблема не решена:
Цитата Сообщение от giaber Посмотреть сообщение
и чекбоксы были и возможность индивидуально менять цвет текста строк
у меня, включая и вашу ламер-конверсию TheTrick-овского класса, набралось 6 вариантов решения этой задачи, все эти решения построены в общем-то на одном принципе, но все БЕЗ чекбоксов! и это главная проблема из-за которой я обратился на форум.
(Ламер-конверсия не потому что сделана ЛАМЕРОМ, а потому что сделана ДЛЯ ЛАМЕРА)
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.10.2024, 23:02
giaber, чек-боксы точно так же рисуются в событии TrickList_Draw если они вам нужны. Вам придётся самостоятельно рисовать квадратик, самостоятельно придумывать как рисовать галочку внутри квадратика, всё придётся описывать самому. Повозиться конечно придётся. Но это вомзожно.

Добавлено через 1 минуту
И всё только ради изменения цвета текста отдельных строк? Столько мороки? Зачем вам вообще это?

Добавлено через 18 минут
Кстати в VB.Net по моему это легко добавлять в листбокс строки другого цвета, и даже картинки можно запихивать в каждую новую строчку разные.

Добавлено через 30 секунд
А в VB6 вам придётся очень долго мучиться чтобы написать такой код.

Добавлено через 16 минут
Кстати на базе TreeView можно осуществить список с галочками со строками разных цветов

Добавлено через 2 минуты
В ListView тоже можно менять цвет любых строк, при добавлении, но я не знаю можно ли там организовать галочки

Добавлено через 1 минуту
Да, в ListView тоже можно галочки фигачить, проверил
Значит можно использовать либо ListView либо TreeView для осуществления этой задачи
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.10.2024, 23:37
Лучший ответ Сообщение было отмечено HackerVlad как решение

Решение

Итак, написал новое решение на базе контрола ListView от Krool

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
Option Explicit
 
' Загадать число от и до
Public Function Random(ROt As Long, RDo As Long) As Long
    Randomize
    Random = CLng(Int(Rnd(1) * (RDo - ROt + 1)) + ROt)
End Function
 
Private Sub Command1_Click()
    End
End Sub
 
Private Sub Command2_Click()
    Dim i As Long
    Dim str As String
    
    For i = 1 To ListView1.ListItems.Count
        If ListView1.ListItems.Item(i).Checked = True Then
            str = str & ListView1.ListItems.Item(i).Text & vbNewLine
        End If
    Next
    
    If str <> vbNullString Then
        MsgBox "У нас стоят галочки на следующих строках:" & vbNewLine & vbNewLine & str, vbInformation
    Else
        MsgBox "Галочки пока нигде не стоят!", vbInformation
    End If
End Sub
 
Private Sub Form_Load()
    Dim i As Long
    
    ListView1.View = LvwViewReport
    ListView1.FullRowSelect = True
    ListView1.GridLines = True
    ListView1.HideColumnHeaders = True
    
    ListView1.ColumnHeaders.Add , , , ListView1.Width - 350
    ListView1.ListItems.Add , , "Первая строка"
    
    ListView1.Redraw = False
    For i = 1 To 100
        ListView1.ListItems.Add(, , ChrW$(1234) & " строка номер " & CStr(i + 1)).ForeColor = Random(0, 16000000)
    Next
    ListView1.Redraw = True
End Sub
Теперь, думаю, это то, что вам надо. Всё оказалось куда легче чем я думал, с помощью ListView1 можно всё что хочешь.
Миниатюры
Ищется контрол Listbox с определёнными свойствами  
Вложения
Тип файла: zip ListViewColorful.zip (258.9 Кб, 7 просмотров)
2
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
15.10.2024, 19:28  [ТС]
Хм-м-м-м... HackerVlad... Я, конечно, боюсь сморозить глупость, но в VB-шном ListView :
Visual Basic
1
ListView1.ListItems.Item(n).ForeColor = vbRed
работает
В чём тогда был смысл вашего ListViewColorful.zip? Или я всё-таки сморозил?
Миниатюры
Ищется контрол Listbox с определёнными свойствами  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
15.10.2024, 19:40
giaber, да ради Бога, но там юникод поддерживать не будет стандартный VB'шный ListView. И будет требовать зависимость в виде OCX.
0
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
15.10.2024, 20:26  [ТС]
Понял. Виноват. Вспылил. Был неправ.

Оправдаю. Отслужу.
Отстрадаю. Отсижу.
На VB ни строчки кода
Больше я не напишу!

:-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2024, 20:26
Помогаю со студенческими работами здесь

Вывести количество элементов массива с определенными свойствами
Есть массив из ста чисел типа double. Можно ли как-нибудь вывести сколько чисел, например, от 0 до 1000, от 1000 до 2000 и т.д., не...

Ищется контрол многоколоночного вывода (как в MMC)
Ищу контрол, наверняка есть в стандартных, только не знаю какой. Отображает многоколоночный список, с возможностью расширять/сужать...

Юзер контрол с указанными свойствами
Мне нужен юзер-контрол самой обычной кнопки, но со свойствами Me.Win10_Button.BackColor = System.Drawing.Color.Gainsboro ...

Сколько 9-буквенных слов ( с определенными свойствами) можно составить?
В древнем языке 22 согласных и 5 гласных, причем при составлении слов никакие две гласные идти подряд не могут и слово обязательно должно...

Как найти в системе ярлык (.lnk) с определенными свойствами?
Под свойствами я имею ввиду какую программу запускает(Google Chrome к примеру). Еще нужно изменить свойство называющееся...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru