Archiwum

Posty oznaczone ‘delphi’

Co to jest Sender w procedurach zdarzeń?

27 czerwca 2010 1 komentarz

Mały wpis dla początkujących programistów Delphi. Co to jest i do czego służy parametr Sender, występujący niemal zawsze przy procedurach zdarzeń (np.: naciśnięcia przycisku)?

W skrócie, jest to wskaźnik na obiekt który wywołuje dane zdarzenie. Jeśli widzimy to w zdarzeniu OnClick przycisku, to jest to właśnie wskaźnik na ten przycisk (oczywiście trzeba go rzutować na TButton aby odnieść się do jego własności).

Czytaj więcej…

Optymalizacja działań matematycznych w Delphi

1 czerwca 2010 Brak komentarzy

Mnożenie, potęgowanie, pierwiastkowanie, wszystkie te operacje trwają ułamek sekundy na obecnych maszynach, ułamek sekundy do czasu gdy nie musimy wykonać tysięcy czy miliony iteracji danego działania. W takiej sytuacji odpowiedni dobór użytych funkcji może mieć duży wpływ na czas trwania całej operacji.

W tym wpisie pokaże jakich błędów unikać pisząc w Delphi skomplikowane działania, aby nie marnować czasu użytkownika końcowego naszej aplikacji. Do dzieła!

Czytaj więcej…

Czym różni się TTabControl od TPageControl?

22 maja 2010 Brak komentarzy

Oba są komponentami do tworzenia zakładek w środowisku Delphi. Czym się różnią? Zasadą organizacji treści i związanym z tym zastosowaniem.

TTabControl to komponent w którym operujemy na samych zakładkach, z kolei TPageControl zarządza całymi stronami wraz z przypisaną do nich zawartością.

W TTabControl cała umieszczona zawartość na komponencie jest wspólna dla wszystkich zakładek. Po co nam coś takiego? Otóż w sytuacji w której zmieniają się jedynie dane między zakładkami a nie cały układ komponentów. Załóżmy że mamy naniesiony na owym komponencie wykres wraz z kilkoma przyciskami do jego zarządzania. Na każdej zakładce chcemy zatem mieć te same elementy a zmieniać jedynie zawartość wykresu i akcję przycisków. Możemy to uczynić przy pomocy zdarzenia OnChange.

Czytaj więcej…

32-bitowe ikony w Delphi

4 maja 2010 Brak komentarzy

O ile nowsze edycje środowiska RAD jakim jest Delphi, posiadają pełne wsparcie dla 32-bitowych ikon czy nawet plików PNG, o tyle w starszych edycjach ich użycie jest mocno ograniczone.

Jedyną opcją wykorzystania ikony z kanałem alpha jest wstawienie komponentu TImage i załadowanie do niego pliku ikony. Co jeśli chcemy użyć przeźroczystego obrazka w menu, pasku narzędzi czy zakładce? Tutaj jedynym komponentem który nam to umożliwia jest TImageList, który niestety gubi informacje o kolorach powyżej 24 bitów.

W tym wpisie pokaże jak sobie z tym poradzić i mimo to użyć ładnych plików ikon w naszych aplikacjach.

Czytaj więcej…

Operator trójargumentowy w Delphi

22 kwietnia 2010 6 komentarze(y)

W PHP funkcjonuje coś takiego jak operator trójargumentowy. Jest to składnia języka, pozwalająca na zastąpienie pojedynczego bloku if…else w bardziej przejrzysty sposób:

warunek ? jeśli_prawda : jeśli_fałsz

Przykładowo:

$zmienna = $k >= 0 ? 'dodatnie' : 'ujemne';

…odpowiada konstrukcji:

if ($k >= 0)
{
  $zmienna = 'dodatnie';
}
else
{
  $zmienna = 'ujemne';
}

Jak widać uproszczenie jest znaczne. Object Pascal (Delphi) nie posiada niestety operatora trójargumentowego. W tym wpisie pokażę jak zastąpić tą funkcjonalność przy pomocy prostej funkcji i jej przeciążenia.

Czytaj więcej…

Instalacja komponentów w Turbo Delphi Explorer

19 marca 2010 Brak komentarzy

Turbo Delphi Explorer to świetne środowisko dla obiektowego Pascala, niestety jako darmowa edycja ma zablokowaną możliwość instalowania dodatkowych komponentów. Postaram się pokazać jak mimo tego ograniczenia skorzystać z zewnętrznego kawałka kodu.

Metoda opiera się na dynamicznym tworzeniu instancji komponentu, zatem jest ona zgodna z licencją i nie narusza jej w żaden sposób. Oczywiście niesie to za sobą pewne niedogodności i nie zawsze może być stosowane, jednak w znakomitej większości przypadków tak.

Czytaj więcej…

Obliczanie sumy kontrolnej MD5 w Delphi

8 stycznia 2010 3 komentarze(y)

MD5 (z ang. Message-Digest algorithm 5 – Skrót wiadomości wersja 5) – algorytm z dziedziny kryptografii. Jest to popularna kryptograficzna funkcja skrótu, która z dowolnego ciągu danych generuje 128-bitowy skrót.

Źródło: http://pl.wikipedia.org/wiki/MD5

Język programowania jakim jest Delphi, mimo swojej potęgi nie posiada wbudowanych funkcji do obliczania sum kontrolnych, nawet tak popularnych jak MD5. Nie będę pokazywał jak stworzyć implementację algorytmu MD5 w object pascalu, chociaż jest to możliwe, a zademonstruję jak policzyć sumę kontrolną dowolnego łańcucha z wykorzystaniem pakietu DCPcrypt.

Czytaj więcej…