Автор | Сообщение |
gfilatov
|
| модератор
|
Пост N: 699
Зарегистрирован: 25.05.05
|
|
Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)
Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
SergKis
|
| постоянный участник
|
Пост N: 2548
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.05.19 13:14. Заголовок: Andrey пишет Попроб..
Andrey пишет [quote]` Попробуй убрать FUNCTION GetProperty ( Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 ) ... line 8584 /* IF .NOT. _IsControlDefined ( Arg2 , Arg1 ) MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined." ) ENDIF */ и пересобери MiniGui.lib
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6283
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.05.19 14:03. Заголовок: SergKis пишет: FUNC..
SergKis пишет: цитата: | FUNCTION GetProperty ( Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 ) ... line 8584 /* IF .NOT. _IsControlDefined ( Arg2 , Arg1 ) MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined." ) ENDIF */ |
| В исходнике C:\MiniGUI\SOURCE\h_controlmisc.prg строк всего 7183 ... Где искать ? Нашёл в строке 3814 - то ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6284
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.05.19 14:33. Заголовок: Нашел в коде h_contr..
Нашел в коде h_controlmisc.prg, где у меня ошибка возникает: #endif IF ( Upper( Arg2 ) == "VSCROLLBAR" .OR. Upper( Arg2 ) == "HSCROLLBAR" ) IF .NOT. _IsWindowDefined ( Arg1 ) MsgMiniGuiError ( "Window: " + Arg1 + " is not defined." ) ENDIF ELSE IF .NOT. _IsControlDefined ( Arg2 , Arg1 ) MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined. 4585 !!!" ) ENDIF ENDIF За комментировал этот блок: /* IF .NOT. _IsControlDefined ( Arg2 , Arg1 ) MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined. 4585 !!!" ) ENDIF */ Теперь другая ошибка лезет: Error MGERROR/0 Control Of Form_Table_Dog Not defined. Program terminated. Called from MSGMINIGUIERROR(99) in module: h_error.prg Called from GETPROPERTY(4410) in module: h_controlmisc.prg Called from (b)BUTTON_UPMENUTABLE(2273) in module: Tbrw_table.prg Called from (b)METRO3BUTTON(51) in module: Metro3button.prg Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg Called from EVENTS(1828) in module: h_events.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg Called from DOMETHOD(5156) in module: h_controlmisc.prg Called from FORM_MYTABLE(246) in module: Tbrw_table.prg Called from TBRWDOGOVOR(15) in module: Tbrw_1Run.prg Called from (b)MAIN(643) in module: 10main.prg Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg Called from EVENTS(1828) in module: h_events.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg Called from MAIN(688) in module: 10main.prg Т.е. теперь потерялась форма Form_Table_Dog ? Но она же есть на экране ! Вот функция (b)BUTTON_UPMENUTABLE(): aObj2But[12,12] := { || SetProperty(cForm, This.Name, "Enabled", .F.) ,; DogListAbon(cForm, "nTable","","","") ,; MsgDebug( "Проверка выхода", cForm ) ,; MsgDebug( ThisWindow.Name, This.Name ) ,; SetProperty(cForm, This.Name, "Enabled", .T.) ,; Brw4Focus(nTable) } // строка 2273 Т.е. это вызов на кнопке - ACTION aObj2But[12,12] Другие формы печати работают без ошибок, а где есть с GETBOX - то вылетает. Такое впечатление, что после GETBOX портится - MsgDebug( ThisWindow.Name, This.Name ) ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2549
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.05.19 16:22. Заголовок: Andrey Попробуй в O..
Andrey Попробуй в ON RELEASE формы с GetBox поставить самым последним вызов _PopEventInfo() для восстановления среды This, т.к. по сообщению об ошибке видно, что нет имени контрола
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2550
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.05.19 16:35. Заголовок: PS Дело в том, что п..
PS Дело в том, что при создании новой формы\окна информация о предыдущей форме\окне среды This теряется, что и происходит, т.е. нет гарантии, что она будет соответствовать. При Release окна среда This, которая была не восстанавливается, т.к. окна могут закрываться не в том порядке, как открывались. Выход 1. Сохранять\восстанавливать среду This самому 2. Работать без This с конкретным именем окна (основное правило hmg) 3. Раскладывать последовательность действий на события и выполнять события по сообщениям. Для каждого события будет создана среда This окна или контрола, в зависимости как укажешь в сообщении. Пример у тебя есть
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6285
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.05.19 18:24. Заголовок: SergKis пишет: Попр..
SergKis пишет: цитата: | Попробуй в ON RELEASE формы с GetBox поставить самым последним вызов _PopEventInfo() для восстановления среды This, т.к. по сообщению об ошибке видно, что нет имени контрола |
| Да, это помогло, только если работаешь только в программе ! Если окно Far или Мозилу переключаешь, то вылет с другой ошибкой: Error BASE/1081 Неверный аргумент: + Called from GETPROPERTY(4410) in module: h_controlmisc.prg Called from (b)BUTTON_UPMENUTABLE(2273) in module: Tbrw_table.prg Остановился на варианте 2 ! aObj2But[12,12] := { || SetProperty(cForm, This.Name, "Enabled", .F.) ,; DogListAbon(cForm, "nTable","","","") ,; SetProperty(cForm, "oBut_SpAbon", "Enabled", .T.) ,; Brw4Focus(nTable) } Вылет прекратился... Переделал везде где нашёл. СПАСИБО ОГРОМНОЕ ! Не забыть бы это для других случаев...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2551
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.19 01:50. Заголовок: Andrey пишет Не забы..
Andrey пишет цитата: | Не забыть бы это для других случаев... |
| Первый вариант получше будет aObj2But[12,12] := { |cw,cn| cw := ThisWindow.Name, cn := This.Name, ; SetProperty(cw, cn, "Enabled", .F.) , ; DogListAbon(cw, "nTable","","","") , ; SetProperty(cw, cn, "Enabled", .T.) , ; Brw4Focus(nTable) }
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2552
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.19 10:11. Заголовок: Andrey пишет Останов..
Andrey пишет цитата: | Остановился на варианте 2 ! |
| Если использовать функцию *-----------------------------------------------------------------------------* FUNCTION _ThisInfo( aThis ) *-----------------------------------------------------------------------------* IF HB_ISARRAY( aThis ) _HMG_ThisFormIndex := aThis [1] _HMG_ThisEventType := aThis [2] _HMG_ThisType := aThis [3] _HMG_ThisIndex := aThis [4] _HMG_ThisFormName := aThis [5] _HMG_ThisControlName := aThis [6] RETURN NIL ENDIF RETURN { _HMG_ThisFormIndex, _HMG_ThisEventType, _HMG_ThisType, _HMG_ThisIndex, _HMG_ThisFormName, _HMG_ThisControlName } то твой блок будет выглядеть так aObj2But[12,12] := { |at| at := _ThisInfo(), ; This.Name.Enabled := .F., ; DogListAbon(cw, "nTable","","",""), ; _ThisInfo(at), ; This.Name.Enabled := .T., ; Brw4Focus(nTable) }
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2553
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.19 10:16. Заголовок: PS Упс. Магнитная бу..
PS Упс. Магнитная буря. aObj2But[12,12] := { |at| at := _ThisInfo(), ; This.Enabled := .F., ; DogListAbon(cw, "nTable","","",""), ; _ThisInfo(at), ; This.Enabled := .T., ; Brw4Focus(nTable) }
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6286
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.05.19 11:10. Заголовок: SergKis пишет: Перв..
SergKis пишет: цитата: | Первый вариант получше будет aObj2But[12,12] := { |cw,cn| cw := ThisWindow.Name, cn := This.Name, ; SetProperty(cw, cn, "Enabled", .F.) , ; DogListAbon(cw, "nTable","","","") , ; SetProperty(cw, cn, "Enabled", .T.) , ; Brw4Focus(nTable) } |
| Да, это написание более понятней ! Все названия сохранены через переменные и при обнулении This уже путаницы не будет. Спасибо !
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2554
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.19 11:55. Заголовок: Andrey пишет Да, это..
Andrey пишет цитата: | Да, это написание более понятней ! |
| Если исходить из правила hmg в блоке кода контрола ACTION, ON CHANGE и т.д., должна быть установлена и сохраняться среда переменных _THIS_..., то вариант с функцией более правильный, т.е. aObj2But[12,12] := { |at| at := _ThisInfo(), This.Enabled := .F., ; DogListAbon(ThisWindow.Name, "nTable","","",""), ; _ThisInfo(at), This.Enabled := .T., ; Brw4Focus(nTable) }
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2555
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.19 12:10. Заголовок: PS И лучше использов..
PS И лучше использовать ф-ю внутри своей DogListAbon(...) LOCAL aThis := _ThisInfo() ... ACTIVATE WINDOW ... _ThisInfo(aThis) RETURN
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1510
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.06.19 11:44. Заголовок: Всем кому это интересно
Подготовил 2-ю бетку для новой сборки 19.06 со следующим списком изменений: Скрытый текст
* Fixed: Problem with a handling <Esc> key into the function HMG_Alert() (introduced in the build 18.02). Processing of a closing of a window in the Alert* family functions is similar to the system dialogs in Windows 7. Bug was reported by Grzegorz Wojnarowski. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\AlertBoxes) * Fixed: Problem with using of the function AScan() without <lExact> switch into the function HMG_GetFormControls() (introduced in the build 19.04). Bug was reported by Grzegorz Wojnarowski. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\MAINDEMO_(SYNTAX_I)) * Fixed: The wrong using of the Registry class was fixed in the function DeleteRegistryKey( nKey, cRegKey ). Added the new command DELETE [REGISTRY] SECTION <cKey> FROM [KEY] <hKey> instead of the mistaked command DELETE KEY <cKey> OF <oReg>. Sample code: CREATE REGISTRY oReg KEY HKEY_CURRENT_USER SECTION "_TEST" IF IsRegistryKey( HKEY_CURRENT_USER, "_TEST" ) SET VALUE "test" OF oReg TO "myval" CLOSE REGISTRY oReg MsgInfo( GetRegistryValue( HKEY_CURRENT_USER, "_TEST", "test" ) ) DELETE REGISTRY SECTION "_TEST" FROM KEY HKEY_CURRENT_USER ENDIF Contributed by Grigory Filatov <gfilatov@inbox.ru> * Modified: Correction of SetKey events processing in the GetBox control. You can modify an action of the predefined keys in GetBox now. Sample code: @ 10, 10 GETBOX GetBox1 OBJ oGet VALUE Space( 30 ) oGet:SetKeyEvent( VK_RETURN, {|| MsgInfo("Enter pressed") } ) oGet:SetKeyEvent( VK_DOWN, {|| MsgInfo("Down pressed") } ) Requested by Dusko Radojcin. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\GetBox_3) * Updated: Harbour contrib HbFImage library: - update for using FreeImage DLL version 3.18.0 (from 3.15.0). (see source in folder \Source\hbfimage) Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Advanced\FREEVIEW) * Updated: RDDLeto client library by Rolf 'elch' Beckmann. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Advanced\LetoDBf) * Updated: HbSQLite3 library: - update for using SQLITE3 latest version 3.29.0dev. Contributed by Grigory Filatov <gfilatov@inbox.ru> * New: Added the auxiliary add-on binary archive for a correct launching of the MiniGUI advanced samples. This archive contains the following tools: - CUrl dlls; - FreeImage dll; - MySQL dll; - PageScript dll; - SumatraPDF application; - QHTM installer; - RMChart installer; - VLC ActiveX Control. Contributed by Grigory Filatov <gfilatov@inbox.ru> * New: 'GetFont dialog with the monospace fonts' sample. Based upon a contribution of HMG user KDJ. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see demo2.prg in folder \samples\Basic\GetFont) * Updated: 'Alert Boxes usage' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\AlertBoxes) * Updated: 'Contactos' sample. Contributed by Pierpaolo Martinello <pier.martinello[at]alice.it> (see in folder \samples\Basic\CONTACTOS) * Updated: MPM utility: - fixed using of the function DeleteRegistryKey(). Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \Utils\MPM)
| Постараюсь не затягивать с выпуском финальной сборки Также после нескольких попыток удалось собрать Харбор для свежей версии MinGW 9.1 цитата: | Harbour 3.2.0dev (r1904111533) Copyright (c) 1999-2019, https://harbour.github.io/ Harbour Build Info --------------------------- Version: Harbour 3.2.0dev (r1904111533) Compiler: MinGW GNU C 9.1.1 (32-bit) Platform: Windows 10 10.0 PCode version: 0.3 ChangeLog last entry: 2019-04-11 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) ChangeLog ID: ba87964f6754d037f86be597c07a08e02f4cb9e0 Built on: Jun 3 2019 14:19:21 Extra Harbour compiler options: -gc0 Extra C compiler options: -DHB_GC_AUTO -DHB_GUI -DHB_NO_TRACE Build options: (Clipper 5.3b) (Clipper 5.x undoc) --------------------------- |
|
и успешно протестировать работу библиотеки с этой версией Си-компилятора
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1511
Зарегистрирован: 11.02.10
|
|
Отправлено: 14.06.19 11:28. Заголовок: Завершена подготовка..
Завершена подготовка новой сборки 19.06, которая будет опубликована на следующей неделе. Я отказался от поддержки бесплатного компилятора BCC 10.1 и старой сборки для xHarbour.com вследствие нулевого интереса со стороны пользователей библиотеки. Собрал новую сборку только для слкдующих компиляторов: - BCC 5.5 (Базовый дистрибутив); - MinGW 9.1 (32- и 64-бит). Сборки для других Си-компиляторов будут выполняться только под заказ (на платной основе)
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1512
Зарегистрирован: 11.02.10
|
|
Отправлено: 18.06.19 09:44. Заголовок: Всем кому это интересно
Опубликована новая сборка 19.06 для BCC 5.5.1 и компиляторов Harbour и xHarbour. Базовый дистрибутив находится по адресу http://hmgextended.com/files/CONTRIB/hmg-19.06-setup.exe Также имеются дополнительные сборки для следующих Си-компиляторов: - MinGW 9.1.1 32-bit для Harbour 3.2.0dev; (есть в наличии) - MinGW 8.2.0 64-bit для Harbour 3.4.0dev; (есть в наличии) - MS VisualC 2017 32-bit для Harbour 3.2.0dev; (под заказ) - MS VisualC 2017 64-bit для Harbour 3.2.0dev; (под заказ) - Pelles C 8.0 32-bit для xHarbour b10244; (под заказ) - Pelles C 9.0 64-bit для xHarbour b10244; (под заказ) - Borland/Embarcadero C++ 7.4 (32-bit) для Harbour 3.2.0dev; (под заказ) - Open Watcom C/C++ 2.0 (32-bit) для Harbour 3.2.0dev. (под заказ) Благодарю за Ваше внимание
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6304
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.06.19 18:57. Заголовок: Григорий, спасибо бо..
Григорий, спасибо большое за новую версию ! А что примеры - назначений событий на объекты формы не добавил ? Это же самые понятные примеры для новичков. Мне Сергей давно советовал делать так - через события, а я всё не понимал как это работает. В Виндах всё же через события происходят, а большинство делает по старинке, через функции. А в этих примерах всё просто демонстрируется... Да и ещё один классный пример я высылал - универсальное затенение формы со всеми объектами, включая картинки. FormDarken(1.2).7z Код маленький и короткий, удобно очень встраивать к себе в программу другим программистам.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1513
Зарегистрирован: 11.02.10
|
|
Отправлено: 26.06.19 09:51. Заголовок: Обновил сборку 19.06..
Обновил сборку 19.06 (Update 1) с учетом последних наработок Базовый дистрибутив находится по адресу http://hmgextended.com/files/CONTRIB/hmg-19.06-setup.exe Что нового: цитата: | * Modified: Stability fix in the internal function _SetTextEditReadOnly(). You can modify a ReadOnly mode at runtime for the enabled controls only. Problem was reported by Rafael Moran <webrmoran/at/yahoo.com>. Contributed by Grigory Filatov <gfilatov@inbox.ru> * Enhanced: Added 'ON DBLCLICK' clause (optional) to LABEL and IMAGE controls. NOTE: Don't register click and dblclick events on the same element: it's impossible to distinguish single-click events from click events that lead to a dblclick event. Contributed by Grigory Filatov <gfilatov@inbox.ru> * New: Added the useful function HMG_IsEqualArr ( aData1, aData2 ) for comparing of the two arrays. Sample code: aValue1 := Form.Grid1.Value aValue2 := Form.Grid2.Value lResult := HMG_IsEqualArr ( aValue1, aValue2 ) Requested by Paola Bruccoleri <pbruccoleri/at/adinet.com.uy>. Based upon a contribution of Roberto Lopez <mail.box.hmg@gmail.com> * New: Added the Harbour contrib library for 7zip compression. This is a wrapper of 7-zip32.dll, another variant of the Open-Source 7Zip compression library. All calls are pointing to 7-zip32.dll, thus the such dll must exist in a search path. Based on an original work of Andi Jahja <andi.jahja/at/yahoo.co.id>. (see source in folder \Source\SevenZip) Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demos in folder \samples\Advanced\sevenzip) * New: 'Button Gradient Test' sample. Based upon a contribution of MiniGUI user. Revised by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\Button_Gradient) * New: 'Weather-forecast' sample is based on the service site http://wttr.in. Based upon a contribution of Vagelis Prodromidis. Revised by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Advanced\Weather-forecast) |
|
|
|
|
Alex_Cher
|
| |
Пост N: 70
Зарегистрирован: 18.06.15
|
|
Отправлено: 27.06.19 07:58. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Обновил сборку 19.06 (Update 1) с учетом последних наработок |
| Уважаемый Григорий (повторная просьба) можно обновить хотя бы один из примеров (типа \MiniGUI\SAMPLES\Applications\MultipleMail) чтобы была возможность отправлять e-mail на mail.ru, yandex.ru и т.п. с учетом SSL. Сейчас ни один из примеров не работают ... Заранее благодарен ...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1514
Зарегистрирован: 11.02.10
|
|
Отправлено: 27.06.19 14:35. Заголовок: Alex_Cher пишет: о..
Alex_Cher пишет: цитата: | отправлять e-mail на mail.ru, yandex.ru и т.п. с учетом SSL |
| Эта тема уже обсуждалась на форуме здесь и здесь Могу только добавить, что все требуемые библиотеки для поддержки SSL есть в поставке МиниГУИ: hbtip hbssl libeay32 ssleay32.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2612
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.07.19 13:13. Заголовок: gfilatov2002 Может ..
gfilatov2002 Может добавить функцию (по аналогии с HMG_GetFormControls()) ? K примеру FUNCTION HMG_GetForms( cTyp, lObj ) LOCAL i, o, lTyp, lHand, aNames:={} cTyp := iif( HB_ISCHAR( cTyp ), Upper(cTyp), '' ) lHand := iif( HB_ISLOGICAL( lObj ), ! lObj, .F. ) lObj := _HMG_lOOPEnabled .and. ! empty(lObj) FOR i := 1 TO Len( _HMG_aFormNames ) IF _HMG_aFormDeleted [ i ]; LOOP ENDIF IF ( lTyp := iif( Empty(cTyp), .T., _HMG_aFormType [ i ] $ cTyp ) ) If lHand AAdd(aNames, _HMG_aFormHandles [ i ] ) #ifdef _OBJECT_ ElseIf lObj o := do_obj( _HMG_aFormHandles [ i ] ) If HB_ISOBJECT( o ) AAdd(aNames, o) EndIf #endif Else AAdd(aNames, _HMG_aFormNames [ i ] ) EndIf ENDIF NEXT RETURN aNames
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|