purebasic.info

PureBasic forum
Текущее время: Чт янв 17, 2019 1:37 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Пт дек 19, 2014 4:32 pm 
Не в сети
док

Зарегистрирован: Ср апр 16, 2014 5:56 pm
Сообщений: 113
Благодарил (а): 7 раз.
Поблагодарили: 6 раз.
Пункты репутации: 5
Здравствуйте.
Код:
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
 
Structure CellTable                       ; Атрибуты ячеек
  ColorFront.l
  ColorBack.l
  Selected.l
EndStructure
 
Global oldCallback
 
Procedure LVcallback(hwnd, msg, wparam, lparam)
 
  Static Flag
  result = CallWindowProc_(oldCallback, hwnd, msg, wparam, lparam)
  GadgetID=GetDlgCtrlID_(hWnd)
 
  Select msg
    Case #WM_LBUTTONDOWN, #WM_LBUTTONDBLCLK             ; Нажата ЛКМ
      pInfo.LVHITTESTINFO
      pInfo\pt\x = (lParam & $FFFF)
      pInfo\pt\y = (lParam>> 16 & $FFFF)
      SendMessage_(hwnd,#LVM_SUBITEMHITTEST,0,@pInfo)
     
      ClickRow = pInfo\iItem                                                                                                ; № ряда
      ClickColumn = pInfo\iSubItem                                                                                ; № столбца
     
      If Flag=0
        SetGadgetItemColor(GadgetID,ClickRow,#PB_Gadget_FrontColor,#White ,ClickColumn)                         ; Подсветить ячейку
        SetGadgetItemColor(GadgetID,ClickRow, #PB_Gadget_BackColor,GetSysColor_(#COLOR_HIGHLIGHT),ClickColumn)
        Flag=1
      Else
        SetGadgetItemColor(GadgetID,ClickRow,#PB_Gadget_FrontColor,#Black ,ClickColumn)                                                                         ; Отменить подсветку
        SetGadgetItemColor(GadgetID,ClickRow, #PB_Gadget_BackColor,GetSysColor_(#COLOR_WINDOW),ClickColumn)
        Flag=0
      EndIf
     
  EndSelect
 
  ProcedureReturn result
 
EndProcedure
 
OpenWindow(0, 0, 0, 600, 430,"MY ListIcon", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(0, 10, 10, 580, 200, "Column 0", 150)
  ListIconGadget(1, 10, 220, 580, 200, "Column 0", 150)
 
  oldCallback = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @LVcallback())
  oldCallback = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @LVcallback())
 
 Global Dim Table1.CellTable(CountGadgetItems(0)+1,PureLVSORT_CountColumns(0)+1)
 Global Dim Table2.CellTable(CountGadgetItems(1)+1,PureLVSORT_CountColumns(1)+1)
 
  For n = 0 To 1
    For i=1 To 5
       AddGadgetColumn(n,i,"Column "+Str(i),150)
    Next
    For i = 0 To 100
      AddGadgetItem(n,-1,"Line " + Str(i) + " Column 0" + Chr(10) + "Line " + Str(i) + " Column 1"+ Chr(10) + "Line " + Str(i) +
 " Column 2"+ Chr(10) + "Line " + Str(i) + " Column 3"+ Chr(10) + "Line " + Str(i) + " Column 4"+ Chr(10) + "Line " + Str(i) + " Column 5")
    Next i
  Next  
 
Repeat
  Select WaitWindowEvent()
       
                   
        Case #PB_Event_CloseWindow
          Quit = 1
   
  EndSelect
 
Until Quit = 1


Захотелось иметь универсальную мультигаджетную процедуру, и пусть она раскрашивает ячейки в нужные цвета по клику или программно.
Для этого объявлены 2 массива (на каждый гаджет), куда и будут вписаны свойства ячеек. Но вот как указать процедуре, с каким массивом ей работать?
Ведь не напишешь же
Procedure LVcallback(hwnd,Array.CellTable(x,y), msg, wparam, lparam)
или типа того. Функция SetWindowLongPtr имеет определённое число параметров, и втиснуть своё не получается.
Неужели применять две одинаковые процедуры с различием только имени массива? Какая же это структурированность ЯП получается?
Где-то рядом, чувствую, есть решение, но в WinAPI я не силён пока. И вообще: какие методы есть для обращения к "внутреннему миру" структуры - передачи, получения данных - кроме глобальных переменных?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс дек 21, 2014 5:19 am 
Не в сети
док

Зарегистрирован: Ср апр 16, 2014 5:56 pm
Сообщений: 113
Благодарил (а): 7 раз.
Поблагодарили: 6 раз.
Пункты репутации: 5
Это уже не первый раз, когда мне не отвечают. Странно, никому не хамил, не забывал благодарить.
Либо это "санкции" (с чего бы?), либо на меня кто-то в обиде и все солидарны, либо никто ни черта не знает, либо... ну хватит.
Всё проще становится, если почитать тут (http://purebasic.info/phpBB3ex/viewtopic.php?f=1&t=7) и тут (http://otvet.mail.ru/question/68594998)
Ну ладно, не отвечают - не буду спрашивать. Проиграет только форум, ведь тема интересная, больше 30 просмотров. Кстати, если кто ищет подобный случай, то вот решение, хотя и в обход:
Код:
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
Structure CellTable ; Атрибуты ячеек
        ColorFront.l
        ColorBack.l
        Selected.l
EndStructure
 
Global oldCallback
Declare LVcallback(hwnd, msg, wparam, lparam)
 
OpenWindow(0, 0, 0, 600, 430,"MY ListIcon", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 10, 10, 580, 200, "Column 0", 150)
ListIconGadget(1, 10, 220, 580, 200, "Column 0", 150)
 
oldCallback = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @LVcallback())
oldCallback = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @LVcallback())
 
For n = 0 To 1
        For j=1 To 5
                AddGadgetColumn(n,j,"Column "+Str(j),150)
        Next   
        For i = 0 To 10
                AddGadgetItem(n,-1,"Line " + Str(i) + " Column 0" + Chr(10) + "Line " + Str(i) + " Column 1"+ Chr(10) + "Line " + Str(i) +
" Column 2"+ Chr(10) + "Line " + Str(i) + " Column 3"+ Chr(10) + "Line " + Str(i) + " Column 4"+ Chr(10) + "Line " + Str(i) + " Column 5")
        Next i
Next
For i=0 To 1                                                                                                                                                                                                                                                                                                    ; Массив(Ряд,Колонка,ListIconGadget)
        Global Dim Table.CellTable(CountGadgetItems(0)+1,PureLVSORT_CountColumns(0)+1,i)
Next
 
Procedure LVcallback(hwnd, msg, wparam, lparam)
       
        Static Flag
        result = CallWindowProc_(oldCallback, hwnd, msg, wparam, lparam)
        GadgetID=GetDlgCtrlID_(hWnd)
       
        Select msg
                Case #WM_LBUTTONDOWN, #WM_LBUTTONDBLCLK         ; Нажата ЛКМ
                        pInfo.LVHITTESTINFO
                        pInfo\pt\x = (lParam & $FFFF)
                        pInfo\pt\y = (lParam>> 16 & $FFFF)
                        SendMessage_(hwnd,#LVM_SUBITEMHITTEST,0,@pInfo)
                       
                        ClickRow = pInfo\iItem          ; № ряда
                        ClickColumn = pInfo\iSubItem                                                                                                                                                                                                            ; № столбца
                       
                        If Flag=0
                                ;SetGadgetItemColor(GadgetID,ClickRow,#PB_Gadget_FrontColor,#White ,ClickColumn) ; Подсветить ячейку    ; Стандартные цвета
                                ;SetGadgetItemColor(GadgetID,ClickRow, #PB_Gadget_BackColor,GetSysColor_(#COLOR_HIGHLIGHT),ClickColumn)
                                SetGadgetItemColor(GadgetID,ClickRow,#PB_Gadget_FrontColor,Table(ClickRow,ClickColumn,GadgetID)\ColorFront ,ClickColumn)        ; Подсветить ячейку
                                SetGadgetItemColor(GadgetID,ClickRow, #PB_Gadget_BackColor,Table(ClickRow,ClickColumn,GadgetID)\ColorBack,ClickColumn)
                                Flag=1
                        Else
                                SetGadgetItemColor(GadgetID,ClickRow,#PB_Gadget_FrontColor,#Black ,ClickColumn)                 ; Отменить подсветку
                                SetGadgetItemColor(GadgetID,ClickRow, #PB_Gadget_BackColor,GetSysColor_(#COLOR_WINDOW),ClickColumn)
                                Flag=0
                        EndIf
                       
        EndSelect
       
        ProcedureReturn result
       
EndProcedure
 
For j=1 To PureLVSORT_CountColumns(0) ; Назначение цвета ячейкам ListIconGadget(0)
        For i=1 To CountGadgetItems(0)
                Table(i,j,0)\ColorFront=#Black
                Table(i,j,0)\ColorBack=RGB(128, i+j*100, 128)           ; i - ряд, j - колонка
        Next
Next
For j=1 To PureLVSORT_CountColumns(1)                           ; Назначение цвета ячейкам ListIconGadget(1)
        For i=1 To CountGadgetItems(1)
                Table(i,j,1)\ColorFront=RGB(128, i+j*100, 128)
                Table(i,j,1)\ColorBack=#White
        Next
Next


Впрочем, приходить сюда инкогнито никто не может запретить, и уж тем паче на другие форумы. Иностранные и помощнее (в смысле: помощь), и дружелюбнее поэтому.
Всех с наступающим!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс дек 21, 2014 12:53 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11360
Благодарил (а): 4 раз.
Поблагодарили: 445 раз.
6519And писал(а):
Это уже не первый раз, когда мне не отвечают.
Видимо вопрос так задан что даже и не знаешь что ответить. Если это стандартная оконная процедура callback(), то в ней может быть только 4 параметра, не больше и не меньше.
Если нужно больше, используй GetWindowLongPtr/SetWindowLongPtr() с параметром #GWL_USERDATA или функции SetProp_()/GetProp_()/RemoveProp_() и т. д.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс дек 21, 2014 5:02 pm 
Не в сети
док

Зарегистрирован: Ср апр 16, 2014 5:56 pm
Сообщений: 113
Благодарил (а): 7 раз.
Поблагодарили: 6 раз.
Пункты репутации: 5
Вот это другое дело, спасибо!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср дек 24, 2014 10:06 am 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
6519And, MrF, пожалуйста, выясняйте отношения в личке. Брунса тоже касается. Весь оффтоп из темы удален

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср дек 24, 2014 11:07 am 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Пн дек 15, 2014 11:24 am
Сообщений: 20
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
6519And писал(а):
Но вот как указать процедуре, с каким массивом ей работать?
Надо указать имя массива и процедура будет работать именно с ним, по аналогии с файлом, как указать, с каким файлом работать, указываешь имя файла и процедура работает именно с ним.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср дек 24, 2014 2:29 pm 
Не в сети
док

Зарегистрирован: Ср апр 16, 2014 5:56 pm
Сообщений: 113
Благодарил (а): 7 раз.
Поблагодарили: 6 раз.
Пункты репутации: 5
Мой код видел? Вот и преобразуй его, и чтоб работал, и сюда на разбор! Или уж не пиши ничего - с тобой всё ясно.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср дек 24, 2014 4:44 pm 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Пн дек 15, 2014 11:24 am
Сообщений: 20
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Да помочь преобразовать можно, но нигде не видно, в чём вопрос? Там у вас написано, что вы хотите сделать "мультигаджетную процедуру", но такого понятия в Пурике нету, поясните, что вы имеете ввиду?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт дек 25, 2014 4:22 pm 
Не в сети
док

Зарегистрирован: Ср апр 16, 2014 5:56 pm
Сообщений: 113
Благодарил (а): 7 раз.
Поблагодарили: 6 раз.
Пункты репутации: 5
Блуждая по Сети, нашёл этот учебник: http://pure-basic.narod.ru/docs.html,
и сразу решил все проблемы:
Код:
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
Structure CellTable
  ColorFront.l
  ColorBack.l
EndStructure
 
Global oldCallback
 
Procedure LVcallback(hwnd, msg, wparam, lparam)
 
  result = CallWindowProc_(oldCallback, hwnd, msg, wparam, lparam)
  GadgetID=GetDlgCtrlID_(hWnd)
 
  Select msg
    Case #WM_LBUTTONDOWN, #WM_LBUTTONDBLCLK
      Debug PeekS(GetWindowLongPtr_(hWnd,#GWL_USERDATA))
  EndSelect
 
  ProcedureReturn result
 
EndProcedure
 
OpenWindow(0, 0, 0, 600, 430,"MY ListIcon", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 10, 10, 580, 200, "Column 0", 150)
ListIconGadget(1, 10, 220, 580, 200, "Column 0", 150)
 
oldCallback = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @LVcallback())
oldCallback = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @LVcallback())
 
Global Dim Table0.CellTable(CountGadgetItems(0)+1,PureLVSORT_CountColumns(0)+1,0)
Global Dim Table1.CellTable(CountGadgetItems(1)+1,PureLVSORT_CountColumns(1)+1,1)
 
SetWindowLongPtr_(GadgetID(0),#GWL_USERDATA,"Работать с массивом 1")
SetWindowLongPtr_(GadgetID(1),#GWL_USERDATA,"Работать с массивом 2")
 
For n = 0 To 1
  For i=1 To 5
    AddGadgetColumn(n,i,"Column "+Str(i),150)
  Next
  For i = 0 To 100
    AddGadgetItem(n,-1,"Line " + Str(i) + " Column 0" + Chr(10) + "Line " + Str(i) + " Column 1"+ Chr(10) + "Line " + Str(i) + " Column 2"+ Chr(10) + "Line " + Str(i) + " Column 3"+ Chr(10) + "Line " + Str(i) + " Column 4"+ Chr(10) + "Line " + Str(i) + " Column 5")
  Next i
Next  
 
Repeat
  Select WaitWindowEvent()
     
    Case #PB_Event_CloseWindow
      Quit = 1
 
  EndSelect
 
Until Quit = 1


Разумеется, на эту литературу есть ссылка на форуме - надо было с неё начинать.
Всё верно, но, блин, чтоб дети ваши так парились в школе и приходили к вам за помощью, а вы б знали ответ, да посмеивались.
Это ж охренеть как трудно хотя бы ссыль дать, если уж код писать неохота. И Ваньку валять - мол, вопрос непонятен.
Просмотрел я историю сообщений за 2009 год - ну небо и земля. Стало быть, гордыня обуяла.
Хорошо. Обещал не спрашивать - не буду. Только не лезьте флудить в мои темы и всячески порицать. Для этого есть раздел "OffTop".
Не заставляйте отвечать, и пусть мой ник постепенно забудется.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт дек 26, 2014 12:55 am 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
6519And писал(а):
Только не лезьте флудить в мои темы и всячески порицать. Для этого есть раздел "OffTop".

А сам зачем оффтопишь и ноешь в каждом посте? :D


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб дек 27, 2014 12:27 am 
Не в сети
док

Зарегистрирован: Ср апр 16, 2014 5:56 pm
Сообщений: 113
Благодарил (а): 7 раз.
Поблагодарили: 6 раз.
Пункты репутации: 5
Цитата:
А сам зачем оффтопишь и ноешь в каждом посте?

Это чтобы ты мог повыёживаться. Тебе ведь нечем на себя внимание обратить, кода-то ты не генеришь.
И ты единственный, кто не унялся. Ну что, будем испытывать терпение модератора? Флуди в разделе "Offtop" :arrow:


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт янв 11, 2019 6:39 pm 
Не в сети
док

Зарегистрирован: Чт окт 27, 2011 7:43 pm
Сообщений: 111
Откуда: Санкт-Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Проясните такой момент относительно Callback:
Насколько понял, Callback, это когда в качестве параметра одной процедуры задаётся указатель на другую.
Но ведь у второй процедуры тоже есть параметры.
Они где задаются?

_________________
ICQ нет, и, в ближайшее время, не будет


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт янв 11, 2019 7:57 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 707
Благодарил (а): 2 раз.
Поблагодарили: 36 раз.
Пункты репутации: 9
Gregory писал(а):
Проясните такой момент относительно Callback:
Насколько понял, Callback, это когда в качестве параметра одной процедуры задаётся указатель на другую.
Но ведь у второй процедуры тоже есть параметры.
Они где задаются?

Kallback переводиться как перерезвоните.
Это стандартная процедура обработчика сообщения winclassa и win окна в которую от винды поступают сообщения
программно например message (посылает сообщение в callbak разных прог),или аппаратно типа от клавы.
так что эти параметры заданы заранее а указатели на calbak типа SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @LVcallback()) это для того чтобы включить эту процедуру обработчика ну или перехватить от стандартного окна
что бы свой код написать для обработки. :roll:


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт янв 11, 2019 9:04 pm 
Не в сети
док

Зарегистрирован: Чт окт 27, 2011 7:43 pm
Сообщений: 111
Откуда: Санкт-Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Сергейчик писал(а):
Kallback переводиться как перерезвоните
При таком написании переводится очень неприлично. :lol:

Сергейчик писал(а):
Это стандартная процедура обработчика сообщения winclassa и win окна в которую от винды поступают сообщения
Доходчевей будет на примере:
Код:
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
Global Chromatic$ 
Chromatic$="C C#D EbE F F#G AbA BbB C "
 
Procedure.s MIDI_Note(Note)      ; returns note's name
    ProcedureReturn Mid(Chromatic$,(Note % 12)*2+1,2)
EndProcedure
 
Procedure MIDIin(hMi, wMsg, Data1, Data2)
    Select wMsg    ; process MIDI in events
    Case #MM_MIM_DATA
        Status = Data1 & 255
        If Status =144
            NT=(Data1 >> 8) & 255
            Vel= (Data1 >> 16) & 255
            If Vel
                Debug "Note On"
            Else
                Debug "Note Off"
            EndIf
            Debug " Note : "+MIDI_Note(NT)+" "+Str(NT)
            Debug "  Vel : " + Str(Vel)
       EndIf
    EndSelect
EndProcedure
;_______________________________________________________________________________________
Instrument=24   ;************* choose any instrument from 0 to 127 **************
OutDev.l : InDev.l
PokeL(@OutDev, 0)  : PokeL(@InDev, 1)
If midiInOpen_(@hMi, InDev, @MIDIin(), 0, #CALLBACK_FUNCTION) = #MMSYSERR_NOERROR
    If midiInStart_(hMi) <> #MMSYSERR_NOERROR : MessageRequester("Error","Can't start MIDI IN",0) :End:  EndIf
Else
    MessageRequester("Error","Can't open MIDI IN",0) : End
EndIf
midiOutOpen_(@hMo, OutDev, 0, 0, 0)
midiOutShortMsg_(hMo, 192  | instrument<<8 )
If hMi And hMo
    If midiConnect_(hMi, hMo, 0) = 0
        Debug "MIDI OK!  Play MIDI KEYBOARD"
    Else
        MessageRequester("Error","Can't connect MIDI",0) :End:
    EndIf
EndIf
OpenWindow(0, x,y,600,400, "PB MIDI Test", #WS_OVERLAPPEDWINDOW | #PB_Window_WindowCentered)
Repeat
    EventID.l = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow
midiDisconnect_(hMi, hMo, 0)
While midiInClose_(hMi) = #MIDIERR_STILLPLAYING : Wend
While midiOutClose_(hMo) = #MIDIERR_STILLPLAYING : Wend
End



API функция midiInOpen_ запускает процедуру MIDIin, а где та берёт параметры hMi, wMsg, Data1, Data2?

_________________
ICQ нет, и, в ближайшее время, не будет


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт янв 11, 2019 9:33 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 283
Благодарил (а): 14 раз.
Поблагодарили: 33 раз.
Пункты репутации: 0
Gregory писал(а):
API функция midiInOpen_ запускает процедуру MIDIin, а где та берёт параметры hMi, wMsg, Data1, Data2?
MIDIin это MidiInProc а MidiInProc уже определена. вот


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB