Wkurza cię Twoja przeglądarka? Napisz sobie nową sam:)

Tytuł oczywiście należy traktować pół żartem, pół serio:) Natomiast wszystkich zainteresowanych zapraszam do zapoznania się z tym wpisem, w którym podam jak zbudować własną przeglądarkę przy pomocy Visual Studio Express 2010 firmy Microsoft. (dokładnie Visual Basic Express 2010)

Po pierwsze

Firma Microsoft oferuje hobbystom, studentom, lub tez po po prostu osobom, które chcą nauczyć się podstaw programowania kilka możliwości. Jeśli nie jesteś zawodowym informatykiem - programistą i nie zamierzasz kupować drogiego oprogramowania, możesz zupełnie legalnie i za darmo ściągnąć sobie środowisko programistyczne Visual Studio Express 2010 (to "express" oznacza darmowa wersję, która jest nieco uboższa od komercyjnej, ale dla początkujących jest i tak nad to co są w stanie zrobić, zresztą i rasowy informatyk może sobie na tym spokojnie popracować). Tutaj można pobrać: Pobierz

Po drugie

Kiedy już przejdziemy przez proces instalacji (który trochę trwa) i mamy już w naszym Windowsie nowe oprogramowanie, uruchamiamy je oczywiście i...przystępujemy do napisania naszej nowej przeglądarki internetowej:) Wciskamy najpierw New project, a później wybieramy Windows forms apllication. W tym momencie potrzebujemy zaledwie...wcisnąć Tollbox z którego przeciągamy 6 Button-ów, WebBrowser oraz TextBox. 5 Button-ów umieszczamy w lewym górnym rogu w równych odstępach, a ostatni w prawym górnym rogu. Pomiędzy Button-ami umieszczamy TextBox, który rozciągamy od końcówki piątego Button-a do ostatniego. "Klocek" Web Browser umieszczamy poniżej rozciągając go aż do końca rogów, oczywiście w menu istnieje możliwość modyfikacji wielkości obszaru naszej pracy. Zmieniamy nazwy "klocków" czyli Button 1 na "Wstecz", kolejny na "Do góry"dalej "Odśwież", "Stop", "Domowa", a ostatni Button na na "Idź". Teraz wystarczy dwukrotnie kliknąć "Idź" i zostaniemy przeniesieni do sąsiedniej zakładki gdzie mamy miejsce na wpisanie kodu, wpisujemy:
WebBrowser1.Navigate(TextBox1.Text) po tym wracamy do zakładki wcześniejszej i zaznaczamy dwuklikiem "Domowa" analogicznie robimy to samo jedynie wpis będzie inny:
WebBrowser1.GoHome()
a poniżej reszta kodu:
WebBrowser1.Stop()
WebBrowser1.Refresh()
WebBrowser1.GoForward()
WebBrowser1.GoBack()

Po trzecie

Wracamy do zakładki pierwszej i wciskamy Start (zielony trójkąt lub F5). Jeśli nie popełniliśmy żadnego błędu uruchomi nam się prosta przeglądarka, którą właśnie napisaliśmy samodzielnie.
Oczywiście nie posiada ona wielu funkcji takich jak pobieranie plików, wyszukiwarki, tłumaczenie, zapisywanie ulubionych itd. Natomiast bez żadnego problemu można wejść na jakąkolwiek stronę internetową i przeczytać artykuł lub wejść na skrzynkę e-mailową. Aby zbudować przeglądarkę z prawdziwego zdarzenia potrzeba więcej niż kilka linijek kodu...ale te kilka linijek to początek tego co nazywamy przeglądarką. A poza tym to świetna zabawa próbować zrobić coś samodzielnie.

 

windows porady programowanie

Komentarze (61)

avatar
jakiś_losowy (niezalogowany)
| 15.01.2012 15:23
tylko działająca na silniku IE, nie lubię IE :)
avatar | 15.01.2012 15:24
strata czasu. Już wolę napisać autorski plugin do Firefoksa lub "podnieść" jeden z upadłych projektów wtyczek do FF.
avatar | 15.01.2012 15:27
Zabawa przednia! :-)
Ale oczywiście tylko zabawa...
avatar
Anonim (niezalogowany)
| 15.01.2012 15:27
Ale ten post jest dedykowany osobom, które nie potrafią pisać pluingów i mają niewielkie doświadczenie z programowaniem. To nie jest post dla zawodowego informatyka przecież:)
avatar | 15.01.2012 15:29
@Pewnie, że zabawa. Ale są ludzie, którzy lubią się "bawić" i poznawać nowe rzeczy. :)
avatar | 15.01.2012 15:36
@kyrol - no to pisz wtyczki, są ludzie, którzy dopiero uczą się programować, albo maja takie hobby, lub dopiero są studentami itp. - często się opluwa MS, że z nas doi kasę, a proszę można za free dostać porządne narzędzie. Ten wpis nie jest kierowany do programistów, tylko do laików.
avatar | 15.01.2012 15:40
Czy to na pewno będzie własna przeglądarka, czy tylko "coś" nałożonego na systemowy ie?
avatar | 15.01.2012 15:42
@FanbojO - "Tytuł oczywiście należy traktować pół żartem, pół serio:) " - czy wszystko trzeba brać ze śmiertelną powagą? :)
avatar
googlebot (niezalogowany)
| 15.01.2012 15:50
Jak dla mnie strata czasu. Na dodatek nawet na .NET 4.0 używany jest silnik IE. Useragent tej przeglądarki to Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Zdecydowanie odradzam taki kombinacje
avatar
revvvv (niezalogowany)
| 15.01.2012 15:55
ściąga się qtcreatora albo instaluje wtyczkę do visual studio/eclipse i ma się qt4 a tam webkita :) 1:0 dla qt4 :P
avatar
StrawberryWoman (niezalogowany)
| 15.01.2012 16:23
Podobne rzeczy można wyczyniać także z gecko i webkitem, jeżeli ktoś nie przapada za IE.
avatar | 15.01.2012 16:27
@margo.net | 15.01.2012 15:42

Możesz podać UA tej "przeglądarki"?
avatar | 15.01.2012 16:48
@sunbeam96 - no przecież to oczywiste, że korzysta z Tridenta w Windowsie. Nie ma się czego spodziewać, to tylko kilka linijek kodu. "Aby zbudować przeglądarkę z prawdziwego zdarzenia potrzeba więcej niż kilka linijek kodu...ale te kilka linijek to początek tego co nazywamy przeglądarką." - tak jak pisałam, to jest "początek tego co nazywamy przeglądarką". Oczywiście, że to forma nakładki w tej fazie...nie bierzmy tego zbyt poważnie. Natomiast jako wprawka dla kogoś zupełnie zielonego w programowaniu jest to sympatyczne.
avatar | 15.01.2012 16:52
@Anonim: Gotowy plugin jest prościej przerobić czy uaktualnić niźli zaczynać od początku "rytkę" z vse2010.

@margo.net: owszem, zgodzę się, jednak gest ten należy do rzadkości. W przypadku Open Source mamy wiele gotowych SDK przystosowanych do wielu, wielu języków czy technologii. To jest piękne. Nie uznaję się za programistę, ale po zobaczeniu SDK, które przygotował Intel do MeeGo pod Ubuntu aż zachciało mi się pozostać deweloperem. vse2010 nie wywiera takiego wrażenia.
avatar | 15.01.2012 17:22
@margo.net | 15.01.2012 16:48

Nie chodzi mi o to, czy opiera się na Tridencie ;D
Chodzi mi o to, czy ma takie samo UA jak wersja IE, z której korzystamy.
Z Twojej odpowiedzi wnioskuję, że tak.
avatar | 15.01.2012 17:23
@sunbeam96
Tak, to ta sama wersja IE co zainstalowana w systemie.
avatar | 15.01.2012 17:42
@dominikc
A wcale, że nie :P
U mnie IE9 ma UA:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
A program z .NET przedstawia się jako:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)

Ale jak to renderuje to już nie wiem.
avatar | 15.01.2012 17:46
@sunbeam96 - zobacz sobie, właśnie piszę z tej "przeglądarki".
avatar | 15.01.2012 17:47
Dodałbym, że VS Express jest darmowe

Są również kontroliki do Winodws Forms, które działają podobnie jak ta standardowa WebBrowser, lecz korzystają z silnika Gecko/WebKit/Chromium.
avatar | 15.01.2012 17:48
A tak wygląda spod IE.

A pisałam że VS Express jest za free.
avatar | 15.01.2012 17:49
Jak widać (sadziłam że to samo, jest różnica przy "przeglądarce pokazuje MSIE 7).
avatar | 15.01.2012 17:50
@sanurss
Sry, chodziło mi, że można tworzyć komercyjne aplikacje :)
avatar | 15.01.2012 17:50
@margo.net
Pewnie tylko ze względu na kompatybilność.
avatar | 15.01.2012 17:53
Tak można tworzyć komercyjne aplikacje, faktycznie:)
avatar | 15.01.2012 18:24
@sanurss
No to przepraszam, robiłem to kilka lat temu w C# i silnik był zależny od zainstalowanej wersji. Starsza wersja została pewnie ze względu na kompatybilność.
avatar | 15.01.2012 18:36
@dominikc
Z tego co widzę to .NET 4.0 przedstawia się jako IE7, ale z silnikiem Trident 5.0, czyli dokładnie tak samo jak IE9 w trybie zgodności. Popatrz sobie na screeny, bo jak widać nie warto z tego cudu korzystać :)
.NET 4.0:
http://imageshack.us/photo/my-images/163/ieznet40.png/
IE9:
http://imageshack.us/photo/my-images/85/ie9qt.png/
IE9 Tryb zgodności (aka IE7):
http://imageshack.us/photo/my-images/689/ie9widokzgodnoci.png/

Szału nie ma generalnie. Swojego czasu czytałem gdzieś narzekania użytkowników na to, że wykorzystywana jest stara wersja silnika. Możliwe, że ma to związek z dostępnością na różne wersje systemu i z zainstalowaną wersją. Nie twierdzę bynajmniej, że tak nie jest, ale test mówi sam za siebie, że coś jest nie tak z kontrolką WebBrowser :)
avatar | 15.01.2012 18:55
A tak z ciekawości odpaliłem VirtualBoksa z Win XP bez przeprowadzania aktualizacji z zainstalowanym .NET 4.0. Domyślna wersją IE, która przedstawia się jako:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
http://imageshack.us/photo/my-images/190/ie6.png/

Następnie uruchomiłem ten sam programik co w IE9, czego wynik widać poniżej:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
http://imageshack.us/photo/my-images/17/net40.png/

Co dowodzi, że wykorzystywany jest silnik systemowy. Pytanie tylko dlaczego przy dostępności IE9 korzysta z trybu zgodności? W każdym razie taka własna przeglądarka to zdecydowanie zły pomysł ;)
avatar | 15.01.2012 19:01
Zły pomysł do czego? Przecież to nie jest gotowe do "prawdziwego" użytku, to opis w formie ciekawostki.
avatar | 15.01.2012 20:17
Co za naród, autorka pokazała, jak w prosty sposób można zacząć zabawę z programowaniem, a tu prawie lincz. Opanujcie się trochę.
Jak dla mnie to ciekawy pomysł i tyle.
avatar
xm (niezalogowany)
| 15.01.2012 20:51
@Shaki81
Ej, przecież to jest właśnie nasz polska mentalność - krytykować, narzekać i nie mieć dystansu do siebie i świata ;)

Mega Uber Geekowie być może nie dostrzegają, że wpis jest na prawdę ciekawym aktywatorem dla laików i że na odwiecznym hejtowaniu rozwiązań MS lub dla równowagi Open Source'owych świat się nie kończy.
avatar | 15.01.2012 20:53
Z tego co ja zrozumiałem, margo dodała ten wpis w formie żartu :)

@sanurss
Kontrolki WebBrowser nie wykorzystuje się jako "prawdziwej" przeglądarki, spoko :)
avatar | 15.01.2012 21:08
Fakt, ciekawy wpis, nie rozumiem skąd to niezadowolenie. Chyba nikt nie myślał, że będzie tutaj przepis na stworzenie prawdziwej, porządnej przeglądarki ;]

Brakuje mi przeglądarki tak lekkiej i konfigurowalnej jak komunikator - Miranda IM. Firefox ma bogatą bazę wtyczek ale po zainstalowaniu kilkunastu zaczyna szwankować, Opera jest OK ale jednak ta baza tych wtyczek no za bogata nie jest, ale się rozwija :D
avatar | 15.01.2012 21:13
@sla17
To był jeden z powodów, dla którego przeszedłem na Chrome ;)
avatar | 15.01.2012 22:02
@Shaki81 | 15.01.2012 20:17
Zauważyłem, że "lincz" na tym portalu pojawia się prawie wszędzie i prawie za każdym razem wtedy, kiedy czytelnikom coś nie pasuje, bo "oni mają większą wiedzę i mogliby napisać czytany artykuł o wiele lepiej". Wyjątki jednak się zdarzają.
avatar | 15.01.2012 22:04
sla17 | 15.01.2012 21:08
Konfigurowalna - opera.
Lekka - chrome / chromium.
Obydwie mają coś z drugiego.
avatar | 15.01.2012 22:43
Tak wygląda net teraz, wszyscy sobie jadą.

Robili badania w usa, i okazało się, że gdy serwis wymaga realnych danych
jadą sobie tak samo, za to spadła ilość "dobrych postów"
avatar | 15.01.2012 23:32
Na rynku mamy 4 silniki przeglądarek:
Webkit
Opera
IE
Mozilla Fx
Bardziej lub mniej zmodyfikowane, ale to są te główne (tak, wiem, dokładne nazwy silników są inne, ale nie czepiajmy się szczegółów - ja nie znam wszystkich na pamięć). Główne różnice to ewentualne funkcjonalności. A i tak wszystko sprowadza się do napisania 5 linijek kodu, aby wyświetlić przeglądarkę pod gotowym już silnikiem. Dopiero potem dopisujemy funkcje, które różnią naszą przeglądarkę od innych. Tak samo tutaj - silnik IE, ale przeglądarka może być zupełnie inna niż IE 8 czy 9.

Wszystko zależy od tego co MY - jako programiści dopiszemy - ale fundament leży w tych 5 linijkach kodu.
avatar | 15.01.2012 23:37
A Chrome jest pozornie lekki, na dłuższą metę zżera więcej. Fx u mnie żre mniej RAMu (proca nie sprawdzałem) niż Chrome z taką samą ilością kart otwartych (5). Jedyne co mnie wkurza w Fx to Plugin Container, zupełnie mi niepotrzebny, kiedy działa system odzyskiwania kart po nieoczekiwanym zamknięciu. Poza tym Chrome się często wiesza. Szpieguje. Google to król marketingowy, musi zbierać informacje przez Chrome. Na początku też byłem wielbicielem Chrome, nie wiedziałem dlaczego. Zrozumiałem, że tylko za minimalistyczny interfejs, którego mi brakuje w Fx. Ale i tak jestem bardziej zadowolony w produktu Mozilli
avatar | 15.01.2012 23:38
Bo jakim cudem Chrome zżera na każdą otwartą kartę 80. Powtarzam: 80 MEGABAJTÓW RAMu, kiedy sama strona waży z obrazkami 4 MB bez wodotrysków w stylu Flash. O JS nie wspominam, bo żre proc nie RAM
avatar | 16.01.2012 0:02
@up
Nie traktuj RAM-u jak paliwa. Generalnie algorytmy można budować w sposób dzięki któremu kosztem pamięci mają mniejsza złożoność - przykłady to count sort w O(n), czy dowiązania do kopca żeby znajdować element up/down heapowany w O(1), i wiele innych. Pisanie, że coś jest gorsze, bo zużywa wiele RAMu, to nie rozumienie jak działają programy.
avatar | 16.01.2012 0:09
I pomyśl chwile, myślisz ze napisać program, który każdą operacje z pamięci zrzuci na dysk (zużycie RAMu będzie minimalne, tyle ile potrzeba na dana operację, bo przed kolejną robimy zapis na dysk) jest trudno? Nie. Ale też pomyśl o czasach dostępu głowicy do dysku (milisekundy) i RAMu (mikrosekundy). IMHO jeśli jest dostępny RAM (który się nie zużywa) rząd wielkości lepiej jest wszystko co tylko można trzymać w RAM-ie właśnie, bo szybciej można się do tego dobrać. Dla testu zapchaj sobie cały RAM jakimś prostym alokowaniem pamięci (np. w C), i zobacz jaki będziesz miał/miała "zamuł" korzystając z czegokolwiek, kiedy głowica będzie musiała kolejne ramki sprowadzić do pamięci operacyjnej.
avatar | 16.01.2012 0:20
"Webkit
Opera
IE
Mozilla Fx "

Nie znam się - nie wypowiadam.
W miejsce IE powinieneś wpisać "Trident", a zamiast Mozilla Fx "Gecko".
avatar | 16.01.2012 0:33
avatar | 16.01.2012 9:06
Ludzie, ale Wy się czepiacie!
Przecież, to jest blog!

Uczy się. Robi coś co mu się podoba. Stawia pierwsze kroki.
Przynajmniej dąży do czegoś. Może sami byście spróbowali?!


Pozdrawiam
avatar | 16.01.2012 9:39
@margo.net
Przepraszam za użycie formy męskiej do Twojej osoby.

Miało być: "Robi coś co jej się podoba"

Pozdrawiam
avatar
KONTO USUNIĘTE
| 16.01.2012 14:40
@Margo.net
Uwielbiam Twoje wpisy, zawsze są merytoryczne i na wysokim poziomie, istna uczta dla oka :) Pozdrawiam :)
avatar
xxxxfrerews (niezalogowany)
| 16.01.2012 14:59
Koleżanko(?) margo.net - ty nie napisałaś przeglądarki, lecz wstawiłaś przeglądarkę Internet Explorer do własnego okna :-)
avatar | 16.01.2012 15:38
@sunbeam96

Znam się. Zapomniałem nazw, nigdy nie mam potrzeby ich używać, w kręgu webmasterów używa się nazw przeglądarek, nie silników. Dzięki, że mi przypomniałeś te nazwy -,-
avatar | 16.01.2012 19:32
@xxxxfrerews - nie wstawiła przeglądarki IE, tylko kontrolkę z Tridentem - to trochę różnica

ale pomysł nie jest zły - jak komuś przeszkadza wygląd IE, może sobie zrobić minimalistyczną przeglądarkę z kontrolką WebBrowser - pasek adresowy, zakładki, kontrolka i jest bomba. Jeśli jeszcze na wyjściu dorzucić czyszczenie Temporary Internet Files - to mamy dodatkowo PrivateMode ;-)
avatar | 16.01.2012 21:07
Jeśli lubisz się bawić to może Cię zaciekawić projekt z większymi możliwościami graficznymi.
Spróbuj napisać taką samą przeglądarkę w WPF'ie (powinien być w wersji Visual Studio Express). Zamiast "Windows Forms Application" wybierz "WPF Application". Reszta wygląda bardzo podobnie. Kontrolka w WPF'ie też nazywa się WebBrowser, z pozostałymi powinnaś sobie poradzić...
avatar | 16.01.2012 23:19
To jest bodaj pierwszy z tutoriali dostępnych w visual studio :) Pamiętam, że to przerabiałem :)
avatar | 17.01.2012 13:16
Wbrew wszelkim malkontentom napiszę: Brawo margo. Kontrolki są właśnie po to by jak się to mówi: nie wynajdywać na nowo koła tylko korzystać z raz już opracowanych składników programu. Programowanie polega wówczas na składaniu z gotowych elementów nowego układu, czyli coś jak składanie z klocków lego nowych budowli. Ostatecznie architekci tworzący nowe konstrukcje też nie zaczynają od piachu i wytapiania surówki z rudy żelaza. Tego typu języki programowania jak visual basic 2010 expres nie nadają się oczywiście do wszystkiego, ale dla początkujących jest to idealne rozwiązanie bo pozwala przy pomocy stosunkowo niewielkiego wysiłku tworzyć całkie nieźle prezentujące się programy.
Jesli chodzi o kontrolkę WebBrowser1, to niekoniecznie trzeba ją stosować tylko do tworzenia imitacji przeglądarki. zdarza się, że chcielibyśmy mieć tylko fragment jakieś strony odpowiednio prezentowany i bez zbędnych elementów np. kursy walut, prezentacja pogody i wiele innych które możemy prezentować w postaci tzw. widżetów właśnie przy pomocy tej kontrolki.
Wystarczy tylko tak skonfigurować samą formę oraz kontrolkę aby forma była bez zbędnych elementów.
Przykładowo można taki widżet sytworzyć bardzo łatwo ze strony:
http://cw.money.pl/mapki_pogoda_duza.html
czy http://cw.money.pl/u_kursy_nbp.html
Wywołanie strony umieszczamy wówczas tutaj:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WebBrowser1.Navigate("http://cw.money.pl/u_kursy_nbp.html")
End Sub
Wystarczy jeszcze tylko skonfigurować, jak napisałem wcześniej samą kontrolkę(rozmiary położenie, stałe rozmiary bez przewijania itd.) oraz formę na której kontrolka jest umieszczona i mamy ładny, profesjonalnie się prezentujący widżet na pulpit.
Można jeszcze umieścić go np. w autostarcie czy uruchamiać w postaci ikony, możliwości jest wiele by wykazać się własną inwencją.
Jeśli chodzi prezentowaną tu przeglądarkę, to też mamy wiele możliwości by się wykazać.
Dla poczatkujących podpowiem że warto by dodać np. coś takiego.
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
WebBrowser1.Width = Me.Width - 30
WebBrowser1.Height = Me.Height - 60
Button6.Left = Me.Width - Button6.Width - 20
TextBox1.Width = Button6.Left - TextBox1.Left - 10
End Sub
avatar
joel56476 (niezalogowany)
| 19.01.2012 12:32
a gdzie tam jest przycisk download z tej strony, co podałaś do visuala?
avatar | 20.01.2012 19:47
soanvig,co ty o tym ramie?Po to jest aby był używany.Chrome się wiesza?Nie rozśmieszaj mnie,długi czas go używałem i dosłownie ani jednej zawiechy.Teraz już go nie mam,ale używam inne przeglądarki na bazie chromium-comodo,iron i najbardziej z nich wszystkich rozbudowany cool novo i nigdy mi się nie zawiesiły ani nie miałem z nimi żadnych ekscesów,więc nie wiem o co chodzi?
avatar | 22.01.2012 12:39
@margo.net

bardzo dobry wpis, gratuluję i życzę sukcesów w programowaniu. Gdybyś miała pytania dotyczące klasy WebBrowser w .NET'cie służę pomocą.
avatar | 22.01.2012 17:52
@alucosoftware - bardzo dziękuję, być może kiedyś zwrócę się z pytaniami do Ciebie.
avatar | 22.01.2012 17:56
Pytanie czemu kontrolka IE używa trybu zgodności? Ano właśnie dlatego, że używa jej wiele starszych programów i trzeba utrzymać tą zgodność.

Za pomocą rejestru systemowego można przełączyć tryb pracy kontrolki globalnie lub dla wybranej aplikacji. Wtedy napisany program używa nowego silnika. Jeśli komuś dalej przeszkadza UA Internet Explorera, to tez można go zmienić.
avatar
milk (niezalogowany)
| 08.03.2012 14:45
@margo net zrób sobie dział pół żartem pół serio i tam wstawiaj to co piszesz zamiast marnować mój czas . Jak się pisze o możliwości tworzenia własnej przeglądarki to winno się brać pod uwagę to że się ludziska rozczarują dostając tylko śmieszną nakładkę na ie zamiast tego czego oczekiwali .

Taki dzień a ja muszę tracić czas na pisanie komentarza bo komuś sie na żarty zebrało .
avatar | 10.03.2012 17:34
@milk - poczucie humoru to cenna zaleta. Ponuracy tego niestety nie wiedzą;)
avatar
KONTO USUNIĘTE
| 12.03.2012 10:38
Życie jest wystarczająco smutne aby sobie jeszcze dokładać, dlatego ponurakom już dziękujemy :)
Dodaj komentarz