piątek, 29 sierpnia 2008

Hug a developer!

czwartek, 28 sierpnia 2008

Basenova

W zeszłym roku będąc na Chorwacji zachwycałem się niezwykłą śródziemnomorską florą w połączeniu z pięknem otaczających gór. Nigdy czegoś takiego nie widziałem i czułem się wyśmienicie w takim krajobrazie. Nie wiem jak jest tam w zimie ale lato mógłbym tam spędzać całe. Dziwne jest to że będąc kilka razy nad Bałtykiem przyzwyczaiłem się do myśli że teren przy morzu musi być płaski. Wracając do Chorwacji, jednocześnie ciepłe i bogate morze i pejzaż gór. Pomyślałem że szkoda że w Polsce nie ma czegoś tak uroczego. I tu się trochę zdziwiłem, co prawda nie w Polsce ale 3h drogi od Krakowa, niedaleko za granicą ze Słowacją jest położony Thermal Park Besenowa. Nic więcej nie potrzeba niż leżeć w gorących wodach (26-39C) w doborowym towarzystwie i podziwiać krajobraz Tatr. Jeszcze lepsze widoki można znaleźć kilka kilometrów od Besenovej na plaży nad Liptovskim Marem-tylko temp wody już zbliżona do Bałtyku:) Poza tym baseny są otwarte cały rok i nie mogę się doczekać aby wyskoczyć tam nawet na jeden dzień w zimie na narty a później na te gorące źródła:)

TreeView i checkbox

Ostatnio implementowalem obsluge drzewa z checkboxami. Defultowo jest taka kontrolka we Frameworku 2.0 zwana TreeView w której jeden z propertiesów nazywa się CheckBox. Niby wszystko fajnie ale co w przypadku gdy chcemy mieć funkcjonalność którą często można spotkać w różnych instalatorach, chodzi mi o noda checkboxem który robi się szary jeśli jeden z jego dzieci zostanie zaznaczony ale nie wszystkie:)






















No więc okazuje się że Checkboź zaimplementowany w TreeView wcale nie jest checkBoxem jaki znamy - a dostęp do niego jest mocno ograniczony. Dokładnie jest to rysunek a nie kontrolka którą dla każdego noda przechowuje TreeView. Żeby sobie z tym poradzić należy przedziedziczyć TreeView i odpowiednio zmodyfikować: do imagelisty TreeView zapakować trzy bitmapy z zaznaczonym checkboxem, czystym i szarym zaznaczonym. Trzeba jeszcze przechwycic eventy klikniecia myszką i odpowiednio zmodyfikować eventy TreeView. Do wad tego rozwiązania należy zaliczyć że ImageListe mamy już zajętą i nie dodamy nowych icon obok nodów.

Implementacji tego podejścia jest kilka na codeprojectcie: