Модераторы: gambit, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TabControl and TabPages, разработка своих страниц для TabControl 
:(
    Опции темы
SmartBye
Дата 26.2.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Делаю программу, в которой решил, что каждая функция программы будет в отдельном табе. Т.е. программа сама по себе - один табконтрол, а функции в отдельных классах-табпейджах, которые я просто при загрузке программы добавляю туда.

Хотелось бы узнать, можно ли как-то визуально спроектировать этот таб пейдж? Как будто я работаю с формой. Т.е. передо мной табпейдж, я кидаю в него кнопки, боксы и т.д., расставляю их мышкой и пишу код. Просто не хочется писать всю эту дребедень вручную(

Попробовал сделать так:
добавил в проект новый компонент, унаследовал его от таб пейджа, кинул на него кнопку для теста. Затем добавил на главной форме этот класс-компонент в таб контрол, но он оказался девственно чист =/

Подскажите, как удобнее это сделать?
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Создай контрол на базе UserControl'а, а на нужный табпэйдж кидай уже его.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Не очень понял мысль.

Мне нужно сделать так, что бы на главной странице был только табконтрол оригинальный и пустой. А в самом проекте были классы-компоненты (или что-то подобное) табпейджей, которые я просто добавлю в главной программе через usercontrol1.tabs.Add(new mytabpage1()); usercontrol1.tabs.Add(new mytabpage2()) и т.д.

Это можно реализовать, если просто создать класс, унаследовав его от таб пейджа, но тогда приходится всю гуевскую работу прописывать вручную.
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Если тебе надо работу выполнить в дизайнере, то сделай всё на юзерконтроле? свойству Dock присвой значение Fill, а потом добавь его на табпэйдж(в коде).  



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Создал два компонента, один из них наследованный от таб пейджа, другой от юзерконтрола. На юзер контрол накидал кнопочек для теста. Вот только теперь не пойму, как добавить юзер контрол на таб пейдж =/
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Код

public class MyUserControl:UserControl
{
//здесь код юзерконтрола
}

public class MyTabPage:TabPage
{
    public MyTabPage()
      {
          MyUserControl contetn = new MyUserControl();
          content.Dock = DockStyle.Fill;
          this.Controls.Add(content);
      }
}



Примерно так.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Написав этот код, любой компонент на юзерконтроле вызывает исключение переполнения стека (+        [System.StackOverflowException]    {Невозможно вычислить выражение, поскольку текущий поток находится в состоянии переполнения стека.}    System.StackOverflowException), а если не добавлять компонентов на него, то исключение выбрасывает public MyTabPage() =(
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Погоди, сейчас попробую

Добавлено через 13 минут и 33 секунды
Всё работает. Там в коде я просто букафки местами поменял(опечатка, contetn вместо content), так что если скопипастить, то будет ошибка.

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  TabPageDesign.rar 39,13 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Ну я, естественно, не копипастил. Просто привел аналогию с твоим кодом. Сейчас попробую описать оба класса в ручную, что бы не добавилось чего лишнего.
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



А чо пример не посмотрел?

Это сообщение отредактировал(а) diadiavova - 26.2.2009, 22:00


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Сделал аналогично, как у тебя в примере, вроде получилось. Спасибо. 

Но как-то оно все накручено больно. Я когда обдумывал все это, думал что должно получиться все более прозрачно. Может это вообще неправильный способ? А есть какой-то более подходящий?

Кстати, насколько я знаю, делать вложенные классы не очень хорошо. Как-то можно избавиться от этого?
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Это не вложенные классы. А использование контейнеров - нормальная вещь(кстати: сама вкладка - тоже контейнер, и табконтрол - тоже). Если что-то смущает, то есть другой способ. Создаёшь нужный контент в юзверьконтроле, а потом копируешь код, сгенерированный дизайнером и вставляешь куда надо.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата(diadiavova @  26.2.2009,  20:31 Найти цитируемый пост)
Это не вложенные классы. А использование контейнеров - нормальная вещь(кстати: сама вкладка - тоже контейнер, и табконтрол - тоже).

Смущает то, что в юзер контроле находится таб пейдж, а не наоборот.
Цитата(diadiavova @  26.2.2009,  20:31 Найти цитируемый пост)
Если что-то смущает, то есть другой способ. Создаёшь нужный контент в юзверьконтроле, а потом копируешь код, сгенерированный дизайнером и вставляешь куда надо. 

Ну этот код будет совсем неподдерживаемым =/
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Цитата(SmartBye @  26.2.2009,  22:38 Найти цитируемый пост)
Смущает то, что в юзер контроле находится таб пейдж, а не наоборот.

А почему он у тебя там находится? smile 

Цитата(SmartBye @  26.2.2009,  22:38 Найти цитируемый пост)
Ну этот код будет совсем неподдерживаемым =/ 

А чем он отличается от того, который ты можешь "ручками" написать?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата(diadiavova @  26.2.2009,  20:41 Найти цитируемый пост)
А почему он у тебя там находится?

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


Цитата(diadiavova @  26.2.2009,  20:41 Найти цитируемый пост)
А чем он отличается от того, который ты можешь "ручками" написать?

Ну когда одна кнопочка на форме - это еще куда ни шло, а вот когда там много компонентов, то просто неприятно будет в этом копаться. Потому и встала проблема, что бы все это дело визуально редактировать.
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



А чо в них копаться...скопипастил и всё. Может только контейнер убрать(он для дизайнера нужен). Но вообще: первый вариант - более прямой.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



А как насчет самой идеи этого способа? Есть у меня несколько разных по функционалу программ, написанных для одного проекта. Накопилось их уже довольно много, поэтому решил их объединить в одну под общим интерфейсом. По одной функциональной программе в таб.

До того, как начал разбираться со способом реализации, в голове виделось идеальным способом с точки зрения ооп.
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Ну тут далеко за примерами ходить не надо - Visual Studio.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Я имею ввиду с точки зрения внутреннего дизайна.
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Если ты об эстетической стороне, то ИМХО - дело вкуса. А вот сам процесс я себе слабо представляю. Сдирать шкуру с готовых  программ и запихивать во вкладки...


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата(diadiavova @  26.2.2009,  21:16 Найти цитируемый пост)
Если ты об эстетической стороне, то ИМХО - дело вкуса. А вот сам процесс я себе слабо представляю. Сдирать шкуру с готовых  программ и запихивать во вкладки... 

Не, не сдирать. Просто в каждой вкладке буду писать заново код, используя исходники программ.
PM MAIL   Вверх
diadiavova
Дата 26.2.2009, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 16
Всего: 142



Я не теоретик программирования, поэтому отношусь к этому вопросу просто: нужна тебе такая программа - пиши, нет - не пиши.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 26.2.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



В общем, тема для меня уже кажется исчерпана. Вопросов пока нету. Спасибо, большое, за помощь =)
PM MAIL   Вверх
-Mikle-
Дата 27.2.2009, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Если я правильно понял, то у тебя есть несколько уже готовых написанных программ, и ты хочешь их объединить?

Если так, то MDI тебе в помощь. С ним проще некуда. 
1. создаешь новый проект
2. делаешь MDI форму
3. все готовые проекты добавляешь в солюшн нового проекта
4. и вызываешь просто формы из твоих проектов

Ничего не придется переписывать, и, по моему, ничем не хуже идеи с табами, а для реализации проще и нагляднее.



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
SaS1
Дата 27.2.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 14.6.2005

Репутация: нет
Всего: нет



SmartBye,

Ещё есть один способ - написать свой небольшой фремворк, который сам кидает в контейнер контролы, выравнивает их по определённым правилам, выставляет шрифты , рамеры ивсё такое... Это конечно не совсем уж легко, но зато потом можно юзать его везде в своих прилагах. Это самый правильный подход тк. писать код руками для нескольких сотен контролов не станешь, но и выравнивать их мышькой тоже не сильно приятное занятие... 
PM MAIL   Вверх
Nestap
Дата 27.2.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 10.10.2008

Репутация: нет
Всего: 0



-Mikle-

а как в МДИ Форму?

я открываю форму в МДИ!(форм2)

как из форм2 открыть новую форму тоже в МДИ??
--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
SmartBye
Дата 27.2.2009, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Цитата(-Mikle- @  27.2.2009,  08:14 Найти цитируемый пост)
Если я правильно понял, то у тебя есть несколько уже готовых написанных программ, и ты хочешь их объединить?

Ну их всеравно придется переписывать, так как писались они быстро и плохо. Писались из расчета - одна функция, одна программа.
Цитата(SaS1 @  27.2.2009,  16:45 Найти цитируемый пост)
Ещё есть один способ - написать свой небольшой фремворк, который сам кидает в контейнер контролы, выравнивает их по определённым правилам, выставляет шрифты , рамеры ивсё такое...

Вот это было бы шикарно. Сейчас всеравно пока только учусь. Неплохо было бы поухищряться. Вот только слабо себе все это представляю. Можно ли где-то примеры посмотреть, о чем Вы говорите?
PM MAIL   Вверх
-Mikle-
Дата 28.2.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Цитата(SmartBye @  28.2.2009,  02:24 Найти цитируемый пост)
Ну их всеравно придется переписывать, так как писались они быстро и плохо

Ну тогда UserControl наследованный от TabPage не плохое решение.


Цитата(Nestap @  27.2.2009,  22:59 Найти цитируемый пост)
а как в МДИ Форму?
я открываю форму в МДИ!(форм2)
как из форм2 открыть новую форму тоже в МДИ?? 


1. создаешь проект
2. у единственной там формы ставишь свойство IsMdiContainer = true
3. у формы, которая должна быть дочерней, ставишь свойство IsMdiChild = true
4. the end!

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

Надеюсь вы об этом спрашивали?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Nestap
Дата 28.2.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 10.10.2008

Репутация: нет
Всего: 0



-Mikle-

вот у миня фрмСтарт главная : 
из ниё я опен:

Код

            frmIndicatori sd = new frmIndicatori();
            sd.MdiParent = this;
            sd.Show();



и дальше и  frmIndicatori 
как опен другую форму?
тоже чтоб било дочерней фрмСтарт ??

--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
-Mikle-
Дата 28.2.2009, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



я не понимаю, о чем ты спрашиваешь? об этом что-ли?

Код

    Form333 frm = new Form333();
    frm.MdiParent = this.MdiParent; // this в этом контексте будет твоя frmIndicatori
    frm.Show();


Добавлено @ 22:32
Ну или еще так:

Код

frm.MdiParent = Application.OpenForms[0];



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Nestap
Дата 28.2.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 10.10.2008

Репутация: нет
Всего: 0



-Mikle-

ооо вот ето;

вот какой пустяк.... :-Д

большое спосиба
и извиняюсь за мой руссиан я не из росий и мне немношка труднее ...
 
--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
-Mikle-
Дата 28.2.2009, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Цитата(Nestap @  1.3.2009,  01:40 Найти цитируемый пост)
ооо вот ето;

вот какой пустяк


Ничего страшного, бывает  smile 



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.1134 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.