sobota, 30 czerwca 2012

RichTextBox jak przesłać dane?

Pisałem komunikator internetowy, wyświetlanie danych w programie tego typu powinno być efektowne. To znaczy, że powinno umożliwiać wyświetlanie różnego typu tekstów - pogrubionych, pochyłych, różnych wielkości, kolorów itd. Najwłaściwszą kontrolką do zadań tego typu jest według mnie RichTextBox.
Niestety nie umożliwia ona "bindowania" danych!!!

niedziela, 24 czerwca 2012

Codility - Closest ascenders - rozwiązanie.

Codility umożliwia dla programistów certyfikowanie samych siebie, czyli wchodzisz na stronę, rozwiązujesz podany problem i możesz szczycić się certyfikatem Codility... do czasu wystawienia następnego zadania :)
Poniżej chciałbym opisać sposób rozwiązania zadania polegającego na poszukiwaniu najbliższej większej wartości w tablicy intów (closest ascenders). Zadanie to zaliczyłbym do trudnych, ale pewnie tylko dlatego...

wtorek, 19 czerwca 2012

Moje boje z "Binding" - konwertery

Właściwość "Converter" podczas umożliwia nam przekształcenie powiązanych elementów na oczekiwaną wartość zwracaną przez "Binding".
Przykładowo "bindujemy" wartość a=2 a chcemy wyświetlić a*a, to jest właśnie zadanie dla konwertera!

piątek, 15 czerwca 2012

Jak sterować wyświetlaniem danych na widoku? Rozwiązaniem jest...

Kontynuując wątek "bindowania", chciałem wytłumaczyć w jaki sposób z klasy "ViewModel" przypisanej do DataContext możemy wpływać na zmianę na widoku.
Należy wyjaśnić tę kwestię gdyż jest ona bardzo istotna i będę jej używał podczas dalszego opisywania moich bojów z "Binding" :).
Cofnijmy się więc do definicji klasy "ViewModel'u".

poniedziałek, 11 czerwca 2012

Moje boje z "Binding" - źródła danych

Dziś mam zamiar opisać kolejne sposoby użycia "Binding"
Docelowo chciałbym opisać konkretne implementacje rozwiązań, których nie znajdziecie w dokumentacji, ale doszedłem do wniosku, że zanim przejdę do bardziej skomplikowanych rzeczy należałoby przedstawić podstawy.

czwartek, 7 czerwca 2012

Moje boje z "Binding" - The Beginning

Po latach pisania w MFC i WinForms nareszcie zacząłem pisać aplikację w WPF i Xaml'u.
Bardzo mi się spodobała właściwość "Content", która pozwala wewnątrz jednego elementu zawrzeć inny element lub grupę elementów.
Podoba mi się możliwość definiowania wyglądu za pomocą języka xaml.
Powoli staję się też wielkim fanem tego co na początku stwarzało mi największe problemy... klasy "Binding".
Umożliwia on połączenie danych bezpośrednio z elementem gui, odpowiadającym za ich prezentację użytkownikowi.

wtorek, 5 czerwca 2012

Zadanie 2 - szukanie najbliższych wartości

Dane są tablice A i B o tej samej długości.
Znajdź najmniejszą, bezwzględną wartość różnicy A[i] - B[j], czyli
Min(Abs(A[i] - B[j]))
Oczywiście najlepsza złożoność algorytmu jak najniższa :)

Referencje do bibliotek kompilowanych na różne platformy (x86 i x64) .

Pracowałem nad dość dużą aplikacją, składającą się z wielu projektów zależnych od siebie.
Aplikacja była kompilowana na platformę "x86" i pięknie działała na wszystkich systemach z rodziny Windows.
Zapytacie dlaczego "x86" a nie "Any CPU"?  Aplikacja komunikowała się z inną przez COM.
I to nas zgubiło :)

piątek, 1 czerwca 2012

Zadanie 1 z Codility - rozwiązanie

Kolejny problem rodem z codility zdefiniowany jest następująco.
Parametrami wejściowymi są tablica liczb całkowitych A o raz liczba całkowita K.
Należy obliczyć ilość par liczb uzupełniających się.
Para liczb (i,j) uzupełnia się gdy spełniają one warunek
A[i] + A[j] = K
Maksymalna złożoność algorytmu to O(n) - czyli liniowa!

Codility - sprawdzanie wiedzy programistów

Portal codility.com zajmuje się testowaniem umiejętności programistów.  Pierwszy raz spotkałem się z nim w artykule "Codility wygrało!" opisującym wygraną polskich (!!!) twórców serwisu Codility w konkursie TechCrunch Europe.

Sam idea sprawdzania wiedzy programistów poprzez serwis bardzo mi się spodobała.

Requested Clipboard operation did not succeed. Jak temu zapobiec?

Zdarza się, że podczas wpisywania danych do schowka za pomocą klasy Clipboard otrzymamy wyjątek "Requested Clipboard operation did not succeed."