суббота, 3 сентября 2011 г.

Пишем простенький браузер на C#

Создаём свой веб браузер с помощью Windows Forms C#

Оговорюсь сразу что писать с нуля этот браузер мы не будем,наш браузер будет работать на движке IE,поэтому про его быстродействие можно и не думать :)

Итак заходим в VS C# и выбираем создать новый проект Windows Forms





Придумываем название проэкту и жмём ок.




Появившеюся форму можно растягивать как хотим,что мы и сделаем дабы увеличить наше окошко.
1.Далее из ToolBox-а выбираем и перетаскиваем на форму элемент управления WebBrouser.
Если у вас WebBrouser занял как у меня всё место на форме то жмём на треугольничке в правом верхнем углу левой кнопкой мыши -> Unlock in Parent Container,получили форму вида.


Если же пред вами веб браузер предстал в таком виде как на скрине ниже,то ничего не делайте.
2.Следующий шаг это перетащить с тулбокса(ToolBox) на нашу форму текстбокс(textbox)
3.Поместим её вверхней части экрана.Далее кликаем правой кнопкой мыши на текстбоксе и вызываем свойства(properties) находим свойство Dock и устанавливаем его значение в Top.


4.Далее вспоминаем как мы делали шаг №1,и кликаем на треугольничке на элементе управления веббраузер(WebBrouser) и жмём Dock in Parent Container.


Теперь наша форма приняла вид:


По умолчанию Visual Studio дало текстбоксу и веббраузеру имена textBox1 webBrouser1,хорошим стилем программирования считается менять такие имена на более понятные,то есть имя textBox1 не несёт в себе никакого смысла,вот если я изменю это имя на textBoxUrl,то любой человек догадается что этот текстбокс предназначен для введения веб адреса.Также свойство Text элемента управления textBoxUrl я изменил с значения пустой строки на фразу Enter web adress,для того чтобы даже самый несмышлённый пользователь понял что в это поле нужно ввести название веб адреса.
Имя webBrouser1 я поменял на webBrouser,как по мне поскольку у нас будет использоваться только один элемент управления то индекс 1 можно и убрать.


Скрины приведены ниже:






Пока что наш браузер будет выполнять только одну функцию: после того как пользователь ввёл веб адрес и нажал на клавишу "Enter" браузер загрузит выбранную пользователем страницу.


5.Заходим в свойства текстбокса и переключаемся в роздел Events(события)



6.Находим в списке событий KeyDown и кликаем в поле напротив него два раза.
Получили сгенерированный вижуал студией код:

Вот этот код:

private void textBoxUrl_KeyDown(object sender, KeyEventArgs e)
        {

        }




итак все мы знаем что в C# базовым для всех классов выступает класс object,и собственно наш параметр sender представляет объект представляющий событие,а второй параметр e который имеет тип KeyEventArgs описывает это событие,то есть при помощи параметра е мы будем узнавать какая клавиша нажата когда выделен элемент текстбокс.


теперь в данный прописываем такой код:




  1. if (e.KeyCode.ToString() == "Return") //если нажатая клавиша enter
  2.         webBrowser.Navigate(@"http://www." + textBoxUrl.Text);/* //то предаём методу Navigate нашего елемента управления webBrowser
  3.           //метод Navigate принимает строку - адрес веб сайта. также для того что бы постоянно не писать http://www. мы добавляем
  4.           // его к каждому адресу введённому в текст бокс символ @ перед строкой означает что в этой строке не будут искатся escape
  5.           //последовательности,а это значит что "//" ,восприниматся как двойной слеш,а не как одинарный(см. scape последовательности в С#) */
* This source code was highlighted with Source Code Highlighter.




7.Теперь проnестируем наш браузер попробуем перейти на Google.com


Скрины представлены ниже





как видите сайт нормально показывается как при естественном размере нашей формы,так и при разворачивании окна браузера на весь экран.

8.Последнее что мы сегодня сделаем это добавим в наш браузер главное меню,которое будет содержать в себе два пункта: File-> Exit и About - > About Brouser.
Для этого перетаскиваем из toolbox-a MenuStrip,в появившемся сверху поле вводим File,ниже в появившемся поле вводим Exit жмём на  Exit двойным кликом,в появившемся методо прописываем this.Close();

То есть получилось вот что:

private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

Далее с  About поступаем точно также код метода приведён ниже:

private void aboutBrouserToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("My Web Brouser","About");
        }

Как работать с элементом управления MenuStrip можно увидеть в этом видео:










С классом MessegeBox я думаю вы тоже разберётесь сами.

Собственно наш браузер теперь выглядит так:Сам браузер обрёл меню и при нажатии на File-> Exit программа завершает свою работу,а при нажатии  About - > About Brouser мы видим маленькое окошко с текстом "My Web Brouser" и заголовком окошка "About".



Спасибо за внимание.В следующий раз мы добавим toolbar и statusbar нашему браузеру,
а также реализуем функции вперёд,назад и обновить для нашего браузера.
Спасибо за внимание,до встреч!

четверг, 17 марта 2011 г.

авария на АЭС в японии

   То что сейчас происходит в Японии на АЭС Фукусима  - 1 уже серьезно  встревожило весь мир.То что поначалу ситуация казалось не выйдет из под контроля не вызовало сомнений даже у ленивого.Информация поступала постоянно,буквально каждые несколько часов,казалось что второго Чернобыля не будет.Японцы присвоили аварии 4 уровень(4 – тоесть авария серьездная но имеет лишь локальные последствия).Но буквльно вчера позавчера Франция присвоила аварии 6 уровень(тоесть с серьезными последствиями для окружающей среды).Хочу напомнить что 7 ранг аварии имела льшь одна авария – аврия на ЧАЭС.
  Конечно в Японии прошо цунами и с пятници(11.01.2011) когда в Японии было сильнейшее землетрясение(9,0 баллов!!!) острова трусит до сих пор(около 6 баллов каждый день).Тысячи погибли,ещё больше наробу пропало безвести.
  Но тем не менее аварию на АЭС надо прекратить.Когда в Чернобыле произошёл взрыв то почти все(кроме нескольких сбежавших) работники персонала кинулись спасать ситуацию,причём уровень радиации был раз в 20 выше чем в Японии(имеется ввиду тот сумашедший уровень возле(в) АЭС).Японцы же при повышении уровня радиации просто покинули станцию и дожидались пока он немного снизится,а в это время 4 из 6 реакторов Фукусимы – 1 были на грани катастрофы.
  Напомню что в Чернобыле для прекращения реакции в взорвавшемся реакторе  одна из мер была – закидование в реактор мешков с бором из вертолётов.(Бор замедляет цепную реакцию распада ядер ну и соответственно останавливает её).Вертолётчиками были простые солдаты.Никто не убегал от станции,наоборот туда прибыла масса людей для устранения аварии.В японии 2(по другим источникам 4 вертолёта) рассеивают морскую воду над 4 взбушевавшимися реакторами,да вот только беда что эта вода превратившись в пар(системы охлаждения реакторов не работают) при контакте с ТВЭЛами(стержни с ядерным топливом) привращается в водород – который взрывается(с пятницы было множество таких мощнейших  взрывов на АЭС Фукусима - 1).И то эти вертолёты немогут долго работать т.к. велика доза облучения пилотов.В СССР при ликвидации аварии на ЧАЭС широко использовалась армия,в Я пони же армия контрактная и соответственно менее надёжная,ибо такая армия плюнет на деньги и не полезет в ад для выполнения задания.Тоесть на станции локализируют аварию только работники станции.А их помоему не достаточно.

  Японские власти начали скрывать реальную ситуацию на своих АЭС что наталкивает на мысль про второй Чернобыль т.к. ситуация на станции(на 4! реакторах) полностью вышла из под контроля…

   Так же мне непонятны мотивы Японских властей – немускать экс советских атомщиков(ликвидаторов аварии на ЧАЭС) помочь ликвидации аварии нынешней.

воскресенье, 20 февраля 2011 г.

Мысля

 Pavel Durov 
Будущее среднего образования лежит в играх - компьютерных, спортивных, интеллектуальных.


Так думает этот наивный создатель контакта,но только он не уточнил где детям покупать очки и свечи от гемороя,дети сейчас и так проводят очень много времени за компьютером,так он ещё и в школе хочет их привязать к мониторам...

Некоторые вещи связаные с ООП

1.Иногда читая литературу по ООП натыкаешься на интересные моменты,например там где есть выбор в организации хранения данных: можно выбрать статические массив,а можно список.Лучше выбирать список ибо статический массив вмещает только ограниченное число элементов,а список в идеале может вмещать бесконечное число элементов.Я думаю автора руководстувуются выбором массива по той причине что с массивом работать легче,но на самом деле это так только на первый взгляд.Согласен вначале прийдётся напрячься,но потом обращатся к элементам списка будет гораздо удобнее.Люди которые умеют работать со списками меня поймут :-) .Ну и последнее доказательство почему списки использовать лучше(имеется ввиду случай написания хорошей программы а не халтуры),посчитайте количество выделеной памяти на массив с 1000 елементами из которых используется в основном 500 елементов,и на количество занимаемой памяти 500 елементным списком.

вторник, 15 февраля 2011 г.

Мой IT blog

Так уж получилось что у меня есть блог http://steinmarua.livejournal.com/ куда я собирался постить свои ИТ мысли,ну и всякие темы касающиесся ИТ сектора.Но увы в этот блог в большинстве своём я постил то что меня интересовало в какой то конкретный момент,но эти посты почти не касались ИТ темы.Пjэтому отныне я тут буду вести свой ИТ блог,ну и возможно постить всё то что касается моей учёбы в КПИ.Итак :Hello world!